必要なのは既存の枠にとらわれない発想
クラウドの運用管理を自動化する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.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
技術文書・技術解説
[Jamf Japan 合同会社] MDMだけでモバイルセキュリティは十分? 不足する対策を16項目でチェック -
事例
[Wrike Japan 株式会社] 世界的な家電メーカーが実践する「クリエイティブプロセス効率化」の方法とは? -
事例
[Wrike Japan 株式会社] 世界的テクノロジー企業に学ぶ、プロセス標準化とプロジェクト納品自動化の秘訣 -
事例
[Wrike Japan 株式会社] ソニー・ピクチャーズ テレビジョンに学ぶ、次世代サービスデリバリーのヒント -
事例
[Wrike Japan 株式会社] ソミック石川に学ぶ、ICT浸透後に直面した「工数管理」の課題と解決策
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Copilot」はなぜ放置される? “議事録要約止まり”を脱する処方箋
-
2
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
3
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
4
「データストレージの活用方法」に関するアンケート
-
5
「Microsoft一択」で本当にいいのか 知らぬ間にライセンス費用が膨らむ真相
-
6
【基本情報技術者試験】「デュプレックスシステム」と「デュアルシステム」の違いは?
-
7
ANAが専用回線から移行した「NaaS」の全貌 ネットワーク準備が数カ月から数週間に
-
8
VBAマクロ“原則ブロック”後に「Office」でマクロを実行する方法
-
9
「プログラマー不要論」にThe Linux Foundationが示した答え
-
10
Qlik Senseを使った教育機関の予測分析は現場に何をもたらしたか
ホワイトペーパーランキング PR
-
1
マンガで解説:「ゼロトラスト」「SASE」の必要性とメリット
-
2
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
3
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
4
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
5
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
6
国税庁の次世代基幹システム「KSK2」稼働開始に向けて、対応すべき変更点とは?
-
7
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
8
ドラマで分かる、標的型攻撃メールの被害を受ける企業と回避できる企業の分岐点
-
9
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
10
少額減価償却資産が40万円未満へ拡大、令和8年度税制改正で押さえるべき変更点
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー