Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Search
Yu Watanabe
July 04, 2017
Technology
0
79
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Yu Watanabe
July 04, 2017
Tweet
Share
More Decks by Yu Watanabe
See All by Yu Watanabe
JUnitテストをCI環境で並列で実行する方法とその速度, スケーラビリティ
nabedge
5
2.8k
クラウド時代だからSpring-Retryフレームワーク
nabedge
0
300
ツール比較しながら語るO/RマッパーとDBマイグレーション
nabedge
0
160
JavaでWebサービスを作り続けるための戦略と戦術
nabedge
0
89
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
nabedge
0
74
Selenium再入門
nabedge
0
64
テストゼロからイチに進むための戦略と戦術
nabedge
0
91
jOOQってなんて読むの?から始めるSpringBootとO/Rマッパーの世界
nabedge
0
140
あなたのプロジェクトが気軽にJavaをバージョンアップするために必要なこと
nabedge
0
61
Other Decks in Technology
See All in Technology
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.8k
TypeScript 7.0の現在地と備え方
uhyo
7
2k
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
340
Phase07_実務適用
overflowinc
0
1.6k
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
420
生成AIで速度と品質を両立する、QAエンジニア・開発者連携のAI協調型テストプロセス
shota_kusaba
0
470
visionOS 開発向けの MCP / Skills をつくり続けることで XR の探究と学習を最大化
karad
1
1.2k
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
160
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
150
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
5
2.2k
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
150
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
110
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Ruling the World: When Life Gets Gamed
codingconduct
0
180
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
480
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
160
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
160
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
210
HDC tutorial
michielstock
1
580
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
150
Context Engineering - Making Every Token Count
addyosmani
9
770
Transcript
Webエンジニアが スタートダッシュをキメるための ローカル開発環境の勘所 Webエンジニア勉強会#1 at 新橋 2017-6-2 Fri @nabedge
Who ? 2 • わたなべ • (株)ビズリーチ • twitter: @nabedge
• github: nabedge • http://www.slideshare.net/nabedg e/presentations
Webサービスのコードを どこで どうやって 書くのか? レベル0〜レベル4 3
レベル0 4 本番サーバ コード ※データセンター建物内にて
レベル1 5 • エディタ • SCPクライアント 本番サーバ コード
レベル2 6 • エディタ • ローカルなサーバ ◦ XAMP, MAMP, etc
• SCPクライアント 本番サーバ コード
レベル3 7 • エディタ • ローカルなサーバ ◦ XAMP, MAMP, etc
• SCPクライアント 本番サーバ コード 検証サーバ コード
レベル4 8 本番サーバ コード 検証サーバ コード CI VCS MySQL, 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
, Docker 14
15 MacOS / Windows OracleVBox / VMWare CoreOS / Ubuntu
Docker (MySQL) Docker (Redis) CoreOS / Ubuntu Docker (PgSQL) Docker (fakes3) Aサービスの コード Bサービスの コード
16 MacOS / Windows OracleVBox / VMWare CoreOS / Ubuntu
Docker (MySQL) Docker (Redis) CoreOS / Ubuntu Docker (PgSQL) Docker (fakes3) Aサービスの コード Bサービスの コード $ vagrant up $ vagrant ssh -c \ "sh /vagrant/docker/docker-compose-up.sh" 2コマンドで構築完了
複数の仮想OSテクノロジーをなぜ併用する? • ホスト型仮想OS環境 = Oracle VBox • コンテナ型仮想OS環境 = Docker
17
18 Docker 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, push 21
原則3: 他の開発環境と干渉しない 22 OracleVBox / VMWare CoreOS / Ubuntu Docker
(MySQL) Docker (Redis) CoreOS / Ubuntu Docker (PgSQL) Docker (fakes3) Aサービスの コード Bサービスの コード 192.168.1.1 192.168.2.2
原則4 金の弾丸 23 Mac Book Pro 3GHz Core i7 16GB
memory 250GB SSD Jet Brains All Products Pack ※2015年春時点スペック
スタートダッシュをキメたいエンジニア募集! https://www.bizreach.co.jp/recruit/ 24