CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
最近、ITエンジニアの間で、有志による「勉強会」が広まっていることはみなさんよくご存知だと思います。日々の業務に関係しない分野でも、勉強会などを活用して知識を蓄えておくと、思わぬところで役に立つこともあります。
いわゆる勉強会とは異なりますが、先週、私は「GRACEセンター(先端ソフトウェア工学・国際研究センター)」が主催するソフトウェア工学のセミナーに顔を出して、「リアルタイムシステムの解析」について聞いてきました。プログラムのバイナリコードを元に、そこに含まれる1つ1つの命令のプロセッサ上での実行時間を分析することで、「特定の処理にかかる時間をできるかぎり厳密に見積もる」という研究です。
例えば、航空機の動きを制御する組み込みソフトウェアの場合、マイクロ秒レベルでの処理の遅れが、人命に関わる事故につながる可能性もあります。学術的で難解な研究ですが、このような制御システムの開発に利用される、実用的な研究でもあります。
本コラムの話題である「クラウドの自動化」もある種の制御システムと言えるでしょう。近い将来、このような制御系システムの研究がクラウドに応用される時代がくるのかも知れません。
それでは、本題に入りましょう。前回はアプリケーション・デプロイの自動化ツール「Aeolus(アイオロス)」の全体像を紹介しました。今回は、少し踏み込んで、「アプリケーション・デプロイ自動化の3方式」について解説を進め、Aeolusが採用する「JEOS(ジュース)方式」の利点を紹介します。
クラウドに限らず、一般にアプリケーション環境を自動構築する際は、次の3つの要素を管理する必要があります。
「アプリケーション・デプロイ自動化の3方式」とは、これらの要素のどこまでをマシンイメージ化して管理するかの違いになります(図1)。
図1 アプリケーション・デプロイ自動化の3方式
「仮想アプライアンス方式」では、アプリケーションを導入・設定した環境を丸ごとマシンイメージ化します。利用者は、マシンイメージから仮想マシンを起動するだけで、すぐに利用できるメリットがあります。
ただし、管理者の立場では、不便な点もあります。すべてがマシンイメージとして固められているため、アプリケーションのバージョンが変わるとマシンイメージを新たに作成する必要があり、バージョンや設定の違いごとに個別のマシンイメージを用意することになります。つまり、マシンイメージの作成・管理の手間がかかります。
一方、「自動インストール方式」はマシンイメージを一切使用しないやり方です。OSのインストールからアプリケーションの導入・設定まで、すべての作業を自動化して実施します。サーバ仮想化が始まる以前から、PXEブート、KickStart、Puppetなどのツールを組み合わせて、物理サーバ環境の自動構築に用いられてきた手法です。この場合、デプロイする内容のカスタマイズや構成のアップデートは、KickStartやPuppetの設定ファイルを書き換えることで容易に行えます。
ただし、これらのツールを連携させるためのノウハウが必要で、マシンイメージを使用する場合に比べると、デプロイ処理に時間がかかります。また、マシンイメージからの起動が前提となるクラウド環境では、そもそも利用することができません。
このような課題を解決するのが、次に説明する「JEOS方式」です。
「JEOS方式」は、先の2つの中間的なやり方で、それぞれの「いい所取り」をした形です。JEOSとは、「Just Enough Operating System」の略で、アプリケーションをインストールする土台となる「最小構成のOS環境」という意味です。「ジュース」と発音します。
具体的には、最小構成のOS環境をマシンイメージとして固めておき、ここから仮想マシンを起動した後に、アプリケーションの導入・設定を別途、自動化ツールで実施します。マシンイメージからの起動が前提となるクラウドでも利用可能で、アプリケーションの構成変更への対応も容易です。
あえてデメリットをあげるならば、一般に、仮想化ソフトウェアやクラウドによってマシンイメージの形式が異なるため、使用するインフラごとに、対応するJEOSのマシンイメージを作成・管理する必要があることです。
しかしながら、Aeolusには、この問題を解決する仕組みもあります。前回、Aeolusでは、「システムテンプレート」と「アプリケーション・ブループリント」の2種類の設計書(XMLファイル)を使用すると説明しました。「システムテンプレート」は、JEOSイメージを作成する元ネタとなります。Aeolusは、このファイルに基づいて、管理対象のクラウド/仮想化環境に合わせた形式のマシンイメージを自動作成します(*1)。
つまり、1つのシステムテンプレートを用意するだけで、使用するインフラの違いを意識することなく、自由にJEOSイメージが準備できるようになります。システムテンプレートの記述次第では、JEOSイメージだけではなく、アプリケーションを導入したマシンイメージを自動作成することも可能です(*2)。
JEOSイメージが準備できたら、この後は、「アプリケーション・ブループリント」を利用して、アプリケーション導入・設定の自動化を行います。次回以降、「アプリケーション・ブループリント」の利用方法を説明する予定です。
ただし・・・、今週末の11/10(土)は、CTC教育サービスの研修施設をお借りして、Linux KVMの勉強会が開催されます! 私も講師として参加する予定ですので、次回は、クラウドの話題は一休みして、勉強会の様子をレポートしたいと思います。
*1)Aeolus(アイオロス)でRHELonEC2を利用する(その2)
システムテンプレートの具体例とシステムテンプレートからマシンイメージを作成する手順の例が紹介されています。
*2)Aeolus-templates
アプリケーション導入済みのさまざまなマシンイメージが作成できる、システムテンプレートのサンプルが集められています。
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes