SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート(AD)

ファウンダーに訊く、オープンソースのPaaS環境「Cloud Foundry」の魅力と使い方

「Cloud Foundry Open Tour, Tokyo」セッションレポート

  • X ポスト
  • このエントリーをはてなブックマークに追加

3. Cloud Foundryのアーキテクチャ

 続いてRichardson氏は、Cloud Foundryのアーキテクチャの概要を説明した。Cloud Foundryのプラットフォームはメッセージングによって連携する複数のコンポーネントか構成され、全体像は図3.1のようになっている。

図3.1 Cloud Foundryのアーキテクチャ
図3.1 Cloud Foundryのアーキテクチャ

 このうち核となるのがCloud Controllerで、アプリケーションの構成管理や、WebサービスAPIの提供などはこのCloud Controllerによって行われる。VMCからの接続もCloud Controllerによって処理されている。DEA(Droplet Execution Agent)というのは、ユーザアプリケーションを動作させるためのエージェントである。アプリケーションはどのDEA上でも実行可能な状態になっており、1つのDEAでいくつのアプリケーションを動作させるかは設定によって選択できる。なお、Dropletというのは、vmc statsコマンドで確認できるインスタンスの実態のことだ。

 リクエストのアプリケーションへの振り分けは、RouterとLoad Balancerによって行われる。すべての外部からのHTTPリクエストはRouterを経由し、アプリケーションごとにURLで適切なDEAにルーティングされるとのこと。図3.2は、リクエストハンドリングの流れを示したものである。

図3.2 リクエストハンドリングの流れ
図3.2 リクエストハンドリングの流れ

 Health ManagerはDEAを監視していて、問題が発生した場合にはControllerに通知する。なお、Health Managerが監視しているのはDEAであり、アプリケーション自体の状態は各DEAによって監視されているとのことである。Servicesは、ミドルウェアの機能をサービスとして提供するコンポーネントである。これによりPostgreSQLやMongoDBなどによるストレージ機能が提供されている。

 図3.3は、アプリケーションをデプロイする場合の処理の流れを示したものだという。

図3.3 アプリケーションのデプロイ時の処理
図3.3 アプリケーションのデプロイ時の処理

 vmc pushコマンドが実行されたら、まずVMCがフレームワークの検出を行い、Cloud Controllerと通信してアプリケーションのデプロイを開始する。Controllerはフレームワーク用のstagingプラグインを利用して、必要なサービスのDropletを作成する。実際のアプリケーションはDEA上に展開されるので、まずはDEAがアプリケーションを展開可能であるかどうかを確認し、十分なリソースがあればDropletが展開されることになる。DEAは続いてRouterのルーティングテーブルを更新し、アプリケーションをスタートする。

 障害に対する自己復旧機能を持っている点は、Cloud Foundryの大きな特徴の一つである。アプリケーションが予期しないエラーで終了した場合には、DEAがその旨のメッセージをブロードキャストする。それに応じて、Routerは対象のアプリケーションへのルーティングを中止し、Health ManagerはCloud Controllerに障害を通知する。通知を受け取ったCloud Controllerは、デプロイメントのプロセスを再度実行することによって、アプリケーションのインスタンスを復帰させる。

 DEAそのものの障害はHealth Managerによって監視される。Health ManagerからはDEAに向けて定期的にHeatBeatメッセージが送られており、DEAのクラッシュを自動で検知できるようになっている。クラッシュを検知したHealth Managerは、Cloud Controllerにその旨を通知し、Cloud ControllerはDEAとアプリケーションインスタンスの再機動を実行するという仕組みである。

次のページ
4. Micro Cloud Foundryの利用

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

杉山 貴章(スギヤマ タカアキ)

有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT系の解説記事やニュース記事の執筆などを手がけている。そのかたわら、専門学校の非常勤講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書に『Javaアルゴリズム+データ構造完全制覇』『Ja...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6532 2012/06/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング