PR

コンテナが登場してきた背景には、システム開発・運用の効率化を支える仮想化技術の進化がある。仮想マシンの置き換えだけでなく、アプリのポータビリティー向上がコンテナのメリットだ。Dockerが実現する機能や、Kubernetesの必要性など、コンテナ活用の基本を押さえよう。

 現在、ビジネスを成功させる要因として「デジタルトランスフォーメーション(DX)」の重要性が盛んに取り上げられています。DXの本質は、企業がテクノロジーを取り入れるスピードと、テクノロジーでどのように顧客体験やビジネスを変えるかにあると考えます。そしてDXを実現するためには、ソフトウエアやサービスをいかにスピーディーに開発するか、どのように効率良くシステムを運用するかが重要です。開発の高速化やサービスを進化させるには、短期間で要件定義からリリースまでを反復させるアジャイル開発の導入や、サービスを素早くデプロイ(配置)する環境を作り上げて、継続的にサービスを改善する手法が求められます。

 こうした取り組みを実現するためのテクノロジーとして、「コンテナ技術」や、コンテナ型アプリケーションの実行環境「Docker(ドッカー)」、大量のコンテナ管理や負荷分散を実現する「Kubernetes(クーバネティス)」があります。本連載ではこれらテクノロジーの活用法について、Q&A形式で分かりやすく解説します。「コンテナって話題になっているけど何ができるか分からない」「コンテナが良いとは聞くけれど現在の状況がどう変えられるのか」などIT担当者が抱く疑問を解き明かしていきます。

 本連載を通じて、コンテナ技術や関連ツールを利用したソフトウエア開発をイメージできるようになり、DXの推進について考えるきっかけになれば幸いです。

Question 1

 インフラ技術者です。ネットメディアでコンテナやDocker、Kubernetesといった話題をよく見かけるようになりました。これらは、仮想マシン(VM)の高速版という理解でよいのでしょうか。

Answer 1

 コンテナは、ハイパーバイザー型の仮想マシンに比べてはるかに軽量で起動、停止が高速で、オーバーヘッドが小さいことは事実です。また、Dockerの登場当初は、旧来の仮想化技術を置き換えるという位置づけの捉え方もありました。

 そもそも、なぜコンテナ技術やDocker、Kubernetesに注目が集まっているかを考えてみましょう。物理サーバーの時代から仮想化技術が生まれるまでの技術的なトレンドを振り返ることで、コンテナ技術の位置づけが理解できます。

 コンピュータの歴史は、事務処理、技術計算などの目的に応じた専用の物理コンピューターから始まりました。その後、技術が進歩して、CPUの値段が安くなり、汎用的に使える小規模なサーバー群が安価に手に入る時代が到来しました。分散サーバーの時代です。しかし、サーバーの数が物理的にどんどん増えたことで、運用管理コストがかかるようになりました。またCPU、メモリー、ディスクが非常に安くなったことで物理サーバー1台当たりのリソースが増大し、1つのシステムだけで運用すると、そのリソースを十分に活用できない状況になりました。

 そこで、1つのサーバー内で、複数のシステムを扱える技術が登場します。仮想化技術です。1台の物理サーバーの上に、複数の仮想マシンを立ち上げてリソースを無駄なく活用できる仮想化技術は、より柔軟にシステム構成を変更できるメリットもあります(図1)。

図1●ハイパーバイザー型仮想化登場の歴史
図1●ハイパーバイザー型仮想化登場の歴史
[画像のクリックで拡大表示]

 2000年代初めに登場したハイパーバイザーによる仮想化は現在では当然のように利用されており、特にエンタープライズ市場では米ヴイエムウェア(VMware)のvSphereや米マイクロソフト(Microsoft)のHyper-Vによる仮想化がデファクトスタンダードとなっています。