We couldn't find a match for given <KEYWORD>, please try again.

コンテナのデプロイとは

コンテナは、ソフトウェアをビルド、パッケージング、デプロイする方法のひとつです。コンテナには、コンテナ化されたワークロードの実行に必要な、すべてのコード、ランタイム、ライブラリといったさまざまな要素が含まれています。

コンテナのデプロイとは、コンテナをクラウドやオンプレミスのサーバといったターゲット環境にプッシュ(つまりデプロイ)することを意味します。ひとつのコンテナにアプリケーション全体を格納することはできますが、実際のコンテナのデプロイは多くの場合マルチコンテナです。つまり、ターゲット環境には複数のコンテナがデプロイされます。より動的で大規模なシステムの場合、一日に数百、数千ものコンテナがデプロイされることもあります。

コンテナは、アプリケーションの要件に応じて迅速にスピンアップとスピンダウンを行えるよう設計されています。これは、コンテナがマイクロサービスの構築、パッケージング、デプロイによく使用されるためです。マイクロサービスとは、ソフトウェア アーキテクチャの 1 つであり、これを使用すると、大規模なソリューション(モノリスまたはモノリシック アプリケーションと呼ばれる)を小規模な論理ユニットに分割できます。これらのマイクロサービスは、それぞれが独自のコンテナ内で独立して実行されます。このような最新のソフトウェア開発手法を利用することで、デプロイや将来のコード変更を高速化できるなど、多彩なメリットを得られます。

Kubernetes の現状

Kubernetes 上での開発者体験を改善し、ソフトウェア デリバリを加速する 7 つの方法

コンテナのデプロイで得られるメリット

コンテナとそれに関連する技術(オーケストレーション ツールなど)はさまざまなメリットをもたらすため、モダンなソフトウェアを開発しているチームにとって魅力的です。特に、デジタル トランスフォーメーションの目標に取り組んでいるチームや、ソフトウェア製品を以前よりも迅速かつ頻繁に提供しなければならないチームには非常に有用です。コンテナのデプロイには次のようなメリットがあります。

スピード:コンテナを利用することで、開発期間を短縮し、デプロイの頻度を高められます。CI/CD パイプラインで利用する場合は特に効果的です。コンテナは、コンテナ オーケストレーションおよび普及が進んでいる CI/CD の自動化と同様に、コードの本番リリースに関連する運用上のタスク(インフラストラクチャのプロビジョニングやテストなど)を簡素化するために利用されています。

俊敏性と柔軟性の向上:コンテナは、スピン アップや使用後の破棄を必要に応じて迅速に行えるように設計されています。そのため、コンテナを利用することで、流動的で常に変化するビジネス目標や状況に対応できます。コンテナは互いに分離されているという特徴も強みです。特に、マイクロサービス アーキテクチャと組み合わせて使用すると、セキュリティ コントロールを強化できる、アプリケーション全体を再デプロイすることなくコンテナ化されたワークロードを更新できるといったメリットが得られます。

リソースの活用と最適化:コンテナは基盤となる OS やインフラストラクチャから抽象化されているため、軽量であり、システム リソースの消費量を抑えられます。これは、アプリケーションごとに独自のゲスト OS を必要とする仮想マシンと大きく異なる点です。コンテナでは、複数のアプリケーションが同じ OS を共有できるため、同じマシンの共有リソース上で複数のアプリケーションを実行できます。こうした特長は「高密度」とも表現され、より多くのコンテナを同じホスト上で実行できることを意味します。

どこでも実行可能:コンテナは、基盤となる OS やインフラストラクチャから独立して抽象化されているため、どのような環境でも同じように実行でき、そのコード(およびコンテナの実行に必要なその他すべての要素)も、コンテナのデプロイ先にかかわらず同じように実行されます。コンテナはパブリッククラウド、プライベートクラウド、オンプレミス環境、ホストされたサーバ、開発者のラップトップなどを問わず、どのような環境でも一貫性のある動作を実現するように設計されています。

コンテナのデプロイを利用すべき理由

コンテナのデプロイが適しているのは、前述のマイクロサービス アプローチなど、さまざまな最新のソフトウェア戦略やインフラストラクチャ戦略を採用する場合です。コンテナは自身の実行環境から抽象化されているため、アプリケーション開発期間の短縮や IT 運用予算の削減が可能になります。

そのため、コンテナ化されたアプリケーションは、従来のモノリシック(「レガシー」)なソフトウェア開発アプローチからの脱却を図る DevOps などの組織で広く採用されています。コンテナのデプロイは、継続的インテグレーション(CI)と継続的デリバリ(CD)のプロセスやツールにも効果的に取り入れることができます(「CD」という略語は、同様に開発手順に関連する別の分野である「継続的デプロイ」を意味することもあります。継続的デプロイは継続的デリバリを一歩進めたもので、コードのデプロイを高度に自動化し、手動での承認を必要とせずに本番環境へデプロイできるようにします)。

コンテナ化の技術とコンテナのデプロイは、マルチクラウド環境やハイブリッドクラウド環境といった、分散インフラストラクチャ環境や異種混在インフラストラクチャ環境にも非常に適しています。

コンテナのデプロイ方法

コンテナのデプロイにはさまざまなツールを利用できます。たとえば、Docker は広く普及しているコンテナ プラットフォームおよびランタイムであり、コンテナのビルドとデプロイに使用されています。Docker をコンテナのデプロイに使用する場合に最初に行うことは、自社用コンテナの Docker イメージをビルドすることです。Docker Hub リポジトリから既存の Docker イメージを取得することもできます。Docker Hub リポジトリでは、一般的なサービスやアプリケーションのニーズに基づいて作成された、事前構築済みのイメージが共有されています。Docker のドキュメントには、導入に向けて役立つ技術手順が詳しく記載されています。

構成管理ツールや Infrastructure as Code ツールにもさまざまなものがあります。これらのツールは多くの場合 Docker などのコンテナ プラットフォームと連携して機能し、コンテナのデプロイの全体または一部を自動化するスクリプトの作成に利用できます。各ツールでは独自の手法を使用しますが、コンテナのデプロイやアプリケーションの構成を自動化するための技術的手順も提供されています。構成管理ツールや Infrastructure as Code ツール(プラットフォームによって名称が異なる)でスクリプトを作成し、構成のベスト プラクティスに基づいて、コンテナのデプロイおよび管理に必要な特定のタスクを自動化することも可能です。

関連するソリューションおよび製品

VMware Tanzu for Kubernetes Operations

最新のマルチクラウド コンテナ インフラストラクチャの基盤

VMware Tanzu Application Platform

Kubernetes 環境におけるマルチクラウド対応の優れた開発者体験の提供

VMware Tanzu Community Edition

VMware Tanzu の試用をスタートするためのエディション