企業ITのクラウド化と多様化するPaaS

林田宏介 (アクセンチュア株式会社)
2012-07-31 09:00:00
  • このエントリーをはてなブックマークに追加

二次道具としてのクラウド利用の考え方へ、PaaSの活用方法

 しかし、二次道具としてPaaSを考えた場合でも、利用者によってその二次道具となる対象が変わってしまうこともあり、少々わかりづらいので、最初に簡単に説明をしたいと思います。まずは下図を見てください。


出典:アクセンチュア株式会社 出典:アクセンチュア株式会社
※クリックで拡大画像を表示

 ここで大事なのは目的の違いです。上記の図においてコンシューマー、部門ユーザーから見た場合の目的はサービスを利用することになるので、そのための道具は各サービス(SaaS)になります。システム部門から見た場合にはサービスを構築することが目的になるので、そのための道具は実行環境(PaaS)となります。

 このように目的の違いから視点が変わるため、コンシューマーや部門ユーザーなどのユーザーサイドから見た二次道具は実行環境(PaaS)になるのですが、システム部門から見た場合には基盤環境(IaaS/HaaS)になります。もちろんユーザーサイドはサービスを利用するための目的さえ実現できれば二次道具が何であるかを意識はしません。逆に言うと、業務要件さえ満たしてくれればどんな環境でも構わないということになります。

 一方でシステム部門はサービスを構築する立場になるので、構築する基盤環境を先に決めます。この時に実行環境の領域も基盤環境として一緒に考えてしまうため、実際のサービスに対してシステム的な制約の影響を与えてしまうことがあります。しかし、本来は、ユーザーがサービスを利用する目的をきちんと整理した上で実行環境と基盤環境を切り分けて要件を整理しなければなりません。なぜなら、サービスによって、求められる要件が異なるからです。下図を見てください。

出典:アクセンチュア株式会社 出典:アクセンチュア株式会社
※クリックで拡大画像を表示

 一般的な話になりますが、インターネット向けのサービスの場合は、対象が不特定多数のユーザーとなるため、サービスの要件として高いスケーラビリティが求められる代わりに一貫性はそこまで高く求められません。また、一人のユーザーの操作が他のユーザーに影響を及ぼすような副作用を持ちません。

 逆に業務サービスの場合には、利用者が社内システムにアクセスできるユーザーに限られるため、スケーラビリティはそこまで求められませんが、一貫性は求められます。また、ワークフローやBPM(ビジネスプロセス管理)のように一人のユーザーの操作が他のユーザー(ケースによっては他の部門のユーザー)にも影響を与えます。

 このように、インターネット向けのサービスと業務サービスでは、求められる要件が違います。つまり、スケーラビリティの求められるインターネットサービスと一貫性を求められる業務サービスでは、一貫性と可用性と分断耐性の3つを同時に満たすことができないとするCAP定理(註1)によって、実行環境の選定基準が異なるということになるのです。ここに基盤環境と実行環境を分けて考えなければならない理由があります。

註1:ブリュワーの定理とも呼ばれ、分散コンピュータシステム下のノード間で、一貫性・可用性・分断耐性の3つを同時に満たすことはできないという定理

 ここで先ほどのシステム部門の話に戻ります。システム部門がサービスを構築する際、実行環境も含んだ基盤環境を先に考えてしまうため、自社が持っている、または導入実績のある社内標準のハードウェア、ミドルウェア、アプリケーションフレームワークの組み合わせからサービスを構築しようと考えます。しかし、前述のようにサービスによって要件が異なるため、下記のように、それぞれアーキテクチャに対するアプローチが異なります。このため、実行環境の要件はそれぞれのサービスで分けて考える必要があるのです。

インターネットサービス:シェアードナッシング型アーキテクチャ

  • 適したアプリケーションフレームワーク:Ruby on Rails(Ruby)、Play! Framework (Scala,Java)、ASP.Net MVC(C#)など
  • 適したデータストア:Key Value Store(KVS)、一部のリレーショナルデータベース(RDB)

業務サービス:オブジェクト指向型アーキテクチャ

 * 適したアプリケーションフレームワーク:J2EE(Java)、ASP.Net(C#)など  * 適したデータストア:リレーショナルデータベース(RDB)

 実行環境をサービスごとに切り分けて考えないと、マッチしない環境での開発による工数の増加やリソースの管理工数の増大、リソース追加に伴うコスト増加につながります。このようなリスクを回避するためにも、ユーザの利用目的から、その要件を実現するための二次道具として、実行環境を切り分けて考えることが大切です。

 今回の連載の題材であるHerokuの場合は、実行環境としてのスケーラビリティの高さや、Ruby on RailsやPlay! Frameworkなどシェアードナッシング型フレームワークのサポート、KVSとRDBのサポートなど、インターネットサービス用途に適した環境になっているので、インターネット向けのサービス構築ではユーザ要件にマッチしたサービスを少ない労力で開発することができます。

 PaaSを活用するためにはこういったユーザサイドの視点でサービスを捉えることが重要になります。

企業ITのクラウド化へ、多様化するPaaS

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]