コンテナ・オーケストレーションは、コンテナのプロビジョニング、導入、ネットワーキング、スケーリング、可用性、およびライフサイクル・マネジメントを自動化します。 今日、Kubernetesが最も人気のあるコンテナ・オーケストレーション・プラットフォームであり、Amazon Web Services(AWS)、Google Cloud Platform、 IBM Cloud、そしてMicrosoft Azureなど、パブリック・クラウド・プロバイダーのトップ企業の数々が、Kubernetesのマネージド・サービスを提供しています。 その他のコンテナ・オーケストレーション・ツールには、Docker SwarmやApache Mesosなどがあります。
コンテナ は、あらゆる環境でコードを実行するためにアプリケーション・ソース・コードをすべての オペレーティング・システム (OS)ライブラリーや 依存関係 と組み合わせる、軽量で実行可能なアプリーション・コンポーネントです。
コンテナを作成する能力は数十年にわたって存在してきましたが、それが幅広く利用可能となったのは、 Linux がコンテナ機能をその中核に据えた2008年です。そしてさらに、 Docker オープンソース コンテナ化プラットフォームが2013年に発表されて以降、一層幅広く使用されるようになりました。 (Dockerは非常に人気があるため、「Dockerコンテナ」と「コンテナ」という用語が、区別なく使用されることがよくあります。)
より資源効率が良く、仮想マシン(VM)より移植しやすいため、コンテナ(より具体的には、コンテナ化されたマイクロサービスまたはサーバーレス機能)は、現代のクラウドネイティブ・アプリケーションの事実上のコンピュート・ユニットになっています。 (コンテナの利点の詳細については、以下のインタラクティブ・データをご参照ください)
数量が少ない場合は、コンテナの導入や管理は手動で簡単に行えます。 しかし、ほとんどの組織で コンテナ化されたアプリケーション の数は急速に増えており、それらを(特に、 継続的組み込み/継続的デリバリー (CI/CD)または DevOps パイプラインの一部として)大規模に管理することは、 自動化をしなければ不可能です。
コンテナ・オーケストレーションを取り入れ、 コンテナ化されたアプリケーション とサービスの 導入 と実行にかかるオペレーション・タスクを自動化しましょう。 最新のIBMの 調査 (PDF、1.4MB)では、コンテナを使用する開発者の 70%がコンテナ・オーケストレーション・ソリューションを使用しており、そのさらに70%はフルマネージド(クラウド管理された)コンテナ・オーケストレーション・サービスを組織内で使用していると報告されています。
ツール間の方法論の違いや能力差はありますが、コンテナ・オーケストレーションのプロセスには、基本的に3つのステップがあります(反復アジャイルや DevOps パイプラインの一部である場合は、プロセスが循環することもあります)。
多くの コンテナ・オーケストレーション・ツール は、 宣言型 の構成モデルをサポートしています。つまり、開発者が希望する構成状態を定義する 構成ファイル (使用するツールに応じて YAML 形式また JSON 形式で)を作成すると、オーケストレーション・ツールが、インテリジェンスを使用してそのファイルを実行し、その構成状態を実現します。 構成ファイル は通常次のことを行います。
オーケストレーション・ツールはコンテナ(そしてレジリエンシーのためにコンテナのレプリカも)のホストへの導入をスケジュールし、CPU能力、メモリー、または 構成ファイル の中に指定されたその他の条件や制約に基づいて、最良のホストを選択します。
コンテナがデプロイされると、オーケストレーション・ツールが、コンテナ定義ファイル(主にDockerfile)に基づいて、 コンテナ化アプリケーション の ライフサイクル を管理します。 次はその一部の例です。
コンテナ・オーケストレーションの主な利点が オートメーション であることは明らかですが、 それは膨大な コンテナ化されたアプリケーション を管理する上での手間や複雑さを大幅に削減してくれるからだけではありません。 オペレーションを自動化することで、オーケストレーションはアジャイルや DevOps アプローチをサポートし、チームが開発とデプロイを急速に繰り返して新機能や改善のリリースを早めることを可能にします。
加えて、オーケストレーション ツールのインテリジェンスは、コンテナ化の固有の利点の多くを向上 または拡張 することができます。 例えば、 宣言型 構成に基づく自動化されたホスト選択とリソースの 割り振りにより、コンピューティング・リソースの利用効率を最大化できます。自動化された正常性モニタリングおよびコンテナの再配置により、可用性を最大化できます。
前述のとおり、 Kubernetes は最も人気がある コンテナ・オーケストレーション・プラットフォームです。 コンテナ エコシステム内の他のツールと組み合わせることで、 Kubernetes は企業が生産性の高い Platform-as-a-Service(PaaS) を提供することを可能にします。これは、インフラストラクチャおよび運用に関連するタスクと クラウドネイティブ アプリケーション開発周辺の問題の多くに対処します。これにより、開発チームはコーディングとイノベーションに集中することができます。
Kubernetesが他のオーケストレーション・ソリューションに勝っているのは、以下のような複数の分野において、より包括的かつ洗練された機能を備えているためです。
Red Hat OpenShift on IBM Cloudは、パブリック環境やハイブリッド環境でOpenShiftを活用して、俊敏性、市場への即応性、拡張性、信頼性の向上を図ります。
IBM Cloud Satelliteでは、オンプレミス、エッジ、パブリッククラウドなどのあらゆる環境で、一貫したクラウド・サービスをご利用いただけます。
コンテナ・イメージ、バッチ・ジョブ、またソースコードをサーバーレス・ワークロードとして実行します。サイジング、デプロイ、ネットワーキング、スケーリングは不要です。