コンテナ技術とは?3つのキーワードで説明!
インフラエンジニアとして日々耳にする言葉のひとつに「コンテナ」という言葉があります。
2014年、Googleが「Googleのすべてのサービスはコンテナ化されていて、毎週20億個のコンテナを起動している」と発表。例えば私たちが普段利用しているGoogle検索、Gmail、Google Mapなどだけでなく、社内で使うすべてが2014年時点ですでにコンテナで実行されていたのです。
広報とはいえ、IT業界に身を置く者として避けて通れない道。最近学んだ「コンテナ技術」のことを簡単にご説明したいと思います!
今回は、3つのキーワード「コンテナ」「Docker(ドッカー)」「Kurbernetes(クーベネティス)」をものすごく簡単に説明します。
なぜ、コンテナと呼ぶのか?
海運業界を思い浮かべた時に、まっさきに思い浮かぶのが港におろされるコンテナの数々ではないでしょうか?
運輸業界ではコンテナを使って、運送する物のサイズを標準化し、より効率的に多様な物資の運搬を可能にしています。一隻の船に、数種類の貨物を積むことが可能になることで「Aという物資を運ぶためだけの専用の船」を準備する必要がなくなるのが標準化のメリットです。
IT業界でいう「コンテナ化」も考え方は同じで、ひとつの環境に数台の「コンテナ」を準備することで、「環境構築」の工数が大幅に削減できることが可能になります。
オペレーティングシステム(船)とソフトウェア(積荷)を準備するのではなく、コードとそれが依存するものだけをコンテナへ準備し操作できるようにすることで、 環境を一から構築するよりも、早く環境を準備することが可能になったのです。
では、Dockerってよく聞くけど…
ひとつの環境に複数のコンテナを準備することができるのがDockerというソフトウェアです。
従来の仮想化技術で使われていたハイパーバイザーという技術は「運ぶ物のために船を準備する」技術だとしたら、Dockerは「運ぶ物のためにコンテナを作る技術」です。
Kurbernetesとは?
コンテナの話をしていると必ず出てくるもうひとつのキーワードがKurbernetesです。これは、コンテナオーケストレーションシステムと呼ばれているものです。
コンテナの活用が進むと、複数の環境に複数のコンテナが置かれ、どのコンテナを何のために作ったか管理が必要になります。Kurbernetesはコンテナのプラットフォームとして実行、スケーリング、監視などの機能があり、司令塔のような役割を担います。
(Kurbenetesはギリシャ語で司令塔)
より、コンテナの活用を実用的にしたシステムで、コンテナオーケストレーションシステムのスタンダードとなっています。
なぜ、今コンテナなのか?マイクロサービスとは?
では、なぜ今コンテナがこんなに注目されているのでしょうか?
それは、デジタル変革がめまぐるしい今、さまざまなソフトウェアがマイクロサービス化しているからです。
例えば「ネットショップの開発」となると、一つひとつの機能を順番に作ってきていたのを、機能ごとに開発し、つなぎ合わせて作るという方法を取ることでより早い開発が可能に。そしてエラーが出た時もエラーが出ている機能だけを修正することが可能になります。
でも、そこで課題になるのは「開発環境の準備」です。機能ごとに、「船」から作っていくやり方だと莫大な時間と費用がかかってしまいます。そこで、コンテナという早く安く準備のできる環境の需要が高くなっているのです。
インフラエンジニアの将来が不安…
開発エンジニアが開発環境を心配しないでアプリケーションをたくさん開発するぞ!という意欲が感じられる反面、インフラエンジニアの将来が不安に…
でもご安心を!Dockerを使用するのにも、ハードウェアやネットワーク、OS、ミドルウェアの基本的な知識は必要で、Linuxの知識などは必須。また多様なツールを使用し、最適なインフラを構築するためには、インフラについての知識が求められます。
コンテナ技術と聞くとクラウドのイメージがありますが、オンプレでコンテナサービスを運用できる知識が必要になっていくそうです。Docker + Kubernetesを操るエンジニアとしての活躍も期待できます。
これまで培っていたインフラの知識やノウハウの価値が発揮することが、これからのインフラエンジニアに求められそうですね。
アイエスエフネットでは、コンテナ仮想化の導入支援も行っています。
(もちろん、私より詳しい専門のエンジニアがご説明にまいりますのでご安心を)
>>カクテルクラウド