小野和俊のブログ:あえてNoSQLでクラウド上にエンタープライズアプリを作ってみる(情報元のブックマーク数)

適材適所、まさにその通り、てか企業アプリではNoSQLを使う事例なんてほとんどないんじゃないかなぁ・・・って頭もダメだな>俺

RDBMSとNoSQLを巡る議論でいつも私が違和感を感じるのは、RDBMS固執しようとする人と、NoSQLに固執しようとする人と、それぞれが極端にどちらかを擁護し、極端にどちらかの長所や可能性に対して目を瞑ろうとしているように見受けられることである。
これまでRDBMSを業務で使ってきた人にNoSQLの制約の話をすると、大抵の場合、「そんなのじゃ業務には使えない」という反応が返ってくる。特に即時一貫性が保てないという話をすると「まったく使い物にならない」と脊髄反射的に拒否反応を示されることが多い。
一方、NoSQLの可能性を追求している人たちについても、「RDBMSは過去の産物」、「クラウドの時代にRDBMSを使うのはクラウドを理解していない証拠」というような過激な発言が目に付く。
私が思うに、クラウドがシステム構築で活用されていくのに比例して、これからは「RDBMSとNoSQLを適材適所で使い分ける」ことがこれからのアーキテクトに求められるのではないか。
これまではRDBMSがあったから何もかも一貫性が保障されていた。だが、本当にそこまですべてのデータに即時一貫性が必要なのだろうか。RDBMSが当然のようにそこにあったから、一貫性が担保されているのが当然だと感じていただけで、本当はもっとNoSQLを業務システムでも使えるのではないか。逆に、クラウドの時代で分散耐性が重要とは言っても、様々な工夫を凝らしてNoSQLのみでシステムを構築するよりも、部分部分でRDBMSを使っていく方がシステムの構築と運用それぞれの側面で適している場合があるのではないか。

あえてNoSQLでクラウド上にエンタープライズアプリを作ってみる : 小野和俊のブログ

実際にNoSQL縛りでエンタープライズ開発者が作ってみたらしい。AppEngineはSlim3とかフレームワーク

実証実験の結果としては、上記4つのクラウドプラットフォームいずれも、「NoSQL縛り」で今回課題として設定したシステムを構築することができた。NoSQLには確かに制約はあるが、それも「オプションの調整やデータベースの設計次第」なので、あって、従来の正規化の考え方とは矛盾する非正規化のアプローチを採用したり、各クラウドプラットフォームで一貫性確保のために用意されている「キー」を活用していくことで、NoSQLだけでもエンタープライズの業務システムは構築可能であることが確認できたと思う。
(もちろん、無理をせずここはRDBMSでやった方がよい、という箇所もあった)
この辺りの「RDBMSとNoSQLの使い分け」、または、「NoSQLだけでシステムを構築する時のためのパターンカタログ」のようなものがこれから各所で考察されていくだろう。

あえてNoSQLでクラウド上にエンタープライズアプリを作ってみる : 小野和俊のブログ

screenshot