Microsoftの8人のアーキテクトがDesign Considerations for S+S and Cloud Computing(S+Sとクラウドコンピューティングのための設計に関する考察)という記事を発表した。この記事では、企業においてSoftware plus Services (S+S)ソリューションのアーキテクチャを計画する場合、考慮すべき設計に関する考察を述べている。
著者であるFred Chong氏、Alejandro Miguel氏、Jason Hogg氏、Ulrich Homann氏、Brant Zwiefel氏、Danny Garber氏、Joshy Joseph氏、Scott Zimmerman氏、Stephen Kaufman氏は、Software as a Service (SaaS)を拡張したものとしてS+Sを定義する。
S+Sは、開発、経営、展開や事業を営む技術の運営的な面をアウトソーシングするのに、企業により多くの選択肢を与えます。S+Sは、SOA(service-oriented architecture)の原則とともに機能します。S+Sは、アプリケーションソフトウェアやサービスを手に入れたり、資金を調達したり、展開したりする様々な方法により、SOAを可能にする企業において技術的選択肢が増えるように手助けをします。
S+Sは、「企業内で展開されたクラウドコンピューティングやソリューションを通して、企業がIT投資の効果を最大限にするためにコンピューティングモデル」を準備して、SOAを補完します。 S+SはSOAが使われているところで、SOAを無効にする訳ではありません。アプリケーションソフトウェアやサービスを手に入れたり、資金を調達したり、展開したりする様々な方法を利用できるようにして、もっとも最適な技術を選択できるようにします。
こちらが、著者が思い描いたS+S、SOA、クラウドコンピューティング間の関係だ。
この記事では、エンタープライズアーキテクチャについて以下の視点で様々な関心を示している。
エンタープライズアーキテクチャ
S+Sの実装に近づくために、エンタープライズアーキテクトは、ITのリソースが利用可能か評価する必要がある。これには、システム、アプリケーション、要員から専門家までを含み、内部的に何を利用できるか、そして、何を外部に委託する必要があるかを決める。そのために、著者たちは多くの大企業において、すでに使われているモデルを提案する。
- 特許のある非常に重要なシステム—特許のある、または、実際に非常に重要なシステムや競合に対する強みのあるシステムは、非常に重要だと考えられるため、建物の外にあるサービスプロバイダにアウトソーシングするリスクを負うことはできないことが多い。その結果、これらのシステムは、通常、企業の既存のIT部門で設計、開発、稼働、管理される。
- 特許はないが、非常に重要なシステム—特許はないが、非常に重要なシステムは別の会社で開発されるかもしれないが、それでも企業の既存のIT部門で設計、稼働、管理される可能性がある。
- 特許のないシステム—特許のない標準的な機能とインターフェースを提供するシステムは、適切なSLA(service-level agreement)をサービスプロバイダと締結できる場合、クラウドサービスプロバイダにアウトソーシングする候補としてふさわしいことが多い。Eメール、カレンダー、コンテンツ管理ツールなどがこのようなシステムの例だ。
また、企業のITの成長や投資収益率、コスト削減の結果、S+Sソリューションの導入の容易性などを考慮するように提案している。
ソフトウェアアーキテクチャ、統合設計
ソフトウェアの統合に関して、大抵のエンタープライズアプリケーションが「データ統合、機能統合、プレゼンテーション統合などの様々な技術を通して」、他のアプリケーションと結びついていることを著者たちは前提にしている。
しっかりと結合されたシステムを次のように述べた。
企業は、サブシステムの中の一部の機能の周りにおおまかな外観を作り上げるか、ローカルや企業の外でホストされるレガシーアプリケーションやサービスの間にブリッジを提供する統合技術を導入するでしょう。
SOAサービスを利用する企業に対して、著者たちは、不定期のメッセージバス技術はこのアプローチには十分ではないので、インターネットサービスバス技術を使うことも含め、これらのサービスをクラウドに移行することを考慮するように提案する。
ソフトウェアアーキテクチャ、アプリケーション設計
著者たちは、「サービスを中心とした原則によって設計されたアプリケーションは、S+Sアプリケーションの導入や統合にしっかりした基礎を与える」と考えるが、これは十分ではない。エンタープライズITポートフォリオにリモートサービスを追加する場合、沢山の考慮すべき点がある。
- リモートサービスが動かない場合の戦略を実施する
- 非常に小さなトランザクションの代わりに、補正トランザクションを使う
- 非同期メッセージングを使う
- サービスが変わる場合にサービスを使うアプリケーションを更新する
- 特定の要件があるS+Sアプリケーションをテストする
ソフトウェアアーキテクチャ、情報設計
著者たちは、S+Sによって企業が情報設計に対して新しいアプローチを持つようになることを指摘する。
昔から、エンタープライズアプリケーションは、データの一貫性、トランザクションの信頼性、スループットの向上に集中してきました。そして、通常、リレーショナルデータモデルとリレーショナルデータベース管理システムに頼っています。これらは、信頼できるデータベース設計を測るものとして、原子性、完全性、一貫性、耐久性(ACID)の原則を使います。S+Sによって、企業は情報設計プロセスをまったく違うように考えなければなりません。
サービスの典型としてデータをサポートするには、
サービスと基礎データ構造は、かなり多くのトランザクションをサポートするように設計されなければなりません。また、過去よりもかなり多くのデータを管理しなければなりません。これによって、概要設計とデータ分割の戦略の変更が必要になります。分割戦略は、普通、機能分割や均等分割によって、基礎データベースの拡大をサポートしなければなりません。しかしながら、そのような戦略は、最適な性能を得る能力に影響するかもしれません。これによって、なぜ高性能システムがACIDの信頼性から離れ、BASE(Basically Available, Soft State, Eventually Consistent)の一貫性に向かうのか、そして、論理的分割を物理的分割スキーマと分離するのかが分かります。
インフラとアーキテクチャ
この分野に関して、著者たちがすぐに述べたのは、昔の企業がサーバ、ストレージデバイス、ネットワーク機器やデスクトップなど、必要なコンピュータ関連のインフラをすべて購入しなければならなかったことだ。すべての機器と関連要員を扱うために、建物とデータセンタを構築しなければならないこともあった。特にIaaS (Infrastructure as a Service) と仮想化によって、クラウドコンピューティングは企業に新しい機会を与え、必要なインフラを一部他の企業に移すことができる。
IaaSによってもたらされた利益にも関わらず、エンタープライズアーキテクトは、まだ入手可能性、拡張性、安全性、信頼性、管理の容易性などに関する様々な設計の考慮を重視しなければならない。
安全性
安全性は、ここ20年間、企業において重要な要素になっている。インターネットがデビューしてから学んだ安全性に関する教訓はすべて今でも当てはまる。重要なS+Sの安全性の要素は以下の通りだ。
S+Sの安全性は、広範囲に渡るトピックをカバーする。識別情報や権利を提供することから建物内のシステムやクラウドサービス間の企業内シングルサインオンを可能にすること、データ送信中や停止中のデータを保護すること、有害ソフトや侵入に対するクラウドプラットフォームで展開されるアプリケーションコードを強化することなどだ。
マネジメント
企業のファイアウォール内にあるアプリケーションやサービスを注意して扱う一方で、ITマネジメントは「発展した技術の視点からだけでなく、ITの役割や責任、運用手続き、展開したソフトウェアやサービスの使用と運用に適用される方針から」、外部のものを考慮する必要がある。
例えば、SaaSプロバイダにアウトソーシングされたアプリケーションは、今では企業の従業員ではないアドミニストレータやオペレータによってメンテナンスされている。S+Sの世界では、従来のITの役割や責任は、SLAで特定した義務に対して契約上の責任があるサービスプロバイダの1つの役割になる必要があるかもしれない。法律的に強制力のある義務の条項は、負の結果を軽減するように明確に定義されるべきだ。このような負の結果は、サービスプロバイダがその責任を十分に果たすことができないために起こるかもしれないからだ。同様に、ユーザに関する問題や技術的問題を解決するためのITマネジメントプロセスは、今ではサービスプロバイダが扱っている。明確な段階的拡大の手続きを確立し、エンドユーザの中に効率的なコミュニケーションチャネルを統合するという企業のサポートプロセスは、サービスの混乱を最小限にするためにきわめて重大だ。
運用
運用に関して、著者たちは次のように述べた。
ITを運用する役割と責任をアウトソーシングすることがビジネスに影響することを考慮しなさい。ビジネスの継続、責任、従業員と顧客の満足はすべて重要な懸念事項であり、信頼できるクラウドサービスプロバイダと明確なSLAを確立することによって取り組まなければならない。
企業は、ソフトウェアとサービスが混ざり合う環境のため、ITの運用において先を見越して行動する役割を果たし続けるべきだ。しかしながら、実行時の詳細に注目する代わりに、企業は、アウトソーシングしたサービスの技術的問題を見つけられるようにモニタリングシステムを導入すべきだ。企業は、また、できる限り速くサービスプロバイダによって問題が解決されるように運用上の手続きを確立すべきだ。
結論
結論として、著者たちは、企業がクラウドコンピューティングと結びつく3つの方法を述べている。
- クラウドを使い尽くす - サードパーティのクラウドプロバイダにアプリケーションとITサービスをアウトソーシングすること。例: Microsoft Business Productivity Online Suite、CRM Online、Live Meeting services。
- クラウドを使う –クラウドで利用できるプラットフォームとインフラサービスを使うこと。例: Windows Azure、SQL Azure。
- クラウドに取り組む – クラウドサービスプロバイダになること。BizTalk Server Enterprise Service Bus Toolkit により、データフィードを統合し、クラウドサービスを通して情報交換を処理するワークフローを調整できる。