コンテナは、クラウド・ネイティブなインフラを実現するための新しい仮想化の技術である。マイクロサービスやアジャイル手法などによりモダンアプリケーションを開発する場面で、利用する例が増えている。

米国をはじめ、グローバルで採用する企業が増えているコンテナと、コンテナの起動/削除/監視などを管理するオーケストレーション技術「Kubernetes(クバネテス)」について、導入・活用のポイントを解説する。
スピードこそがコンテナ導入の利点
コンテナとKubernetesへの企業の関心は、昨今ますます高まっている。顧客企業からガートナーへの問い合わせ件数は、年率40%のペースで増えており、私にも毎週のように質問が届く。
グローバルでは、既に約30%の企業が何らかの“本番環境”にコンテナを使っている。ガートナーは、2025年には85%の企業が本番系のシステムにコンテナを採用すると予測している。アーリーアダプターが使う技術にとどまらず、大半の企業が当たり前に使う技術になるだろう。
コンテナの採用が進んでいるのは、アジャイル開発やDevOps、マイクロサービスでの採用拡大が背景にある。コンテナは、このようなモダンなアプリケーション開発の現場で、インフラをスピードアップする目的でよく導入されている。
仮想マシンはコストの削減を目的とした導入が多かったが、デプロイ(本番環境へのアプリ配布)に数分から数時間を要するなど、モダンなアプリケーションではスピード不足になる。これに対して、コンテナは立ち上げて数秒で使えるなど、モダンなアプリケーションのスピードを引き出せる。
コンテナは、仮想マシンよりも軽量であるなど、コスト面でのメリットがある。しかしこれ以上に、アプリケーション開発でのスピード面でのメリットが採用の決め手になっているケースが多い。コスト/信頼性のようなインフラ部門の視点だけでなく、開発部門の視点からもコンテナを見ると、その必要性を理解しやすいはずだ。
新規アプリや軽量の既存アプリから導入
企業がコンテナを導入する際に、重要なポイントが3つある。1つめは、「コンテナを何に使うか」を決めるユースケースの選択だ。2つめは、「コンテナのプラットフォームをどう整備するか」を決めるソリューションの選択である。3つめは、「コンテナを活用できるように体制を見直す」という組織内の役割分担となる。
1つめのポイントであるユースケースについて見てみよう。現時点でコンテナは、クラウド・ネイティブ・アプリの新規開発や、軽量な既存アプリへのDevOps適用の際によく使われている。