オーケストレーションとは
オーケストレーションとは、複数の IT 自動化タスクまたは自動化プロセスを調整して実行することです。デプロイ、設定管理、およびその他のプロセスが適切なシーケンスで確実に実行されるよう、オーケストレーションは通常、複数のコンピュータシステム、アプリケーション、サービスにまたがって適用されます。
自動化とオーケストレーションは別物ですが、コンセプトは関連しています。自動化は、ソフトウェアを使用して人間の介入なしでタスクを実行し、エラーを最小限に抑え、IT アプリケーションおよびインフラストラクチャのデプロイ、管理、スケーリングに必要な操作を手動で実行する時間を削減します。
オーケストレーションは、複数のシステムにまたがる自動化されたタスクをより高いレベルのワークフローにまとめて、個々のタスクが連携して特定の機能やプロセスを実行できるようにします。
オーケストレーションが必要な理由
IT チームはプライベートのデータセンター、クラウド、エッジロケーションにまたがって、多様なサーバー、システム、アプリケーションを管理しています。IT 環境が複雑さを増す中で、タスクの自動化は効率を改善し、プロセスの管理を容易にするのに役立ちます。ただし、自動化の拡張にも独自の課題があります。
ほとんどの IT プロセスには、自動化の対象となる個別のタスクが多数含まれています。また、1 つのプロセス全体を完全に自動化するためには、そのプロセスを構成するタスクが連携して動作する必要があります。つまり、1 つのタスクが終了したらそれに続くフォローアップタスクが起動されるようになっている必要があります。自動化ソリューションの中にはタスクをつなげて論理ワークフローを作成できるものもあり、それを使用すれば適切なタイミングで手動操作を行ってアクションをトリガーする必要がなくなります。このようなワークフローの構築はオーケストレーションの一要素です。
とはいえ、タスクの各部分自体にサードパーティシステムとの通信に依存するマルチステップのワークフローが含まれることがあります。たとえばシステムをプロビジョニングする場合、その作業にはハイパーバイザーとのオーケストレーションによる仮想マシンの作成、ネットワークとの通信による接続性の設定と確立、必要なファイアウォールポリシーが設定されていることの確認が含まれることが一般的です。ここで登場するのが、包括的なオーケストレーション・ソリューションです。統合されていないシステム間でタスクを連携して機能させられるため、IT チームはエンタープライズの多様なユースケース全体をカバーする完全に自動化されたワークフローを構築できます。
Red Hat のリソース
オーケストレーションに含まれるもの
ユースケースによっては、「オーケストレーション」という言葉は IT ワークフローの特定のタイプと、そのワークフローを管理するツールのことを指して使われます。Kubernetes はコンテナ・オーケストレーション・ツールであり、コンテナ化されたアプリケーションのデプロイおよびスケーリングを自動化します。Jenkins は開発パイプラインをオーケストレーションします。コードのビルド、テスト、リポジトリへのプッシュのワークフローを実行します。複数のサードパーティシステムにまたがってタスクを調整できる包括的なオーケストレーション・ソリューションによって、この両方のプロセスをさらに大きな自動化ワークフローに組み込むことができます。
オーケストレーション・ソリューションは、これらの外部ツールをより高いレベルのワークフローに組み込むことができ、必要なシステムすべてと通信して IT プロセスを全面的に自動化します。Jenkins はアプリケーションのビルドをオーケストレーションできる反面、プロビジョニング、設定管理、セキュリティ対応などのユースケースのためのワークフローを実行することはできません。包括的なオーケストレーション・ソリューションは Jenkins を使用してアプリケーションをビルドし、そのアプリケーションを引き取り、デプロイし、他の IT システムと連動させることができます。
オーケストレーションの実際のアクションが起こるのは、さまざまなシステムとツールが論理ワークフロー内に構築されるときです。したがって、タスクは外部システムとの相互作用によって、完全に自動化されたプロセスのすべてのステップを最初から最後まで実行できます。一般的な IT ユースケースにおけるオーケストレーション・ワークフローの例をいくつか見てみましょう。
サーバーをデプロイするワークフローには、以下のようなステップがあります。
- サーバーをデプロイする。
- サーバーを設定する。
- ストレージ容量を割り当てる。
- リポジトリからアプリケーションを取得し、インストールし、設定する。
- ファイアウォールまたはロードバランサーを対話的に操作して、この新しいシステムが確実にプールに追加され、ポリシー適用対象となるようにする。
- 会社の ITSM システムを更新して、このサーバーのデプロイが成功していることを確認する。
このプロセスには複数のサードパーティシステムとの通信が伴うため、これは 1 つの大きな自動化タスクというよりも、オーケストレーションされたワークフローです。ワークフローの開始は IT スタッフが行いますが、必要な操作はそれだけです。サーバーは設定が完了し、標準のアプリケーションがセットアップされ、すべての必要なツールに組み込まれます。
クラウドインスタンスのプロビジョニングに対応するワークフローは次のようになります。
- インスタンスをプロビジョニングする。
- オペレーティングシステムを設定する。
- ITSM システム内にチケットを記録し、システムがアクティブであることをそのチケットに通知する。
- ファイアウォールを更新する。
- 必要なユーザーアカウントを適切な権限付きで作成する。
- システムを外部データベースに接続する。
オーケストレーション・ワークフローはセキュリティ上の問題や脅威への対応にも使用できます (サーバー上でマルウェアが検出された場合など)。保護されているシステム (つまり、サーバー) は複数のセキュリティシステムおよびツールと対話して脅威を適切に処理することができませんが、優れたオーケストレーション・ソリューションであれば以下のことが可能です。
- スイッチおよびファイアウォールと対話して、トラフィックの送出元を特定する。
- IP フィルターおよびパケット検査ツールを設定して、トラフィックまたは潜在的な攻撃を把握する。
- パケット情報をサードパーティのロギングツールに送信してセキュリティログを強化するように、対象のシステムを設定する。
- 疑わしい IP アドレスを隔離する。
- この情報を、攻撃の時間、IP アドレス、ハードウェアアドレス、およびシステムから切り離されていることが確認済みであるというメッセージとともにチケッティングシステムに登録する。
これらのステップが自動的に実行された後、セキュリティスタッフがログを確認し、それが攻撃であるかどうかを判断し、適切な対応をトリガーします。あるいは、この対応をイベント駆動型自動化ソリューションに実行させることも可能です。
それ以外にも、オーケストレーションによって複数のシステムを調整して、ほとんどすべての IT プロセスのステップを自動的に実行できるため、一貫性と効率性が向上します。
オーケストレーションのメリット
必要なシステムおよびツールすべてにわたってタスクをオーケストレーションするワークフローが充実すると、IT チームは望む最終結果 (新しいサーバーの構築や、アプリケーションの更新など) を達成するためのワークフローを選択すれば、各ステップが適切な順序で自動的に実行され、毎回同じ結果が得られるようになります。
また、オーケストレーションは DevOps 戦略に従い、その戦略を強化します。たとえば、DevOps アプローチを適用した CI/CD パイプラインでは、開発者がアプリケーションのコンテナイメージを構築または変更すると、その変更によってまったく新しいイメージの構築がトリガーされ、それをプロダクションで使用しているクラスターが更新されます。オーケストレーション・ソリューションを使用すると、IT チームは、コード変更によって自動的にユーザー受け入れテスト (UAT) 環境でテストを起動してアプリケーションをデプロイするワークフローを構築できます。その結果、コードを更新したら一連の自動化タスクが起動し、最終的にプロダクションのアプリケーションが更新されます。
DevOps とオーケストレーションのどちらでも、さまざまなシステムが論理フローで動作可能となり、プロセスによる結果が一貫性のあるものになります。複数のタスクが自動化されるだけではありません。必要なすべてのシステムと対話するワークフロー全体を起動して、望ましい最終結果が生み出されます。
オーケストレーションによって IT チームは以下のことができます。
- アプリケーションのデプロイを高速化かつ効率化し、カスタマーエクスペリエンスを向上させる。
- 単調な作業とプロセスを減らして、より戦略的な活動に注力する。
- システムのエラーまたは設定ミスによって生じるパフォーマンス上の問題またはサービス停止を最小限に抑える。
- 複数の IT ドメイン (ネットワークやセキュリティなど) にまたがるコラボレーションを向上させる。
- 使用率の低い期間中にシステム (クラウドのリソースなど) を確実にデコミッショニングすることで、コスト削減を最適化する。
Red Hat の自動化オーケストレーションを選ぶ理由
Red Hat Ansible Automation Platform は、あらゆる IT ユースケースにおいて、システムおよびツールをオーケストレーションして自動化ワークフローとすることができるよう設計されています。特定のタスクの実行で卓越したパワーを発揮するソリューションもありますが、Ansible Automation Platform は複数のテクノロジーやドメインにまたがるプロセスの自動化をオーケストレーションできます。150 以上の認定パートナーが構築した検証済みおよび認定済みコンテンツを使用でき、ほぼあらゆる外部ツールと統合するための柔軟性を備えているため、オンプレミスのデータセンターおよびクラウド環境全体でオペレーティングシステム、ネットワークデバイス、ストレージ、その他のテクノロジーを接続するワークフローを作成できます。
Ansible Automation Platform は、既存のツールおよびシステムをつなぎ合わせてエンドツーエンドの自動化を構築する場合にも役立ちます。特定のタスク (アプリケーションのデプロイメントなど) に既にサードパーティ製ツールを使用している場合は、Ansible Automation Platform がそのツールと通信し、運用のライフサイクル全体でプロセスの他のすべてのステップを自動化する大規模なワークフロー内にそのツールを構築できます。たとえば、100 個の異なるプラットフォームやテクノロジーを使用するプロセスを自動化する必要がある場合、Ansible Automation Platform はそのすべてと通信し、必要なすべてのタスクをオーケストレーションして単一のワークフローを作成することができます。
ジョブテンプレートは人間が読める YAML 形式で記述される Ansible Playbook を使用して作成するため、あらゆるスキルレベルの IT スタッフが自動化を開発し、チーム間で共有できます。automation controller のワークフロー・ビジュアライザーを使用すれば、既存の Playbook とテンプレートを選択して複数システムをまたぐ論理ワークフローを作成し、各ステップに条件ルールを組み込むことができます。また、ワークフロー・ビジュアライザーを利用すると、複数ユースケースに個別に対処するのではなく、それらすべてのユースケース (および関連する運用知識) を再利用可能な 1 つのテンプレートとしてまとめて、そのプロセスを毎回まったく同じように、自動的に実行できます。
Ansible Automation Platform には、コンテンツ作成ツール、Event-Driven Ansible、強化されたセキュリティ、充実した分析機能など、企業全体での自動化の導入に必要なツールがすべて揃っています。さらに、信頼できるコードを生成する automation coding assistant や、オンボーディング、トラブルシューティング、意思決定をサポートする自動化インテリジェント・アシスタントも含まれています。
Red Hat Ansible Automation Platform:初心者向けガイド
適切な自動化ソリューションにより、組織の IT プロセスを改善することができます。Red Hat Ansible Automation Platform のメリットについてご確認ください。