Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニア勉強会#1 at 新橋2017-6-2 Fri@nabedge
View Slide
Who ?2● わたなべ● (株)ビズリーチ● twitter: @nabedge● github: nabedge● http://www.slideshare.net/nabedge/presentations
Webサービスのコードをどこでどうやって書くのか?レベル0〜レベル43
レベル04本番サーバコード※データセンター建物内にて
レベル15● エディタ● SCPクライアント本番サーバコード
レベル26● エディタ● ローカルなサーバ○ XAMP, MAMP, etc● SCPクライアント本番サーバコード
レベル37● エディタ● ローカルなサーバ○ XAMP, MAMP, etc● SCPクライアント本番サーバコード検証サーバコード
レベル48本番サーバ コード 検証サーバ コードCI VCSMySQL,Redis,...MySQL,Redis,...
ローカル開発環境で何ができるべきなのか● コードをサクサク書ける● 書いたコードが動くことを自分のPCで確認できる○ ↑コードが動くためのバックエンドサーバが必要9ここが面倒
10● エディタ(補完機能つき)● ビルドツール連携○ gradle, mvn, npm...● VCS連携● ミドルウェア群○ MySQL, PostgreSQL○ Memcached○ fakes3...?
長大な「ローカル開発環境構築手順書」1. PostgreSQLのインストーラをダウンロードしてダブルクリック2. Redisを...3. C;¥Windows¥system32¥drivers¥etc¥hostsファイルを編集...4. …以下すんごく長い11
半年も経つと● 手順書が長すぎてうっかり抜け漏れ● 「memcached ? それもうRedisに変えたんだけど、手順書直すの忘れてましたテヘヘ」● 他チームから助っ人として来たら、他のWebサービスの開発環境とバッティングしてうまくインストールできない12
NOT 手順書 & PCに直接インストールBUT 仮想OS & 自動化スクリプト13
ポイント1. ローカル開発環境で必要なミドルウェア群を仮想OS上に構築する2. それを実現するためのOracleVitrutalBox or VMWare,Vagrant , Docker14
15MacOS / WindowsOracleVBox / VMWareCoreOS / UbuntuDocker(MySQL)Docker(Redis)CoreOS / UbuntuDocker(PgSQL)Docker(fakes3)AサービスのコードBサービスのコード
16MacOS / WindowsOracleVBox / VMWareCoreOS / UbuntuDocker(MySQL)Docker(Redis)CoreOS / UbuntuDocker(PgSQL)Docker(fakes3)AサービスのコードBサービスのコード$ vagrant up$ vagrant ssh -c \"sh /vagrant/docker/docker-compose-up.sh"2コマンドで構築完了
複数の仮想OSテクノロジーをなぜ併用する?● ホスト型仮想OS環境 = Oracle VBox● コンテナ型仮想OS環境 = Docker17
18Docker OracleVBox +Vagrant起動速度、プロビジョニング速度軽い 重い複数の開発環境の共存によるバッティングポート番号かぶり問題仮想OSのIPアドレスをずらせば解決
ローカル開発環境4原則1. 自動化2. アプリの変化に合わせて誰でも環境を変更して配布可能3. 他のサービスの開発環境と干渉しない4. 金の弾丸19
原則1 サルでもやれるくらいの自動化● git clone foo-pj● cd foo-pj/local-env● vagrant up● vagrant ssh -c \“cd /vagrant/docker; docker-compose up”20
原則2 誰でも環境を変更して配布可能● vi Vagrantfile● vi Dockerfile● vi docker-compose.yml● git commit, push21
原則3: 他の開発環境と干渉しない22OracleVBox / VMWareCoreOS / UbuntuDocker(MySQL)Docker(Redis)CoreOS / UbuntuDocker(PgSQL)Docker(fakes3)AサービスのコードBサービスのコード192.168.1.1 192.168.2.2
原則4 金の弾丸23Mac Book Pro3GHz Core i716GB memory250GB SSDJet BrainsAll Products Pack※2015年春時点スペック
スタートダッシュをキメたいエンジニア募集!https://www.bizreach.co.jp/recruit/24