[Cloud] Orchestration 2.0

原文はこちら。
https://blogs.oracle.com/pshuff/entry/orchestration_2_0

このエントリでは、Computeインスタンスのインストールおよびプロビジョニングの自動化の方法を紹介します。様々な方法、様々なツールや方法論を利用することができますが、こうしたツールの全ての根幹は、クラウドもしくは貴社データセンターで稼働するシステムの構成方法を定義することです。構成データには、Computeリソース、ネットワークリソース、ユーザー定義、パッケージ、プロセス、サービスが含まれます。こうした定義言語を使って1個のサービスだけでなく、サービスの集合も定義することができます。例えば、WordPressブログを定義したい場合、WordPressブログ・ソフトウェアを含む単一のサーバ、ブログソフトウェアを稼働するためのWebコンテナ、そして状態やユーザー情報をブログサーバ用に保持するための、通常はMySQLデータベースを定義することができます。マルチサイトのブログエントリの場合、通常、アプリケーション・サーバーからデータベースを分割し、データベースファイルのフェールオーバと、大量のユーザーとウェブへのリクエストを処理するため、フロントエンドに複数のWebコンテナを用いて高可用性構成を作成することができます。
文章でこのシステムを記述しようとすれば、比較的複雑で混乱することでしょう。例えば…
  • ディスクのメモリと20ギガバイトの8ギガバイトとシングルプロセッサのコンピュータ(8GBのRAMと20GBのディスク)上でWebコンテナを実行し、MySQLサーバを実行する、別のシングルプロセッサのコンピュータ(16GBのRAMと40GBのディスク)と接続しています。
  • WebコンテナはPHPがインストールされており、HTTPおよびHTTPSでリクエストを受け付ける必要があります。
  • Webコンテナは、WordPressのパッケージを実行し、データベース・インスタンスに接続して、ユーザー情報やWebページの情報を格納する必要があります。
  • どちらのシステムでも、Oracle Linux 6.7を利用しており、Webサービスやセキュアシェルを使ったWebサービスへのリモート・ログインするための機能以外の全てのポートはロックダウンされています。
  • また、Webコンテナやデータベース・インスタンスが割り当てられたプロセッサの80%以上を利用した場合の対策や、いずれかのサービスが停止、障害が発生した場合の対策を定義する必要があります…
様々な構成管理ツールを使って、ここまでで例示した内容を定義することができます。これらのツールのほとんどは、JSONを使って構成や起動方法、スケールの方法を表現します。このエントリでは、次の3種類のツール、Chef、Puppet、Orchestrationを取り上げます。

Puppet

PuppetはPuppet Labsが作成したパブリックドメイン・パッケージで、LinuxやWindows上で利用できます。詳細情報は以下のリンクからどうぞ。
Puppetは宣言的な言語を使ってシステム構成を表現します。これらのファイルをマニフェストと呼び、通常はJSON形式もしくはそれに類した形式で保存されています。Puppetでは、リソースは通常以下の形式で定義されます。
resource_type{
    ‘resource_title’: ensure: presentorabsent,
    attribute: one,
    attribute: two,
    attribute: n
}

Chef

Chefは、Chefと呼ばれる会社が2009年に最初のリリースを出した類似の構成ツールです。Chefより5年前にリリースされたPuppetと同様にシステム構成を表現できます。Chefに関する詳細情報は以下のリンクからどうぞ。
Chefは “recipies” (レシピ)を使って、アプリケーションの構成やシステム構成を表現します。Puppetよりもアプリケーションの構成に少し重点を置いています。典型的なChefの構成は全てを1個のJSONファイルに書くのではなく、複数のファイルから成り立っています。例えば、典型的なフォルダ構造は以下のようになっています。
attributes
    default.rb
  files
    default
    file.txt
  recipies
    default.rb
  templates
  default
    file.erb
    metadata.rb
rbファイルはRubyプログラミング言語の構文をサポートしているため、属性はちょっと異なる形で定義されます。
default[‘Linux’][‘version’]     = ‘6.7’
default[‘Linux’][package_name’] = ‘OEL_6_7’
default[‘Linux’][‘dir’]         = ‘/home/oracle’
rbファイルには条件制御構造も有しており、これを使うとIf-Then-ElseやCase選択でインストール先で構成を変更することができます。例えば、WebコンテナをWindowsもしくはLinux上で構成する場合、これらのレシピを全て1箇所に集め、必要に応じてアップデートすることができますし、OSの構成を1箇所のディレクトリに、アプリケーションの構成は別のファイルやディレクトリに集約することができます。そして構成ファイル間の依存性を作成することもできます。

Oracle Orchestrations

Oracleは第3の構成管理ツールであるOrchestrationsを使っています。これは利用、定義の点で、ChefよりはPuppetに近いものです。両者とも基盤としてJSONを使うため、Oracle OrchestrationsとAmazon CloudFormationのテンプレートが非常に類似しているのは自然なことです。オーケストレーションのドキュメントによると、Orchestrationでは属性とOracle Compute Cloud ServiceのComputeリソース、ネットワークリソース、ストレージリソースのコレクションの相互の依存性を定義します。
Oracle® Cloud Using Oracle Compute Cloud Service (IaaS)
About Orchestrations
https://docs.oracle.com/cloud/latest/stcomputecs/STCSG/GUID-1896C799-49A6-42B8-9813-7DE5695267FE.htm#STCSG-GUID-1896C799-49A6-42B8-9813-7DE5695267FE
オーケストレーションを使って仮想Computeトポロジー全体のプロビジョニングやライフサイクル・オペレーションを自動化することができます。以下はオーケストレーションファイルの例です。
{
    attribute: value,
    attribute: [
        {
            attribute: subvalue,
            attribute: subvalue
        }
    ]
}
Oracle Orchestrationについて説明した書籍はありませんが、テクノロジーの理解の助けとなるリンクがあります。Oracle Orchestrationは2回メジャーアップデートしており、Ver.2では、個々のサーバではなく、クラウドのシステムの自動化のためにデザインされています。
Amazon CloudFormation
Amazon CloudFormationは類似のテンプレートと構成ユーティリティを使います。必須の属性とオプションの属性が大きく異なります。CloudFormationに関する情報は以下のリンクからどうぞ。
Azure Runbooks

Microsoft Azureは根本的に異なるアプローチをとり、Windows PowerShellやPowerShell Workflowを必要とするRunbooksを使って構成や構成のためのパラメータを定義します。これらのツールは、Azure固有のものであり、オンプレミスシステムの場合とは動作が異なります。Azure固有の方法であるため、今回は取り上げませんでした。

まとめると、様々な方法でクラウドのサービス定義を作成でき、オンプレミスとクラウドのための構成を実現するツールは一つとしてありません。ツールを構成してこれを実現することはできますが、通常は全てのクラウドベンダーで使えるわけではありません。各クラウドベンダーには固有の実装があり、何が動作し、何が動作しないのかを比較するためには、Googleで「cloud orchestration tools comparison」と検索すれば、この課題を解決するパブリックドメインのツールや商用ツールのレビューを得ることができるでしょう。これらのツールは全て比較的最近のもので、まだ成熟していません。一つとして市場を独占し、他製品よりも多く採用されるツールはありません。後のエントリで、Oracle Orchestration定義の詳細に踏み込み、単一サーバでのWordPressのようなシステムと、複数サーバでの高可用性クラスタのようなシステムの構築を比較します。これらと同じ原則は、IaaSベースだけでなく、PaaSベースであってもE-Business Suite、PeopleSoft、JD Edwardsの構築に当てはめることができます。

0 件のコメント:

コメントを投稿