コンテナの普及に伴い、オーケストレーションの必要性はますます高まっています。
コンテナオーケストレーションとは基本的に コンテナの管理、スケジューリング、ネットワークセキュリティ、監視を自動化する方法です。
小規模なコンテナ環境であれば、オーケストレーションなしでも対応できるかもしれません。しかし、一定の規模を超えると、コンテナを効果的に管理することはますます難しくなります。そのため、オーケストレーションソフトウェアが必要になります。
ここでは、コンテナオーケストレーションにおける主要なトレンドを紹介します。
Kubernetesの台頭
コンテナオーケストレーションに関しては、Kubernetesがその空白をほぼ埋めています。端的に言えば、Kubernetesはコンテナオーケストレーションのためのオープンソースプラットフォームです。Kubernetesは、コンテナ化されたアプリケーションが必要とする自動化、デプロイ、管理、スケーリングの機能を提供します。
やや複雑な名称であるKubernetesは、パイロットまたは操舵手を意味するギリシャ語に由来します。まさに適切な名前です。Kubernetesはコンテナ化された環境を導き、オーケストレーションします。コンテナは単体でも有用でしたが、Kubernetesはコンテナをさらに高い次元へと引き上げました。そのレベルは仮想マシン(VM)さえも上回り、クラウドインフラやアプリケーションコンポーネントを構築する際の事実上の標準になる可能性があります。
Kubernetesはまた、クラウドプロバイダーが提供するプラットフォーム・アズ・ア・サービス(PaaS)の普及拡大への扉も開きました。PaaSを利用すれば、開発者はアプリ開発プロセスを簡素化する開発パッケージを自由に選択できます。
つまりKubernetesは、Linuxコンテナの運用を自動化するスマートな方法です。パブリック、プライベート、ハイブリッドの各クラウドで稼働するLinuxコンテナのクラスターを効率的に管理しやすくします。さらに、開発者が疎結合で個別にデプロイ可能なサービスから構成され、後の開発作業でも再利用できるアプリケーションを開発できるようにするマイクロサービスをサポートしています。
ハイパースケーラーがオーケストレーション革命を主導
Googleは、コンテナオーケストレーションにおける初期の革新者でした。他の大手クラウドプロバイダーとともに、さらに高度なオーケストレーション層を提供するため、現在も限界を押し広げ続けています。
Omdia Researchによると、コンテナ・アズ・ア・サービス機能への関心は、クラウドサービスを導入し始めた最新のユーザー層からの強い需要によって高まっています。こうしたユーザーは、自らクラウドを構築するために試行錯誤するのではなく、クラウドサービスプロバイダーにクラウドインフラの設計・構築を任せることを選んでいます。これにより、基盤となるクラウドインフラの構築や、社内スキルの採用、育成、維持に費やす膨大な時間を削減できます。
こうしたプロバイダーは、ソフトウェアコンテナや、OpenStackでオーケストレーションされたクラウドのオーケストレーションをさらに自動化する、より新しく優れたサービスを次々と生み出しています。Omdiaは例として、企業が多数のソフトウェア機能をコンテナとしてパッケージ化したDockerレジストリにアクセスし、Kubernetesを使ってそれらを実用的なアプリケーションとしてオーケストレーションできるケースを挙げています。
Kubernetesとストレージ
Kubernetesは、ストレージにも新たな可能性を切り開いています。その基本的なコンテナオーケストレーション機能により、ストレージは従来の硬直したアーキテクチャから解放されつつあります。
「永続ストレージとエッジコンピューティングを備えたKubernetesは、ITアーキテクトのストレージと仮想化に対する考え方を変えつつあります」と、iXsystemsの製品管理担当シニアバイスプレジデント、Morgan Littlewood氏は述べています。
「KubernetesとContainer Storage Interface(CSI)は、ストレージとアプリケーションの制御、簡素化、統合を大幅に進める、ストレージの一般的な管理方法になりつつあります」
ハイブリッドクラウドとコンテナ
オーケストレーション機能によって、組織はハイブリッドクラウドアーキテクチャを構築しやすくなりました。
Eric Herzog(InfinidatのCMO)は、ハイブリッドクラウドとコンテナ技術への移行が、さらに加速して広がっていくと考えています。
「多くのワークロードがハイブリッドクラウド構成へ移行する中で、ハイブリッド環境全体にわたり、コア、エッジ、クラウドをはじめ、仮想化レイヤーとコンテナレイヤーを支えるインフラが不可欠になります」とHerzog氏は述べています。
「これにより、企業は自社のビジネスに適したSLAで、適切なエンドユーザーサービスを提供できるようになります」
サーバーレスコンピューティング
サーバーレスコンピューティングを利用すると、開発者はサーバーを管理することなく、また社内で管理していればアイドル状態になっていたはずのクラウドインフラに料金を支払うことなく、コードを構築・実行できます。その結果、開発者はフロントエンドのアプリケーションコードの記述とビジネスロジックの作成に集中できます。どのように動作するのでしょうか。開発者は、プロビジョニング、インフラ、需要に応じたスケールアップとスケールダウン、さらに日常的なインフラ管理・保守のすべてを担うクラウドサービスプロバイダーが管理するコンテナを利用します。これには、アップデートとパッチ、セキュリティ、キャパシティプランニング、システム監視が含まれます。
例えばRed Hatは、OpenShiftサブスクリプションの一部として提供されるRed Hat OpenShift Serverlessを通じて、サーバーレス機能を提供しています。Operatorを介して、OpenShift上にワンクリックでインストールできます。コマンドラインインターフェース(CLI)だけでなく、OpenShiftのDevConsoleを通じてサーバーレスの開発・デプロイ体験も提供します。
Naina Singhは、Red Hatのプリンシパル・プロダクトマネージャーで、同社のサーバーレスプラットフォームは「コンテナを簡単にしたもの」と表現できると述べています。
「インフラを抽象化し、重要な点に集中しながら、サーバーレスコンテナにアプリケーションやコードをデプロイできる、簡素化された開発者体験を提供します」とSingh氏は述べています。
「ポータブルなサーバーレス環境は、オンプレミスでもパブリッククラウドでも、OpenShiftが稼働する場所ならどこでも実行できます」