デベロッパーとデータベース管理者は手を取り合うべきだと、マーチン・ファウラー氏
デベロッパーは官僚的なデータベース管理者を嫌って、管理不要のNoSQLデータベースを希望することがあるけれど、両者が手を取り合うことの方が重要だ。マーチン・ファウラー氏は先週、「NoDBA」という記事を自身のWebサイトにポストしました。
デベロッパーによる最新の開発手法の採用とその壁、NoSQLデータベース、DevOpsといったITのキーワードを含むこの記事は翻訳が許可されているため、日本語訳してみました。
NoDBA
多くの組織において、保存が必要なデータは情報部門が集中管理するリレーショナルデータベースに収まることだろう。情報部門が集中管理する理由はそれぞれだが、統合的なデータベースの運用が一般的な理由だろう。データを管理している部門は、変なデータが紛れ込まないか、データベースを遅くするようなクエリが実行されたりしないか、企業全体で一貫性のあるデータモデルが実現されているか、といったことにつねに気を配っている。
こうした取り組みはたしかに大事だが、その当然の帰結としてデータを保存しようとすると面倒な儀式が伴うことになる。そして、データベースにカラムを追加してもらうだけで一週間もかかる、といった不満を耳にすることになる。短いサイクルで改善を続ける現在のデベロッパーにとって、こうした儀式はあまりにも遅く、いらだたせるものだからだ。
そんなわけでアプリケーションのデベロッパーたちは、データベース管理者がNoSQLデータベースを使ってくれれば、という話をする。そうなるとそれは“単なるデータストア”であり、“ちゃんとしたデータベース”ではないし、嬉しいことにデータベース管理者のことを気にしなくていいし、話す必要もなくせるだろう。[1]
これには良い面と悪い面の両方がある。良い面から説明すれば、これは多くの組織のアプリケーション開発で発生しているボトルネックを壊す助けとなる点だ。開発者とデータベース管理者の残念な断絶は多くの問題を引き起こしているし、最新の開発手法が採用しにくいのはデータベース管理者たちによる息苦しさからだ。
複数のアプリケーションでデータベースを共有するのは貧弱な統合の仕組みであり、NoDBA(データベース管理者不要)の開発は、統合の基本となるWebサービス化を推進するだろう。[2]
否定的な面に目を向けると、組織的な都合で技術を選択することは、しばしばその技術の活用にならない点がある。アプリケーションのバックエンドにリレーショナルデータベースが適切だとしても、データベース管理者とのやりとりが面倒でNoSQLデータベースを利用する、といったことがあることは容易に想像できるだろう。また、データは重要な資産であり、データベース管理者をバイパスするということは、データをバックアップするなどの安全性もバイパスすることにつながるのだ。
本当の答えはもちろん、DevOpsのムーブメントに沿って、データのプロたちと開発者が手を取り合うことだ。両者のあいだにある壁が多くの儀式を引き起こし、少数のデータ管理者が悪者になる。
私は、データベース管理者たちがステークホルダーをミーティングに招集し、アプリケーションの目指すところを共有することで成功してきた例を見てきた。また、NoSQLデータベースを用いたプロジェクトがデータベース管理者に接触し、彼らが新しいテクノロジーを学び、また必要なサポートを得るようになったことも見てきた。つまり、データベース管理者を不要にするNoDBA戦略も場合によっては適切な場合があるけれど、協力し合うことはそれよりずっとよいことになろう。
1:この文脈ではとりわけMongoDBが一般的に使われるようだ。MongoDBはインストールが容易で、構成や利用も簡単だ。
2:レスポンスが遅い理由の大半は、現役のデータベースが複雑でレガシーなアプリケーションによるさまざまな依存関係に絡んでいるためだ。こうしたデータベースはもろく、テストもされておらず、だからデータベース管理者がなかなか変更したくないのは分かる。こんなシステムなら、どんな賢いデベロッパーでも変更を尻込みさせてしまうだろう。
あわせて読みたい
2013年2月の人気記事「オフラインファーストが流行?」 「MySQL 5.6正式版が公開」「Facebook、Chefを全面採用」ほか
≪前の記事
物理サーバの出荷数、1年前とほぼ変化なし。隠れたシェアトップは「名もないベンダー」。ガートナー調査