必要なのは既存の枠にとらわれない発想
クラウドの運用管理を自動化する2種類のDevOpsツール
本格的なクラウド自動化ツールの多くは、DevOps(開発運用連係)製品のカテゴリーに含まれる。DevOpsツールにはモデル型とスクリプト型の2種類がある。それぞれの仕組みを解説する。
ITの歴史を振り返れば、アプリケーションの開発は「ボックス型」モデルで行われるのが一般的だった。このモデルは、各コンポーネントがマシンのイメージにリンクされ、そのイメージをデータセンター内の静的サーバ上でホスティングするという方式だ。リソースの柔軟性とアジリティ(即応性)を目標とするクラウドでは、アプリケーションのコンポーネントとそのリソースの間で動的な関連付けが求められる。それを実現するのがクラウドの自動化である。ただし、そのためには適切な計画と実装が必要だ。
自動化とは、アプリケーションのコンポーネントの配備と再配備をソフトウェアで制御することによって、コンポーネント間およびアプリケーション間のリンクを正しく確立・維持するプロセスを指す。具体的には、自動化には2つの基本的要素が必要となる。
- アプリケーションコンポーネントの配備(ソフトウェアコンポーネントやデータベースコンポーネントなど)
- ネットワーク接続の作成(コンポーネント間の通信ならびにユーザーおよび他のアプリケーションとの接続を可能にする)
この定義は、さまざまな自動化用技術やツールの全てに当てはまるが、その手法には大きな違いがある。
ハイブリッド型クラウドアプリケーションでは連係によりシンプルな自動化を実現
最もシンプルなタイプの自動化は連係である。これは、クラウドに配備されたコンポーネントと、固定されたアプリケーションやリソースを接続するという手法だ。ハイブリッド型クラウドアプリケーションでは、クラウドコンポーネントとデータセンターを連係するだけで自動化を実現できる場合もある。
クラウド連係用の商用ツールは、大手ソフトウェアベンダーおよびサードパーティーから何種類か出回っている。その多くは、ハイブリッド型クラウド構成において特定のアプリケーションを連係するための既製“レシピ”を提供する。この種の製品を採用するに当たっては、自社のアプリケーションニーズに対応できるかどうかをベンダーに確認する必要がある。
DevOps型自動化ツールはスクリプトベースのアプローチを採用
より本格的なクラウド自動化ツールの多くは、DevOps(開発運用連係)タイプの製品カテゴリーに含まれる。DevOpsの前提となるのは、アプリケーションがどのように配備され、コンポーネントがどのように接続されるかをアプリケーション開発者が知っていることだ。開発者は開発プロセスにおいて、この配備/接続関係を示した「DevOpsマップ」を作成する。このマップはアプリケーション配備の際に必要に応じて利用される。
DevOpsツールにはモデル型とスクリプト型が存在する。最もシンプルなDevOpsプログラム(あるいはスクリプト)としては、一連のコマンドという形態が考えられる。運用チームの担当者がこれらのコマンドを入力して、アプリケーションの配備・接続を行う。配備段階で設定されるIPアドレスなどの情報にはシンボリック名が与えられる。コンポーネントが配備された時点で必要な情報に置き換えられ、参照が可能になり、コンポーネント間の接続が作られる。
スクリプト型のツールのメリットは、手作業のプロセスを容易に置き換えられることだ。一方、最大のデメリットは、結果ではなくプロセスを記述するという点にある。すなわち、遭遇する可能性のある全ての状況に対する命令をスクリプトとして記述しなければならないのだ。「DevOpsのスクリプトはソフトウェアよりもメンテナンスが難しいこともある」と指摘するユーザーもいる。スクリプトを読んだだけでは、どんな結果が期待されているのかが分かりにくいからだ。スクリプトベースの自動化を使用するのであれば、処理の内容を正確に示した説明を記述するとともに、スクリプトが対処できない状況を示すことが不可欠だ。
DevOpsツールにはオープンソース製品と商用製品があるので、自社の環境と開発チームに最も適した製品を探す必要がある。
クラウドプロバイダーとの相性が良いモデル型アプローチ
スクリプト型自動化は仮想化では標準的な方式であるが、ネットワーク事業者やクラウドプロバイダーはモデル型アプローチを好む。サービスのライフサイクル管理が容易だというのが理由だ。モデル型自動化では、開発対象の構造と制約条件(コンポーネントの動作条件や接続の種類など)を記述するだけで、後は定義された構造がソフトウェアによって作成される。一般的に、これらのモデルは読みやすく理解しやすい。DevOpsのように、ある状態に達するための手順を記述しているのではなく、何を実現しようとしているのかを記述しているからだ。これらのモデルを使えば、「問題が発生したアプリケーション要素を修正する」「アプリケーションを分解する」「ライフサイクルを変更する」といったことが可能になる。スクリプト型自動化でこうした処理を行うには、個別のスクリプトを作成する必要がある。
しかしクラウド環境では、スクリプト方式とモデル方式を組み合わせたハイブリッド型アプローチが増えている。その背景には、ユーザーのニーズと事業者のニーズが異なることがある。例えば、OpenStackでは、モデル型アプローチをアプリケーションに適用すれば、コンポーネントをホスティングする一連のサブネットを作成し、これらのコンポーネントがより高レベルのネットワークに接続される。OpenStackのネットワーク部分である「OpenStack Neutron」はネットワークモデルを定義するが、アプリケーションとデータベースのコンポーネントを配備するには、他のOpenStackサービスを利用する必要がある。OpenStackを利用したDevOpsツールは、Neutronネットワークモデルを作成した上で、定義されたネットワーク要素にコンポーネントを(コンピューティングリソースまたはDBMS/ブロックストレージを使って)配備するという形になると思われる。
クラウド自動化への段階的アプローチ
あなたの会社がどのツールを選択するにせよ、クラウド自動化に向けた最初のステップは、全て手作業でアプリケーションを配備し、各手順を丁寧に記録することだ。特に、ある手順の結果が後で使用される箇所(例えばコンポーネントのアドレス)は全て記録する必要がある。これによって、自動化を完成させるためのベースラインが確立し、手作業の手順の記録をスクリプトあるいはモデルの作成に利用できる。
スクリプト型自動化プロセスは、これらの手作業の手順に基づいて構築され、過去の手順の結果への参照は全て変数で置き換えられる。こうすることで自動化のスクリプトが汎用的なものになる。複雑そうに思えるかもしれないが、Webページを制御するためのJavaScriptを記述するのとさほど変わらない。
モデル型自動化では、その目標(例えば定義済みのサブネット上でコンポーネントをホスティングする)に応じて手順をグループ化する作業が必要とされる。これらのグループは利用可能なモデルに対応していなければならない。
クラウド自動化の最後のステップはテストだ。自動化のスクリプトまたはモデルが起動すると、所定の機能を実行するソフトウェアシステムが配備されなければならない。手作業のプロセスと異なる動きがあれば、見直しを行い、自動化のエラーが生じないようにすること。テスト/検証作業の手順を記録することも忘れてはならない。クラウド自動化は、アプリケーションライフサイクル管理と、ビジネスを支えるアプリケーションの安定稼働にとって不可欠な要素であるからだ。監査可能なソフトウェアライフサイクルプロセスを導入してクラウド自動化を正しく実現・運用しなければ、後悔することになるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー