Cloud Foundryとは何か(後編)
Cloud Foundryが開発者にもたらすメリット
後編では、Cloud Foundryの詳細なアーキテクチャを解説する他、開発者がCloud Foundryを選ぶメリットを、実運用環境と開発環境の2つのケースで解説する。
前編のまとめ
前編「.NET環境も構築できる、Cloud Foundry4つの強み」では、大きく分けて3点について述べた。1つ目はIaaSがコモディティ化しつつあることと、その差別化要素としてPaaSが注目されつつあること(関連記事:注目のPaaSを一挙に紹介! ~Cloud Foundry、OpenShift、Herokuなど)。2つ目は、PaaSには、1つの事業者がハードウェアからアプリケーションプラットフォームまで、全てを1つのサービスで提供する「Proprietary PaaS」と、オープンソースソフトウェアとして公開され、IaaSレイヤーを自由に選択して構築ができる「Open PaaS」に分けられること(関連記事:オープンソースのPaaSはなぜ注目されるのか ~Open PaaSの魅力と課題)。そして3つ目は、Open PaaSとして注目を浴びている「Cloud Foundry」について解説した(関連記事:楽天がプライベートPaaSを構築――「Cloud Foundry」を選んだ4つの理由)。
本項では、Cloud Foundryの技術的な解説およびCloud Foundryを選ぶべき理由、そして今後の課題についての3点について述べていく。
Cloud Foundryの仕組み
前編でも触れたが、Cloud Foundryは以下の4つの特徴を持つ。
- オープンソース(Apache License, Version 2.0)
- 複数の言語、フレームワークに対応
- 複数のデータベース、ミドルウェアに対応
- パブリックPaaS、プライベートPaaSなど、さまざまな利用方法が可能
この中でも、技術的に関係するのはオープンソースを除いた3点だ。この3点は、図1のような関係にある。
言語、フレームワーク、データベース、ミドルウェア、クラウドプロバイダー、それぞれ必要なものを、必要な形態で組み合わせて利用できるのがCloud Foundryの特徴といえる。
Cloud Foundryを構成する要素をレイヤーごとに分けた場合、図2のようになる。
Cloud Foundryが担うのはCF Kernelと呼ばれる、PaaSの機能を提供するレイヤーのみである。IaaSレイヤーの仕様に依存しないという設計思想のため、IaaSレイヤーの構築・運用・監視を行う機能はCloud Foundryには含まれておらず、CF KernelとIaaSレイヤーの間に位置するOrchestratorと呼ばれるレイヤーで行うものとされている。ただし、Cloud Foundryを用いてPaaSを提供する場合、利用するユーザーが認識するのはハードウェアからクライアントまでを含めた全体となる。あくまでも筆者の見解ではあるが、全てのレイヤーを含めて広義のCloud Foundryとも呼べるだろう。
CF Kernelをさらに細かく見ていくと、図3の要素で構成されている。
一部のコンポーネントは図に掲載していないが、これらのコンポーネントそれぞれがNATSと呼ばれるメッセージング機構を通じて疎結合で構成され、自律して動作している。
この中でも特に注目すべきは、DEAとServicesである。DEAはDroplet Execution Agentの略で、ユーザーがデプロイしたアプリケーション(Droplet)を実行させる仕組みのことを指している。つまりJavaやRubyの実行環境は、このDEAの中に構築されているのだ。
またServicesは、データベースやメッセージングサービス(ここではNATSではなくRabbitMQのような、アプリケーションで利用するサービス)を動かすコンポーネントだ。
このように疎結合で構成されている利点として、コンポーネントに対する変更が他のコンポーネントに影響を及ぼしにくいという点が挙げられる。例えば事業者が独自にデータベースのサポートを付け加えたい場合、基本的にはServicesへの変更を行うだけで済む。プログラミング言語やフレームワークのサポートを付け加える場合は、DEAに対して変更を行えばよい。実際のケースとして、「Iron Foundry」という、Windowsの.NET FrameworkをサポートしたCloud Foundryのフォークが挙げられる。Cloud FoundryはLinux上での動作を前提としているが、このケースの場合、.NET Frameworkをサポートできるように手を加えたDEAを用いることで対応を行っている。
Cloud Foundryを選ぶメリット
開発者にとってのメリット
開発者にとってCloud Foundryを選ぶということは、Cloud Foundry上で開発したアプリケーションを動かすということを意味する。それについては、以下の2つのケースが考えられるだろう。
・実運用環境としてCloud Foundryを選ぶケース
1つは実運用環境としてCloud Foundryを選ぶケースだ。これはCloud Foundryを採用したPaaS上で、実際のサービスを提供していくことになる。
このケースの場合、まずメリットとしてサーバやネットワークなど、インフラ面での運用を一任できる点が挙げられるだろう。今までは自社で構築・運用するサーバやレンタルサーバ、IaaSなどを用いていたが、アプリケーションが動作するまでの環境構築は自力で行う必要があった。また、利用者の増加に応じてサービスをスケールさせていくには相応のノウハウが必要とされた。Cloud Foundryを採用すれば、環境構築は不要となり運用も一任できる。スケールの面においても、デプロイ時のオプションで動作するインスタンス数を任意に設定することが可能だ。ただし、これらのメリットはCloud Foundryに限らず、他のPaaSでも同様に享受できる。
Cloud Foundryならではのメリットとしては、やはりCloud Foundryの思想そのものである、ベンダーロックインを防げるという点であろう。PaaSを利用するということは、特定のプラットフォームに依存することを意味する。何らかの理由で利用していたPaaSが停止されることになった場合、当然その上で動くアプリケーションは他のPaaSに移し替える必要が出てくる。しかし、特定のプラットフォームに依存した設計の場合、その移行には困難が伴う。Cloud Foundry向けに作っていれば、仮にそのサービスが停止したとしても、他のCloud Foundryを採用したPaaSに再デプロイするだけでよい。
・開発環境としてCloud Foundryを選ぶケース
もう1つの選択肢として、開発環境としてCloud Foundryを選ぶケースが考えられる。多人数でアプリケーションを開発する場合、全員に同じ環境をそろえることは無視できないコストを伴う作業となる。複数の案件を同時進行させればなおさらだ。
前述したようにCloud Foundryは、プログラミング言語にJava、Ruby、PHP、データベースにMySQL、PostgreSQL、MongoDBなど、業界で標準的に使われる技術で構成されている。そのため、一通りの環境があらかじめそろった便利なツールとしてCloud Foundryを使い、運用環境はまた別にするという利用方法も可能だ。この場合、パブリックPaaSを利用してもよいし、プライベートPaaSを利用してもよい。各自が開発機の中にMicro Cloud Foundry(※)を入れてしまえば、ネットワーク接続がない環境でも利用可能だ。
※ Micro Cloud Foundry:無料で提供されている、Cloud Foundryに必要な要素が全て入ったコンパクトな環境。VMware Playerなどで実行できるイメージとして配布されており、起動するだけですぐにCloud Foundry環境を試すことができる。
事業者にとってのメリット
事業者にとってのCloud Foundryのメリットは、前編でも述べた通り、これまでIaaSを提供してきた事業者が、既存の環境上にCloud Foundryを乗せることでPaaSの提供が可能になるという点だ。また、アプリケーションプラットフォームの開発企業は、自社開発のプラットフォームを追加したCloud Foundryを任意のIaaS上に展開すれば、他との差別化を行った状態でPaaSの提供が可能となる。コストを減らしつつも、新たな付加価値を提供していきたい企業にとってCloud Foundryは有力な選択肢となるだろう。
課題
Cloud Foundryの今後の課題として、ベンダー間の互換性維持が挙げられる。前述したように、ベンダーが独自に追加・拡張しやすい設計になっているのがCloud Foundryのメリットだが、それはベンダーロックインを防ぐというCloud Foundryの思想と矛盾しかねない危険性をはらんでいる。その思想を生かし続けるためには、各ベンダーがCloud Foundryの共通部分はそのまま残すという認識が必要とされる。
今後の展望
PaaSを運用していくに当たり必要なOrchestratorについて、2012年4月に「Cloud Foundry BOSH」というツールが発表された。現時点でVMware vSphereおよびAmazon Web Services、OpenStackに対応しており、これらのIaaS上でのCloud Foundryの構築、展開、ライフサイクルマネジメントが行える。
Cloud Foundryが普及していくための下地がほぼ出来上がりつつあるといえるだろう。
植村優一(うえむら ゆういち)
NTTコミュニケーションズ勤務
2009年からクラウドサービスの基盤技術開発を担当。
現在はNTTコミュニケーションズ内部のPaaS導入推進をしながら、社外ではCloud Foundry記事を主にして以下のblogで執筆中。
Copyright © ITmedia, Inc. All Rights Reserved.
Cloud Foundryとは何か
この記事の著者
関連記事
新着ホワイトペーパー PR
-
市場調査・トレンド
数百万台規模のデータで判明、企業のIT環境に潜む「見えない課題」とは -
製品資料
クラウド開発環境で高まる運用の課題、選定において重要な判断軸とは? -
製品資料
Oracle DatabaseをAI活用基盤へ、クラウド移行を阻む4つの課題と解決策 -
市場調査・トレンド
数百万台規模のデータで判明、企業のIT環境に潜む「見えない課題」とは -
製品資料
サーバ高密度化を阻む「見えない配線問題」 UTPやDACの限界を超える選択肢は?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
2
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
3
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
4
「企業内サーバ環境の利用実態」に関するアンケート
-
5
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
6
「法人PCの導入」に関するアンケート
-
7
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
8
オフィスに残る「1500万回線」の時限爆弾 迫る銅線廃止に情シスが打つべき棚卸しとROI
-
9
Googleの「Fairwind」始動 脆弱性の発見から修正までAIが数分で完結
-
10
「OSの選定・導入」に関するアンケート
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
財務・会計はAI活用でどう変わる? 調査で見えた変革の道筋
-
3
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
「結局、一部の人しか使わない」 AI活用が業務に定着しない根本的な理由
-
7
コスト分析で見る「デバイス復旧」の代償 損失額から導きだされた投資戦略とは
-
8
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
9
ゼロトラストにおける「IDaaSの課題」と補完すべき重要機能とは?
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー