kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

開発環境を試してきたことと、現在の開発環境[vagrant]

開発環境って色々な作り方ができるけど、ローカル環境でできるのが一番いいと思っている。

個人的にローカル環境でやっていることと、それまでの経緯を書いてみたいです。

基本的にはCentOS,PHP,Postgres or MySQLです。

まずは現在の環境からで、その後にそれまでの経緯などを書いてみます。

vagrant + VirtualBox

vagrantCentOSの仮想環境を立ち上げて、開発しています。

実はそのままvagrantを立ち上げて、共有フォルダに開発ソースをローカル環境に配置して動作させるやり方をやっていたのですが、異常に遅くてやめようかと思ってた時期があります。

たぶん共有フォルダっていうだけで、変更やアクセスがあるたびにコピーをしているんじゃないかと思っています。

今ではvagrantで作った環境に、sambaをインストールしてWindowsのローカルはネットワーク環境で参照するようにしています。

動作的には満足していますが、欠点がいくつかあるため早めに改善したいと思っています。

欠点としてはソース自体をvagrantの仮想環境にすべて持つ構成のため、vagrantの仮想環境が壊れるとソースごと参照できなくなるため、いつも不安な状態です。

あとはエディタによってネットワーク上のソースにアクセスが弱いのか、異常に遅くなるときがあるためエディタの選定に苦労しました。SublimeText自体は問題なかったので良かったです。

本当はローカル環境にソースを持った状態で、Linux環境で動作する開発環境を構築したいです。

なにがいいんだろうなぁ。

というわけで過去の状況も書いてみようかと。

人がつくったサーバー[ 過去1 ]

社内サーバーで、DBもWEBサーバーも構築してもらっていました。

WEBサーバーのソースをアップして試していたため、自分のソースでエラーで全員に影響が出たりして大変でした。

このころはWEBサーバーの仕組みもDBの仕組みもよくわかっていなかったので、ソースもこの場所にアップすれば動作するぐらいで自分ができる気になっていたころですね。

ただ色々試したいことも社内の許可をとったりと大変だったので、ローカルでの構築を教えてもらったときは衝撃だったかもです。

ソース管理はSVNで、いろいろなバージョン作るのも今思えば大変でした。ソースレビューとかも、個人のPCの前でやる感じで時間取ってたなぁー。

XAMPP [ 過去2 ]

次はXAMPPを教わりました。これでローカル環境でのソースで動作確認できるようになって若干楽になりましたね。

メンバーであわせるのが、結構めんどくさかったです。

インストールすれば動作するし、MySQLだったためそのまま使えましたね。この頃にphp.ini を色々操作することを覚えて、環境構築の仕方を覚えた時期です。

ローカル環境ばかりやっていたため実環境での設定でのエラーがまだわからない時期ではありました。

CentOSでの実践をもっとやったほうがいい。と実感はしていましたが、どうもLinuxの構築に手を出すまでできていなかった時期でした。

自分でサーバー構築 [ 過去3 ]

次にCentOSでのサーバー構築を自分でやってみて、実環境の設定を覚えていきました。

この頃はPHPというよりはCentOSのIP設定とかセキュリティとかミドルウェアの導入など一般的な操作をかなり勉強した時期ですね。

PHP自体はローカル環境でやっていたものが役に立ったためあまり苦労はしなかったですね。

ソースは変更したらそのままアップするようにしていたり、そこまで人が多い環境でやっていなかったので、デグレなどがあまりなく、あまり不満はなかったかな。

若干成長が止まった時期ですね。

あとは、サーバー構築ってちゃんとできる人が周りに少なかったから、評価になったのかもとか思います。

まぁ、そのあとにvmとかvirtualboxとか仮想環境が充実してきたからvagrantでの構築に落ち着いています。

ただ最近はもっと自動化ができている人や環境が優秀だと実感していますので、これからの課題かな。

次にやろうとしている環境

まずansibleで自動的な環境構築を目指す。

あとはDockerを実践してみる。起動自体が異常に早かったから、いまの環境よりいい気がしている。

ただコンテナの仕組みの理解と、開発環境につかえるのか不安です。データ保持ができないってあるからデータベースとか相性がわるそうなイメージです。

色々と調べてるけど、これといったベスト開発環境ってない印象ですね。

あったらぜひ教えてください。