クラウドでチャンスをつかむために知っておきたい3つのこと

2009年3月 5日はてなブックマーク del.icio.us Twitter
タグ : クラウド

先月までクラウドコンピューティングに関する記事を「ソフト開発未来会議」というサイトでいくつか書きました。そこでは紙面の都合などで書けなかった簡単なまとめを、今日はブログに書いておこうと思います。

クラウドは単なる巨大なサーバではなくて、いくつかの面で新しい知識を必要とするプラットフォームのようです。それはなぜかというと、クラウド内のサーバは疎結合されていて、その疎結合状態はアプリケーションに対してあまり隠蔽されていないのです。

だからクラウドの能力を十分に発揮させるには、疎結合に対応したクラウド専用のデータベースに対応したり、クラウド用に開発したアプリケーションでなければならないわけです。

というわけで、クラウド対応のアプリケーションを開発するプログラマが意識しなければならない点を3つほど。

キー・バリュー方式のデータベースはリレーショナルデータベースと互換性がない

例えばマイクロソフトのWindows Azureには、SQL Data Servicesというデータベース機能があります。これは名前こそSQL Serverに似ていますが互換性はありません。SQL Data Servicesの内部はキー・バリュー方式のデータベースになっていて、その上にSQLっぽい命令のレイヤをかぶせているだけなので、SQLのレベルで使えない命令がたくさんありますし、トランザクションのモデルなども違っています。アマゾンのSimpleDBも同様にリレーショナルデータベースではないのはご存じの通り。

もちろん、クラウド上でSQL ServerやOracleそのものを実行すれば互換性の問題はありません。ただその場合は、クラウドのスケーラビリティの恩恵を(まったくではないですが)それほど受けられないでしょう。

並列処理を取り入れないとスケールするアプリケーションは書けない

クラウド上の複数サーバに効率よく処理を分散させるには、そのためのアルゴリズムに沿ってプログラムを書かなければなりません。代表的なのが、よく引き合いに出されるMapReduce処理。こうした処理は一般の業務アプリケーションの処理とはかなり異なっています。いままでのようなアプリケーションをクラウドに移植するだけではプログラムはクラウド内の特定のサーバ内だけに処理が偏ってしまう可能性が高いため、1台のサーバで動かすのとそれほど変わらないかもしれません。

いまのクラウドは、アプリケーションを載せれば自動的にスケールしてくれるものではなく、アプリケーションの方できちんと並列処理的に書いてあげる必要があります。

マルチテナント方式のアプリケーション

クラウド上でSalesforce.comのように複数の企業のユーザー群に業務アプリケーションを提供する場合、データベースには複数の企業のデータが入ります。このとき、企業間のデータをしっかり分離することはアプリケーション側の仕事になるはずです。現在の業務アプリケーションのほとんどは1つの企業内で使うことを想定しているので、アプリケーションから呼び出すデータベース内の情報をユーザーが共有することに何の問題もありません。しかし、マルチテナントで使うとなればアプリケーション内のアクセス管理については大きな変更が必要でしょう。

もちろん、単純にアプリケーションをオンプレミスからクラウドに移動するだけでも、耐障害性や運用コストの移管、削減といったクラウドの利点を得ることはできます。

一方でクラウドだけが持ちうる巨大なスケーラビリティのメリットを受けるには、アプリケーション側でも高度な知識を伴う努力が必要です。この面で、クラウドにおけるアプリケーションの付加価値を最大化できるかどうかという差別化のチャンスが、開発者側には十分に残されているのではないでしょうか。


次の記事≫ jQuery ~ 入門記事、プログラミング解説、Tipsなどのまとめ
前の記事≪ Ajaxライブラリ ~ 基本、種類、関連情報などのまとめ

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed
≫ 過去の記事を読む




アクセスランキング - 過去7日間

  1. IT系上場企業の平均給与を業種別にみてみた …
  2. IT系上場企業の平均給与を業種別にみてみた …
  3. Cassandra入門と、さらに詳しく知るた…
  4. SIerとパッケージベンダはどちらが高給? …
  5. ミクシィのNoSQLデータベース「Tokyo…
  6. 仮想化は、クラウドのインフラとしては不要では…
  7. Windows Azureも事実上、日本にデ…
  8. セキュリティを高めた「仮想化Firefox」…
  9. TwitterがBitTorrentで高速に…
  10. グーグル、「政府専用Google Apps」…
  11. アドビ「iPadでFlashアプリを動かす」…
  12. ITまんが 2010年版 ~ ITが楽しく分…
  13. 楽天、性能向上を分散オブジェクトキャッシュで…
  14. SQLの都市伝説。マイケル・ストーンブレイカ…

アーカイブ  (最新記事10)

バックナンバー

2010年7月
2010年6月
2010年5月
2010年4月
2010年3月
2010年2月
2010年1月
2009年12月
2009年11月
2009年10月
2009年9月
2009年8月
2009年7月
2009年6月
2009年5月
2009年4月
2009年3月
2009年2月






Trackbacks (TrackbackURL:http://www.publickey1.jp/mt/mt-tb.cgi/30)

  • (トラックバックは承認後に掲載されます)

Comments