実際に企業のIT組織でよく見られる慣習は、重要なソフトウェアインフラストラクチャスタックの標準ビルドを作成して、共通の運用フレームワークを作り出し、アプリケーションコードを(少なくとも理論上は)唯一のバリアントにするというものだ。
これらのインフラストラクチャコンポーネントの多くはオープンソースの選択肢へシフトするにつれて、アプリケーション開発者から大きな注目を集めるようになった。この理由には2つの側面がある。1つめは、これらのプロジェクトが無料でダウンロード提供されていたということだ。開発者は一般的に、無料で公開されているツールやインフラストラクチャを好むものだ。2つめは、開発者がやろうと思えば、ソフトウェアインフラストラクチャスタック全体に自由に手を加えることができたということだ。ただ、実際に全体に手を加える開発者はほとんどいなかった。
重要なのは、開発者がインフラストラクチャコードに手を加えたいと思った場合、以下の2つの理由からそれが可能だったということだ。
ソフトウェアの構築に必要なソースコードと説明が無料で手に入り、開発者自身のシステムで手を加えるために使用できた。
その後、開発者はそのシステム上でソフトウェアの構築と導入を行い、テストした後で、あらゆる変更点を利用することができた。
クラウドコンピューティングが異なるのは、インフラストラクチャソフトウェアの導入がクラウドサービスプロバイダーの厳格な統制の下で行われることだ。例えば、筆者が「Google App Engine」のユーザーなら、同社の管理システムのソースコードにアクセスして、何かを自分に都合のいいように変更し、それをもっと広範囲のGoogleサービス環境に適用する、といったことはできない。
もちろん、それでいいと思う。「App Engine」の仕組みを変えたいというユーザーすべてに対して、その環境のほかの全ユーザーに影響を及ぼす行為を認めるのは馬鹿げている。起こり得るセキュリティ関連の問題を考えるだけでも、そんなことは到底実現不可能だ。それによって生じるであろう運用上の問題を考えれば、なおさら無理な話だ。
CNET Japan 特別企画 -PR-
ITジャーナリスト佐々木俊尚氏と日立のキーパーソンが語る!
2010年企業クラウド元年 ビジネスニーズが企業のクラウド化を加速する