
こんにちは、開発5部のYASUHIROです。
ベテランのエンジニアなら、様々な開発経験があるのである程度の説明でイメージすることができます。しかし、新入社員、経験の浅いエンジニアに、Dockerとか、コンテナとか、仮想環境とかをいきなり理解しろ。というのは難しいですよね。
とうことで、経験の浅いエンジニアに仮想環境についての理解を少しでも高めてもらいたいと思いコラムを書かせていただきました。
仮想環境とは
そもそも仮想環境とは、パソコンの中にOSごと仮想的なパソコンをもう一台作ってしまうイメージです。以下は、Windowsマシンの中に仮想化ソフト(Virual Box、VMwareなど)を準備し、Linux、Windowsの仮想環境を作成したイメージです。

仮想環境を使った開発(Vagrant)
- Vagrantは、VirtualBoxのような仮想化ソフトが作った仮想マシンを操作、管理できるツールです。
- Vagrantを使うことで、同じ環境を何度でも作成できます。
- 開発チーム全員が、同じ環境で開発することができます。

Vagrantを使用した開発環境のイメージです。黄色い点線が1つの開発環境となります。このイメージだと、異なるOSの開発環境が3つあることになります。
アプリケーション、ミドルウェア、OSの説明はこちら

仮想環境を使った開発(Docker)
- Dockerとは、「コンテナ型の仮想環境」を「作成、配布、実行」するためのプラットフォームです。
- 「仮想化されたコンテナ」の上で、さまざまなミドルウェアを実行させることができます。
- 開発チーム全員が、同じ環境で開発することができます。

Dockerを使用した開発環境のイメージです。黄色い点線が1つの開発環境であり、「コンテナ」と呼ばれています。ミドルウェア単位で仮想化しますので、Vagrantと比べると軽量です。
VagrantとDockerの比較表

本コラムを読んで、少しでも仮想環境を使った開発のイメージを掴んでいただくと幸いです!
クロノスでポジティブな社員と「まじめに、たのしく、おもしろく」働きませんか?新しい仲間を大募集中です!