どうも、こんにちは。
僕は、現在ITエンジニアであり、プログラミングを本業としています。
プログラミングを行う前に、必ず、プログラミングを行うための「開発環境を構築する」という作業をしなければなりません。
皆さんは、開発環境の構築について、大変な思いをしたことはありませんか?
エンジニアをやっているものであれば、誰しもがあるのではないでしょうか?
もちろん僕もあります😅
そこで今日は、環境構築を行う上での僕が思う大事な心構えのお話をしていきたいと思います。
これから勉強されるという方の一助になればと思います!
Vagrant・Virtual Boxを用いた仮想環境
今回のお話は、仮想環境を題材に取り上げます。
そして、Vagrant・Virtual Boxというソフトウェアを例に挙げて、仮想環境のお話をしていきたいと思います。
Vagrant・Virtual Boxは、最新の技術というわけではないのですが、業務で使用されることも非常に多いので、学習段階から触れておくと役に立つと思います。
なぜ、開発環境の構築は大変なのか…
仕事で現場が変わったり、プライベートでは買い替えたり等をして、パソコンが新しくなると、プログラミング環境を再構築しなければなりません。
僕が、その時にいつも思っていることは、
また、1日近くかかる作業か…
長い戦いになるなぁ…
「すんなりいってくれればいいけど、どうせまたどこかでつまずいたり、苦労するんだろうな」と思っていました😅
では、そもそもなぜ開発環境の構築にいつも苦労して、大変なのか、そこを考えてみました。
普段から繰り返し行うものではないので、なかなか身に付いたという感覚が持てない
環境構築は、一度パソコンに行ってしまうと、同じパソコンに環境を構築し直すということは、なかなかありません。
何かを勉強する時は、繰り返し行うことで、身に付いていくものだと思いますが、環境構築はそもそも繰り返し行うものではないんですよね…
たまにしかやらない → 身に付かない → いざ、また環境構築を行う場面では身に付いていないから、時間がかかる → また、たまにしかやらなくなる
というように、僕は負のスパイラルになっているように感じます😅
手順書どおりに、設定しているだけで、その設定の意味を理解できていない
エンジニアなりたての時の僕は、まさにそうでした。
ただ読んで設定しているだけなので、何をやっているのかよくわからないで終わっていました。
手順書どおりに設定していたら、プログラミングができる環境が構築されていたという感じでした。
僕は、プログラミングを本業とするエンジニアなので、サーバー周りの細かい知識まではいらないものの、やはり、自分のパソコンにしっかりと環境構築できる知識までは必要だと思います。
実際に業務でも、そこまでの知識は求められます。
開発環境を構築する上で、大切なことは?
そこで、上記の苦労する原因をふまえて、次は、学習段階でぜひ意識したいことを考えていきましょう。
まずは、全体像をつかむことが大切です。
全体像をつかむことで、何をする必要があるのかを理解することができます。
例えば、macのPCに、Vagrant・Virtual Boxを用いた環境構築の大まかな全体像は、次のとおりになります。
自分のPC側を「ホスト」、Virtual Box側を「ゲスト」と呼びます。
Vagrant | Virtual Boxを起動や停止させたり、操作することができます。 |
Virtual Box | 仮想環境になります。 プログラムの実行環境は、仮想環境に構築することになります。 仮想環境内に、OSや各種サーバーを構築します。 実際のPCは、自分のPC1台しかないけれど、自分のPC内に仮想的にPCを1台作り上げることになるんですね。 |
共有フォルダ | ホストにあるフォルダと、ゲストにあるフォルダに共有設定をすると、 例えば、ホスト側の共有フォルダ内で作成したファイルは、そのままゲスト側に共有されます。 このフォルダ内でアプリケーションのプログラムを作成することになります。 共有フォルダを活用することで、プログラムの実行環境は仮想環境内にあるが、プログラムの作成自体は、自分のPCでできることになります。 |
このように全体像をつかむことができれば、
- まずは、Vagrant・Virtual Boxを自分のPCにインストールする必要がある。
- 次に、仮想環境内にOSやサーバーを構築する必要がある。
- 共有フォルダの設定
のように必要な作業が見えてきます。
そうなると、今なんの設定をしているのかがわかってきますよね。
そもそも仮想環境を使用するメリットは?
今回のお話の中心は、これまでで終わりなのですが、ここでは「そもそもなぜ仮想環境を使用するのか」について少し触れたいと思います。
わざわざ仮想環境を使用する必要ってあるのかな?
自分のPCの中に環境構築するのでは、ダメなの?
と、思われるかもしれませんが、もちろんそれでも何も問題ありません。
正直なところ、プログラミングの勉強をするための環境構築だと思いますので、プログラミングができればなんでもいいと思います😅
ましてや、個人学習の範囲であれば、より環境に気にする必要はないかなと思います。
ただ、せっかくですので仮想環境のメリットをお話しすると、
サーバーOSを構築することができる
自宅(個人)のPCは、Windows OSかMac OSを利用していることがほとんどだと思います。
しかし、僕たちが利用している世の中の様々なアプリケーションは、個人PCに入っているWindows OSやMac OSではなく、サーバー専用のOSで稼働しています。
そのサーバー専用のOSを、自分のPCの中に仮想環境を利用して、構築することができます。
仮想環境を利用することで、より実践的な開発を行うことができるというわけですね。
再構築が容易にできる
環境構築を行ったところ、どうもうまく動かないとか、プログラミングを進めていく上でいろいろな拡張機能を追加したところ、環境が壊れてしまったとか、想定外のことが発生することもあります。
そういった場合には、仮想環境自体を一度リセットし、再構築することで対応できます。
仮想環境を利用せず、自分のPCに構築していた場合、同じ方法で自分のPCをリセットするにはいきませんよね。
構築した開発環境だけでなく、パソコンに保存しているデータが全て消えてしまうことになります。
仮想環境を利用している場合では、何かおかしくなったなと思ったら、仮想環境を丸ごとリセットという方法をとることができるんですね。
つまり、再構築が容易というところがメリットとなります。
コメント
[…] […]