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

2009年3月 5日

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

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

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

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

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

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

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

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

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

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

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

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

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

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


このエントリーをはてなブックマークに追加 Bookmark this on Delicious     fig Follow Me  fig RSS

タグ : クラウド

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

Loading...

Blogger in Chief

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


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





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

  1. 特許庁の基幹システム失敗の背景にある、日本に…
  2. 国内の開発者が使っている言語、1位C、2位V…
  3. 特許庁の基幹システムはなぜ失敗したのか。元内…
  4. 英国政府、新ポータルGov.ukをクラウド、…
  5. なぜ米ヒューレット・パッカードは、一挙に16…
  6. OpenFlowベンチャーのNicira N…
  7. ライアン・ダール氏、Node.jsの開発リー…
  8. フラッシュストレージが最大500TB! 米N…
  9. EMC、満を持してPCIe接続フラッシュスト…
  10. 2012年1月の人気記事「グーグルのバグ予測…
  11. マイクロソフトの責任者が語る「われわれはどの…
  12. 「絶対落ちないシステムを作れ」という要件に、…
  13. ソフトウェアテストの30年前と30年後(前編…
  14. ソフトウェアテストの近未来を話そう(前編)~…
  15. ソフトウェアテストの近未来を話そう(後編)~…

最新記事 10本

バックナンバー



アルファブロガー・アワード2010受賞 Publickeyはアルファブロガー・アワード 2010を受賞しました! いつもご愛読ありがとうございます。









blog comments powered by Disqus