使える! 情シス三段用語辞典62「Docker」
常に新しい用語が生まれてくる情報システム部門は、全ての用語を正しく理解するのも一苦労。ましてや他人に伝えるとなると更に難しくなります。『情シスNavi.』では数々のIT用語を三段階で説明します。
一段目 ITの知識がある人向けの説明
二段目 ITが苦手な経営者に理解してもらえる説明
三段目 小学生にもわかる説明
取り上げる用語を“知らない”と思った人は、小学生にもわかる説明から読んでみると、理解が深まるかもしれません!?
一段目 ITの知識がある人向け「Docker」の意味
コンテナ型の仮想化技術を提供するオープンソースである。
従来の仮想マシンは、ホストマシン上にハイパーバイザを利用してゲストOSを動作させ、その上にミドルウエアやアプリケーションを構築する。
一方Dockerの場合は、どの環境もホストのカーネルを使い、プロセスやユーザーを環境単位で分けることで仮想環境を構築する。ゲストOSを環境ごとに動作させる必要がないため、軽量で動作し、高速に起動/停止が可能になる。
Dockerの一番のメリットとされるのが、デプロイ作業の効率化だ。開発の上では本番環境の他に、開発環境や統合テスト環境などいくつかの環境が用意されているのが通例だが、それぞれの環境が微妙に異なるために、開発環境で動いていても、いざ本番環境にリリースすると動かないということがよくある。致命的なミスの場合は、一世代前の環境に切り戻しをしなければならず、デプロイ担当者に重い負荷がかかっていた。コンテナであれば、軽量で動作するため、本番環境のイメージを世代ごとに持つことができる。何か問題があれば、すぐに任意の世代のイメージにスイッチして迅速に切り戻すことができる。
最近ではクラウドにシステムを構築することが多くなってきたが、クラウドのツールを使用してシステムを構築すると、別のクラウドに移行することが事実上できない。しかし、最近ではDockerに対応するクラウドベンダーも増えてきた。コンテナ上にシステムを構築すれば、イメージをそのまま別のクラウドに簡単に移し替えることができる。最悪のケースでクラウドベンダーがサポートを中止したとしても、別のクラウドに乗り換えることができる。
ただし、アプリケーションがDockerに対応できていないと動作しないので、今のところ普及は限定的だ。ただ、利便性や顧客への価値創造という観点から考えると、今後は重要な位置を占めるだろう。
二段目 ITが苦手な経営者向け
ある日社長に呼ばれた情シスの有田さん。
社長:有田、ちょっと相談があるんだけど。
有田さん:はい、なんでしょう?
社長:ウチが運営してる「おこづかい帳Web」は加入者が順調に増えているよ!もっと増やすためにどんどん機能を追加したいんだ。
有田さん:バンバン開発したいのはやまやまですけど、これ以上は無理ですよ~!デプロイ担当の山田君が疲れ切ってます。
社長: 山田が?!どうして?
有田さん:一日に何回もプログラムをリリースするからですよ。デプロイ作業した後もいつトラブルが起きるかわからないから、トイレにも行くヒマがないって言ってました。
社長:それは大変だな。山田がラクになって、もっと頻繁に機能追加できる方法はないのか?
有田さん:いまの環境じゃムリですよ。Dockerに変えれば別ですけど。
社長:Docker?なんだそれ。
有田さん:新しい仮想化技術のことです。
社長:なんでDockerなら山田がラクになるんだ?
有田さん:システム環境の管理がラクになるんですよね。Dockerはシステム全体を世代管理できるんです。
社長:いまだって世代管理してるだろ?
有田さん:プログラムソースはしてますけど、システムはできないんですよ。
社長:さっぱりわからん。
有田さん:例えば、今日新しい機能をサービスに追加したんですよ。テスト環境で正常に動いていたんですけど、いざ本番環境にリリースしたら動かなかったんです。
社長:聞いたよ。ユーザーからクレームが続出したらしいじゃないか。なんで本番環境だけ動かなかったんだ?
有田さん:テスト環境と本番環境は用途が違うから、環境の状態も違うんですよ。こういうことはけっこうあるんです。
社長:でもとりあえずプログラムソースを前のバージョンに戻せばいいじゃないか。
有田さん:そうなんですけど、ソースだけじゃなくて、サーバーやデータベースの設定もいろいろいじったりしてると、それも全部戻さないといけないんです。なにしろ1日に何回もデプロイしてますから、どの設定を戻さなくちゃいけないのか、戻して影響ないか。調べるだけでも大変なんです。
社長:なるほど、Dockerだったら、システム全体が世代管理されているから、環境をまるっとリリース前の状態に戻せるということか。すぐに戻せるならユーザーへの影響も少なくて済む。山田もゆっくりトイレに行けるな。
有田さん:そうなんですよ。まったく同じ環境をポコポコ作れるのもDockerのいいところで、本番環境と同じ状態で検証したいときとかにも便利です。開発生産性も上がると思いますよ。
社長:それはいいね~。よし、今後のためにも検討を始めようじゃないか。
三段目 小学生向け
みんなの身の回りには、モノがいっぱいあるけど、今、モノがデジタルに変わって、形がどんどんなくなっているのを知っているかい?
たとえば、紙の本。今、町の本屋さんが少しずつなくなっているのは、紙の本がデジタルに変わっているからなんだ。紙は重いからはこぶのが大変だよね。でも本のなかみがデジタルになって、タブレットで読むことができれば、たくさんの本をどこへでも持っていける。
もしかしたらみんながまいにち学校にもっていく教科書もデジタルになるかもしれないね。
紙の本だけじゃなく、いろいろなものがデジタルになっているんだ。みんなの家にパソコンはあるかい?パソコンの箱もデジタルに変わっているんだ。今ではパソコンが1台しかなくても、デジタルのパソコンをたくさんつくることができるんだよ。
Dockerはこのデジタルのマシンを作るツールなんだ。会社では、たくさんのWebサイトを持っているけど、サイトを作るたびにマシンを用意するとお金がかかるし、マシンを置くスペースもたくさんひつようだ。1つのマシンでたくさんのサイトを動かすことができれば、会社もお金やスペースをせつやくできるよね。
しかもDockerのスゴイところは、デジタルのマシンをかんたんにコピーして、違うパソコンで動かせるところだ。今までパソコンの中にあるデジタルのマシンをそっくり違うパソコンに移すのは、けっこう時間のかかることだったんだよ。
モノがデジタルに変わることで、どんどん世の中がべんりになっていくんだね。
【執筆:編集Gp 山際 貴子】