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
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Yu Watanabe
July 04, 2017
More Decks by Yu Watanabe
See All by Yu Watanabe
JUnitテストをCI環境で並列で実行する方法とその速度, スケーラビリティ
nabedge
6
2.9k
クラウド時代だからSpring-Retryフレームワーク
nabedge
0
320
ツール比較しながら語るO/RマッパーとDBマイグレーション
nabedge
0
170
JavaでWebサービスを作り続けるための戦略と戦術
nabedge
0
110
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
nabedge
0
83
Selenium再入門
nabedge
0
72
テストゼロからイチに進むための戦略と戦術
nabedge
0
100
jOOQってなんて読むの?から始めるSpringBootとO/Rマッパーの世界
nabedge
0
150
あなたのプロジェクトが気軽にJavaをバージョンアップするために必要なこと
nabedge
0
69
Other Decks in Technology
See All in Technology
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
310
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.1k
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
180
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
0
110
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
210
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
230
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
270
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
1
240
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
180
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
180
生成AIの活用/high_school2026
okana2ki
0
130
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
380
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
410
Raft: Consensus for Rubyists
vanstee
141
7.6k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
230
The Language of Interfaces
destraynor
162
27k
Designing for Performance
lara
611
70k
A Soul's Torment
seathinner
6
3.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
260
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
340
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
WENDY [Excerpt]
tessaabrams
11
38k
The Invisible Side of Design
smashingmag
301
52k
ラッコキーワード サービス紹介資料
rakko
1
3.9M
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