皆さん、こんにちは レノボ・エンタープライズ・ソリューションズ 小宮です。本日はNutanix Calmの記事について投稿したいと思います。
以前にもCalmの内容は投稿しておりますが、説明だけが多くどのような画面なのかがわからない方もいらっしゃいますので、一年ぶりに画面イメージも含めてもう少しわかりやすい内容でお伝えしたいと思います。
以前投稿した記事についてはこちらになります。参考程度に見て頂ければと思います。
ハイブリッドクラウド環境で必要になるアプリケーションのライフサイクル管理[第二弾]~Nutanix Calmの紹介~ - LTN Blog 〜 Lenovo Technology Network 〜
1.Calmを利用する目的
Calm(Cloud Application Lifecycle Management)はアプリケーションに特化した自動化ソリューションです。アプリケーションのデプロイを自動化したり、Self Service Portalでユーザ管理を行うことで、ユーザ専用のダッシュボードを用意して、インフラ管理者・アプリケーションの管理者向けの利用しやすいインタフェースを提供します。
また、ハイブリッドクラウド環境などでアプリケーションを利用する場合も、それぞれのクラウドインフラを意識することがなく導入、管理ができます。
また、最近は利用状況やコストなども把握(Xi Beamとの連携)も行いながら、最適なクラウド環境にアプリケーションを移行することも可能になっています。
2.Calmの機能的な要素について
Calmを利用する際に覚えておく単語があります。
Blueprints:アプリケーションのテンプレートです。こちらの中にアプリケーションの構成します。例えばある業務アプリケーションがあれば、Webサーバー・DBサーバー・Proxyサーバーを構成をしますが、この際Webサーバーと記載する前にDBサーバーが起動していないとアプリケーションがデータを検索できない状況になったりします。そのような状況を防ぐために、アプリケーションの起動順序や依存関係を定義するために必要になります。
セルフサービス:Calmでアプリケーションを定義する際に、どのユーザーでどのような権限で利用するのかも定義する必要があります。その際にPrism Centralでサポートされているセルフサービスの機能を利用します。こちらを利用することで、アプリケーションにおける権限付けができて、必要なユーザーには参照させないことができます。
Marketplace:Calmを利用する際に、アプリケーションをお客様側ですべて用意しなければならないわけではありません。クラウドネイティブなアプリケーションやハードウェアメーカーのリリースしているアプリケーションはMarketplaceと呼ばれるアプリケーションがアップロードされているサイトからダウンロードが可能です。
また、他の人が作成したBlueprintsも共有(Githubなどにもあります)されておりますので、もしBlueprintsの作成方法がわからない場合は、参考にするのも良いかと思います。
3.Blueprintsについて
Blueprintsの中でアプリケーションに関する要素を定義していく訳ですが、アプリケーションは主に仮想マシンやその仮想マシンの構成やネットワークのベースとなる要素とそのインフラに必要な要件のセキュリティ、接続性、依存関係、オペレーションなどが含まれます。
それぞれが設定ファイルなどではなく、GUIなどで視覚された上で管理できるため、作成した管理者のみで俗人化された管理にはならないようにすることも目的になります。
アプリケーションを定義する際に、アプリケーションに必要な要件があります。例えば、ロードバランサ(NGINX)などのインフラに関する部分に定義も簡単に行うことができます。 Blueprints上に定義して、パラメータを入れる画面が右側に表示されます。
4.Calmのサービス
Calmのblueprintsの中でアプリケーションを定義する際に、どのようなパラメータで定義するのか行う必要があります。
Calmにおいては仮想マシン・パッケージ・サービスを定義できます。
仮想マシンについては、仮想マシンの名称、OSイメージ、リソース(CPU, コア, メモリ, ディスク容量),ネットワークなどの情報を定義します。
パッケージ、サービスでは、インストールスクリプトや各種カスタマイズの設定情報も定義できます。
インフラの定義できる画面がこちらになります。各種変数を定義できる項目が右側に表示されます。
パッケージに関する説明ですが、インストール用にスクリプトを埋め込むことができます。ここでサポートされているのは、BashやPowershellになります。
パッケージを定義する際に、パラメータ・マクロ・依存関係の話をしたいと思います。
アプリケーションを定義する際に、VMなどの名称を定義しますが、名称には一意性を持たせる必要があります。
マクロ定義するときには、Bashなどを利用することができるお話をしましたが、パッケージのバージョンによって動作を判定させたい場合などはイメージのような条件を定義します。
またパスワードなどを要求されるものについても、RUN TIME で変数を定義できます。
依存関係のパートになります。こちらでは、DBのインスタンスが立ち上げあってからアプリケーションを立ち上げるように条件文がつけられますが、矢印などの視覚化わかるような表示がされていることがわかります。これらはスクリプト内で定義することも可能です。
最終的にアプリケーションをBlueprints内で定義し終えたら、ローンチ(起動)をするとアプリケーションが作成できます。これを利用して、複数のコンポーネントで構成されているアプリケーションを管理を行うことができるようになります。
また、Calmについてはクラウドにも対応しております。
例えば、WebサーバーがAWSに配置されており、DBがオンプレミスに配置されているシステムについては、各種仮想マシンのアイコンなどが、クラウド・オンプレミスであることがわかるようにすることができます。
是非Calmを利用してハイブリッド環境におけるアプリケーションの管理を行うことで、運用を簡素化できるようにしましょう。
よろしくお願い致します。