CloudifyはCloudify Limited 社によって開発されたOSSクラウドオーケストレーションフレームワークです。オーケストレーションとは、システム管理業務の自動化を意味します。Cloudifyは、アプリケーションスタックのインストール、デプロイメントから、ロギング、モニタリング、スケーリング、復旧までを自動化の対象としており、TOSCA(Topology and Orchestration Specification for Cloud Applications)準拠のモデル駆動型開発とさまざまなプラグインを活用することでオーケストレーションを実現します。

Cloudifyの特長

ライフサイクル全体の管理が可能

インストールや設定といった初期段階だけでなく、デプロイメント後の設定変更やリソースの追加などにも追従可能なオーケストレーターです。これにより、全体の管理と監視、スケーリング、回復を同一の拠点から行い、インテリジェントな自動回復と自動スケーリングの機能までを実現できます。

標準仕様に従った記述が可能

TOSCAに準拠したモデルで記述(サーバーやOS・アプリケーションをノードとして扱い、構造化されたフォーマットでノード間の関係性を定義)され、特定のクラウドやネットワーク機器に依存しない形での表現(機器固有の情報を含まない抽象化された形でモデル化)ができます。これにより、ユーザーは制御対象の機器の違いを意識することなく全体のオーケストレーションが可能になります。

さまざまなプラグインに対応

先進のクラウド(OpenStackやAWS)、インフラストラクチャー(VMwareやDocker)、ネットワーク装置(Netconf)、ツール(ChefやPuppet、SSHまで)を制御するためのプラグインが提供されています。これにより、多種多様な制御対象のコンポーネントを最低限の追加実装および検証をするだけで、オーケストレーターから一括で制御することが可能になります。

独自スクリプトや独自プラグインの実装も容易

CloudifyはOSSで実装されていることから、ユーザーが利用するにあたって不足している機能については独自スクリプトやプラグインの形で実装することが可能です。これにより、ユーザーはスクリプトやプラグインを追加実装することで効率的に任意のプロダクトに対応することが可能になります。

Cloudifyの構成要素

Blueprint(ブループリント)

システム構成が定義されたファイルです(TOSCA in YAMLに準拠)。コンピューターやネットワークの設定、ライフサイクルごとの処理(作成,設定,起動、停止、削除など)が記述されており、デプロイメントや自動スケーリングなどに使用されます。

Plugin(プラグイン)

エージェントや他のサービスをCloudifyと連携させるための拡張機能です。シェルスクリプトやPythonなどをエージェント上から実行するための機能(スクリプトプラグイン)と、他のサービスの機能をCloudifyから実行するための機能(パッケージプラグイン)が存在します。パッケージプラグインは、OpenStack、vSphere、AWS、Microsoft Azure、Kubernetes、Docker、Ansible、Chef、Puppetなどに標準で対応しており、Pythonを用いてカスタムプラグインを開発することもできます。

Workflow(ワークフロー)

処理の実行順序を定義したものです。インストール(Install)、アンインストール(Uninstall)、スケールアウト/スケールイン(Scale)、復旧(Heal)、更新(Update)が標準で用意されており、Pythonを用いてカスタムワークフローを開発することもできます。

Agent(エージェント)

Cloudify Managerとリソース通信に利用され、各種処理の実行、デプロイメント時のワークフロー実行を行います。

Cloudify Manager(ダッシュボード)

ブループリント、デプロイメント、ワークフロー、モニタリングなどの管理ツールであり、CLIとWebUIが存在します。WebUIでは、JavaScriptなどを用いてカスタムウィジェットを開発することができます。

Cloudify Composer(Blueprint Composer)

ブループリントをドラッグ&ドロップで作成、編集できます。

Cloudifyのプラグイン(一例)

Plugin名称概要
OpenStackOpenStack管理のリソースをプロビジョニングするためのプラグイン
vSphereVMWare vSphere管理のリソースをプロビジョニングするためのプラグイン
AWSAmazon Web Services管理のリソースをプロビジョニングするためのプラグイン
GCPGoogle Cloud Platform管理のリソースをプロビジョニングするためのプラグイン
AzureMicrosoft Azure管理のリソースをプロビジョニングするためのプラグイン
KubernetesCloudifyのblueprintsの内容をKubernetes管理形式に変換するプラグイン
NetconfTOSCA形式の記述からNetconf形式のコンフィグレーションに変換するプラグイン
FablicCloudifyのblueprintsの内容をSSHに変換するプラグイン
Diamondモニタリング(監視)用のプラグイン
DockerDockerコンテナをデプロイするためのプラグイン
PSUTILOSのメトリクス情報を取得するためのプラグイン

Cloudifyユースケース(Open vCPEフレームワーク)

モデル駆動型のトポロジに基づいて、トップダウンでオーケストレーションを実現します。

  1. 新しい技術(VNFs)を簡単に導入可能とする
  2. CPEの機能簡素化およびコスト削減
  3. ネットワーク設定の自動化,および一元管理による運用効率化
  4. ベンダーロックインの回避

関連情報

オーケストレーションフレームワーク Cloudify