公開日:2022年11月2日
情報技術(IT)分野のオーケストレーションとは、コンピューターシステムやソフトウェアを自動的に構成、調整、管理するプロセスを指します。オーケストレーションの目的は、IT部門がハードウェアとソフトウェアの複雑な実装作業およびワークフローをより簡単に管理できるようにするとともに、ビジネスやエンドユーザーの要求を満たす構成を実現することです。
多くの場合、最新のITシステムは、ハードウェアとソフトウェアの複数のコンポーネントで構成されており、そのコンポーネントはオンプレミス、クラウド、およびハイブリッド環境に配置されています。このような入り組んだシステムは、成長するにつれてさらに複雑になり、相互接続されます。ITチームがこれらのシステムのすべての側面を管理することは、自動化の助けなしではもはや不可能です。オーケストレーションは、コア機能の多くを自動的に実行することでその作業を容易にします。
自動化とオーケストレーションは同じではありませんが、両者は関連性があり、互いに補い合っています。ITの自動化とは、通常、単一のタスクを自動化することです。たとえば、人間の介入なしでシステムによって実行できる反復作業などです。オーケストレーションは自動化を利用しますが、より広範囲かつ包括的な意味で、単一のタスクではなくプロセスやワークフローを自動化する方法に目を向けています。言い換えると、自動化されたプロセスをオーケストレーションして連携させることで、特定の目標や成果を達成できます。
オーケストレーションでは、サーバーのプロビジョニング、インシデント管理、データベース管理、仮想マシンの作成、アプリケーションの連携など、多くのタスクやワークフローを含むさまざまなITプロセスを自動化できます。
この記事では、ITオーケストレーションの基本、ITの自動化との違い、クラウドやコンテナなどの異なる枠組みにおける動作、オーケストレーションツールの選び方、導入のためのベストプラクティスなど、ITオーケストレーションの概要について説明します。
ITオーケストレーションが重要である理由
オーケストレーションは、現代のIT組織にとって、速度や効率を高め、規模を拡大するうえで非常に重要です。ほとんどのIT部門では、人員や予算が増やされないまま、タスクや責任ばかりが増えているというのが現状です。ワークロードの増加によって疲労が蓄積し、多くのITリーダーはチームを十分に機能させるために必要な人材を採用できずにいます。そしてチームへの期待も高まり、責任が重くなるほど人的ミスが起こる可能性も高くなります。
オーケストレーションは、ITチームが最大の課題に対処し、IT管理における反復的で複雑な労力に見合わないタスクを合理化し、人間の介入を必要とすることなく、迅速で効率的かつ効果的にこれらのタスクを処理するのに役立ちます。
反復の多いタスクやフローをなくすことで、管理者は解決に創意工夫が必要な課題に取り組めるようになり、さらにはデジタルトランスフォーメーションの新たな機会を計画して実行に移し、探究できるようになります。
たとえば、特定のコード行のすべてのインスタンスを見つけて1つずつ書き換えると漏れやミスにつながる恐れがありますが、開発者であればそうする代わりに、すべてのインスタンスのコードを新しいコードに置き換えるスクリプトを作成するでしょう。
最終的に、テクノロジー主導のほぼすべての組織は、オーケストレーションによって市場投入までの時間を短縮できます。具体的なメリットには次のようなものがあります。
- 開発期間の短縮
- 大規模で時間のかかる反復作業の自動化
- サーバーおよびアプリケーション管理の効率化
- 人的ミスの可能性の低減
- 権限チェックの統合
- ITコスト全体の削減
- チームのコラボレーションと生産性の向上
- ワークフローとプロセスの標準化
- 従業員の士気、エンゲージメント、定着率の向上
オーケストレーションと自動化の違い
自動化はタスクを指して使う用語であるのに対し、オーケストレーションはリンクされたタスクを自動化することを指します。
ITオーケストレーションと自動化の違いは、その適用方法にあります。自動化とは、一般的に、ITアラートの送信、Webサーバーの起動、電子メールのルーティングなど、何千とある個別のタスクを指して言います。オーケストレーションとは、ロボティックプログラムオートメーション(RPA)ボットや自動化スクリプトなどを使用して、連携して動作するよう設計された一連のタスクを自動化することです。ただし、IT分野で「自動化」という用語を使うとき、実際にはオーケストレーションを指していることも少なくありません。つまり、「自動化」という用語はタスクを指して使うのに対し、「オーケストレーション」はワークフローやプロセスを指します。
オーケストレーションが可能なのは自動化されたプロセスだけであり、手動プロセスはオーケストレーションできません。つまり、自動化はオーケストレーションのサブセットと考えることができます。
また、オーケストレーションはより複雑です。自動化ツールは単純な「if this, then that (こういう場合はこうする)」型のプロセスに適用できます。オーケストレーションはさらに1歩踏み込み、調整と意思決定を含むより複雑なやり取りを実行します。オーケストレーションでは、次のことが可能です。
- 自動化されたタスクの出力を基に構築する。
- その出力に基づいて、複数のアクションを実行する。
- さまざまな出力と条件に基づいて、異なるタスクを選択する。
- 複数の個別のタスクを同時に実行し、調整する。
プロセスが直線的、つまり意思決定を次々と実行する一連のif-then文によって処理されるのであれば、それは自動化です。そのプロセスがさまざまな入力に基づいて、同時に複数方向に分岐可能である場合、それはオーケストレーションです。
クラウドにおけるオーケストレーションの意味
クラウドにおけるオーケストレーションとは、クラウド環境でビジネスプロセスをオーケストレーションによって合理化および自動化することです。
クラウドにおけるオーケストレーションは、オンプレミス環境と同じように、サービスをより迅速に提供し、運用を効率的に管理できるというメリットをもたらします。オーケストレーションは、クラウドベースサービスのプロビジョニングに必要な人数を削減し、ミスを防止することで、エンドユーザーに提供するクラウドサービスの品質を向上させます。
クラウドオーケストレーションには、サービス、ワークロード、リソースのオーケストレーションという3つの主要な側面があります。オーケストレーションプラットフォームは、それらのアクティビティを調整し、クラウドサーバー、ネットワーク、ソフトウェアの重要な機能を実現します。
オーケストレーションを利用すると、クラウド、マルチクラウド、またはハイブリッドクラウド環境のさまざまな機能を統合して効率的に連携させ、可用性、拡張性、障害回復の能力を確保し、依存関係のあるタスクやその他のタスクを正常に機能させることができます。また、オーケストレーションによって、クラウドコンピューティングのプロセスがより詳細に可視化され、キャパシティ、リアルタイムのリソース管理、セキュリティなどの重要な属性について優れたインサイトを入手できます。
ビッグデータにおけるオーケストレーション
ビッグデータにおけるオーケストレーション(データオーケストレーション)とは、異なるシステム、データセンター、またはデータレイクにまたがるデータを管理するプロセスを一元的に制御することです。オーケストレーションが複数の補完的なプロセスを自動化することでアプリケーションをより高速かつ効率的に実行できるのと同様に、データオーケストレーションは、複数の場所に保存されているデータに組織がより高速かつ効率的にアクセスし、利用できるようにします。
データオーケストレーションはデータオーケストレーションプラットフォームによって実行されます。データオーケストレーションプラットフォームとは、ミドルウェアアプリケーションであり、ビジネス分析アプリケーション、顧客関係管理(CRM)ツール、またはその他のビジネスアプリケーションのようなデータを使用するアプリケーションと、データウェアハウジングツールとの間に配置されます。
データオーケストレーションによって、データ主導型プロセスへの迅速な統合が可能になり、組織のIT部門は新しいデータソースを容易にオンライン化できるようになります。データオーケストレーションは、データソースを追加するプロセスの多くを自動化し、より高速かつ効率的に実行できるようにします。カスタムコードの作成や実装作業は必要ありません。
DevOpsにおけるオーケストレーション
DevOpsオーケストレーションとは、DevOps環境で実行されるオーケストレーションプロセスであり、アプリケーションの本番環境の問題を軽減し、市場投入までの時間を短縮します。ITオーケストレーションがITプロセスを高速化して効率化するのと同じように、DevOpsオーケストレーションは複数のアプリケーション開発プロセスを自動化して高速化できます。
DevOpsは、「Dev」と「Ops」、つまりアプリケーションの背後にあるコードを作成するソフトウェア開発と、それらのアプリケーションを本番稼動させ、エンドユーザーに提供し、アプリケーションのライフサイクル全体にわたって保守するIT運用とのギャップを埋めるものです。
DevOpsは、アジャイル開発に伴うボトルネックを解消します。アジャイル開発では、開発者が新しいソフトウェアや更新コードを頻繁に作成しますが、従来型の運用チームがそのソフトウェアを迅速にテストして実稼動させることは困難です。
ITオーケストレーションは、ワークフローを自動化してプロセスを高速化できるという点で、アプリケーションをより迅速にデプロイするというDevOpsの目標と親和性が高く、これにより開発チームと運用チームの両方が同じペースで仕事をこなせるようになります。DevOpsチームは、個々のタスクには自動化、ITプロセスにはオーケストレーションというように、自動化とオーケストレーションの両方を使用します。
Kubernetesにおけるオーケストレーション
Kubernetesオーケストレーションとは、複数のコンテナにまたがるアプリケーションを自動的に構築して管理するプロセスです。これまではこの作業を手動で行う必要がありました。オーケストレーションはKubernetesの重要な機能であり、メリットでもあります。Kubernetesは、それ自体がコンテナオーケストレーションツールです。
コンテナとは、アプリケーションと、そのアプリケーションを実行するために必要なすべてのものをパッケージ化し、容易に実装できるようにしたソフトウェアユニットです。コンテナの機能をより詳しく理解するために、空の箱を想像してみてください。この箱(つまりコンテナ)の中に、アプリケーションのコード、システムツール、設定ファイル、およびアプリケーションが動作するために必要なその他の依存コンポーネントを入れておけば、ローカルマシン、パブリッククラウド、プライベートデータセンターなどの別の場所に展開(デプロイ)できます。
コンテナオーケストレーションを実行するオープンソースソフトウェアとして、KubernetesはDockerのようなコンテナ化されたアプリケーションを管理、拡張、デプロイできます。Kubernetesユーザーは、必要なコンテナアーキテクチャの種類を定義できます。ソフトウェアは自動的にコンテナのスケジュールを設定し、コンテナが複数のアプリケーションやホスト上にある場合でも、利用可能なコンピューティングリソースに基づいて、コンテナがそれらのパラメーター内で実行されるようにします。
Kubernetesを使えば、開発プロセスを劇的に向上させることができます。コンテナ管理を効率化し、更新とスケーリングを自動化して、ダウンタイムを最小限に抑えることで、開発者はアプリケーションの機能改善と新機能の開発に集中できます。
APIオーケストレーション
APIオーケストレーションとは、複数のアプリケーションを1つのサービスに統合するプロセスです。デジタルサービスの世界では、たとえば購入取引の複数のステップなど、複数のプロセスを同時に実行できるようにするためにAPIが不可欠です。APIオーケストレーションは、このような複数のプロセスが、連携した機能として動作するよう設計されています。
API (Application Programming Interface)は、アプリケーションが相互に通信するためのソフトウェアツールです。規定のプロトコルのセットであり、誰かによって作成されたアプリケーションが、他の誰かによって作成されたアプリケーションとやり取りできるようにします。現代社会において、APIはWebサイトでの気象情報の表示、オンライントランザクションの支払いの承認、ソーシャルメディアの認証情報を使用したアカウントやアプリへのログインなど、膨大な数の機能を実現しています。
オーケストレーションツールに求められる機能
オーケストレーションツールを選ぶ際には、解決しようとする主要な問題に対応でき、既存のテクノロジースタックと統合でき、将来の要件に合わせて拡張可能なものを探す必要があります。
問題の特定と優先順位付け:主要な関係者をプロセスに関与させながら、解決が必要なITの問題と、最も大きなメリットをもたらすITの問題を特定することから始めます。オーケストレーションの取り組みの最終的な目標を決定すれば、適切なツールやプロバイダーを選択できます。自分の組織や業界に特有の要件が含まれていることを確認してください(監査証跡を提供できる必要があるかなど)。
既存のテクノロジーとの統合:選択したツールが既存のテクノロジースタックと連携して動作することを確認します。レガシーシステムは、最新のオーケストレーションソリューションとうまく連携できる場合とそうでない場合があります。そのため、ベンダーやコンサルタントと協力して相互運用性を確保する必要があります。
拡大するデータニーズへの対応:データニーズがどれだけ急速に拡大するかを現実的に評価します。その判断は、できる限り過去のデータと将来の予測の両方に基づいて行います。オーケストレーションプラットフォームで処理が必要になるデータの量は、今後も増加する一方であることを念頭に置いてください。
ビジネスニーズへの対応:最も必要なタスクに基づいてソリューションを選択します。ITオーケストレーションソフトウェアでは次のようなさまざまな機能やサービスを提供できます。
- クラウドプロビジョニング
- 構成管理
- アプリケーションのデプロイ
- サービス内オーケストレーション
その他にも、与信承認や請求処理のような財務業務など、アプリケーションワークフローのオーケストレーションによってビジネスサービスやアプリケーションをサポートするオーケストレーションパッケージもあります。
オーケストレーションは、ソフトウェアアプリケーションの構築にも使用できます。ソフトウェアの継続的デリバリーと継続的インテグレーションに特化したパッケージは多数のプラグインを備えており、オーケストレーションツールでほとんどのソフトウェアデリバリーテクノロジーを自動化できます。
オーケストレーションのベストプラクティス
ITオーケストレーションは、その性質上、IT運用の複数の領域に関わる複雑なプロセスです。特にオーケストレーションを始める際には、プロセスのさまざまな側面を考慮し、共通の目標を達成するためにそれらが連携するように最善を尽くすことが重要です。そのために、ITオーケストレーションのベストプラクティスをいくつかご紹介します。
定義されたビジネスニーズを満たすためにオーケストレーションを行う:オーケストレーションフレームワークは、ビジネス価値の可視化と測定が可能なアクティビティを中心に計画することが重要です。可能であれば、組織内の誰もが解決する必要があると認める問題から始めましょう。
人間への影響を考慮する:オーケストレーションの目的は、人間よりも速く効率的に行えるタスクを自動化することです。反復的でミスが発生しやすいタスクに照準を合わせて業務を効率化し、ITチームがより創造的な仕事に専念できるようにします。
時間短縮を目標にする:反復的な機能をオーケストレーションすることで、チームがより創造的で生産的なタスクに専念できるようになるだけでなく、これらのタスクをより迅速に行えるようになります。オーケストレーションの取り組みの有効性を証明する最良の方法の1つは、複雑なタスクをどれだけ速く実行し、価値を提供できるかを示すことです。
大きな約束をするよりも、大きな成果を出す:オーケストレーションの取り組みはおそらく大きな価値をもたらしますが、その価値はすぐに実現できないこともあります。オーケストレーションの取り組みを最適化するために、いつ、どのくらいの準備期間が必要になるかについて、現実的な期待値を設定してください。
他のチームにもメリットをもたらす:オーケストレーションは、IT部門以外にも大きなメリットをもたらします。DevOps環境では、オーケストレーションは、機械学習とともに導入された場合を含め、継続的デリバリーの目標を達成するのに役立ちます。関係者を選ぶ際は、オーケストレーションのメリットを享受するチームを、自分のチーム以外からうまく組み合わせて選ぶようにしてください。
オーケストレーションのベストプラクティスを利用すれば、チームとビジネスを成功へと導くことができます。
自動化について私たちが学んだことやメリットはすべて、オーケストレーションにも当てはまります。私たちが日々扱うソフトウェアアプリケーションは、他のアプリケーションと連携し、APIを呼び出し、重要な情報を共有し、あらゆる処理を超高速で実行します。このような環境では、オーケストレーションによって優れたエンドユーザーエクスペリエンスを提供することが不可欠です。
アプリケーションのクラウド移行やコンテナ化が進むにつれ、オーケストレーションによってより多くのソースからデータを収集し、そのデータを高度で有益なアプリケーションに提供できるようになります。そのためオーケストレーションの重要性はさらに高まるでしょう。自動化と同様、ITオーケストレーションのメリットは明確であり、それらを実現するための道筋もはっきりと描かれています。オーケストレーションは、企業が毎日使用するソフトウェアアプリケーションにますます多くの機能やメリットをもたらし、今後もデジタルトランスフォーメーションの重要な推進力であり続けるでしょう。
IT/オブザーバビリティに関する予測
驚きに勝るものはありません。すべてを受け止める準備を整えておきましょう。Splunkのエキスパートが予測する、来年の重要なトレンドをご確認ください。