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
6年かけてこうなった!我々の開発環境の変遷と現在 / phpconokinawa2019
Search
blue_goheimochi
October 12, 2019
Technology
1
1.1k
6年かけてこうなった!我々の開発環境の変遷と現在 / phpconokinawa2019
PHPカンファレンス沖縄2019の登壇資料です。
https://phpcon.okinawa.jp/
blue_goheimochi
October 12, 2019
Tweet
Share
More Decks by blue_goheimochi
See All by blue_goheimochi
コミュニケーションを「パス」のやりとりと捉え大切にしていること / dai-kichijojipm-2024
blue_goheimochi
2
2.7k
「手動オペレーションに定評がある」と言われた私が心がけていること / phpcon_odawara2024
blue_goheimochi
4
1.4k
芝生の障害対応・メンテナンスについて語る / ya8-2024
blue_goheimochi
1
52
「わたしたちのコード」を安定させるためにフレームワークとの距離を保つ / phperkaigi2024
blue_goheimochi
5
1.9k
コードを計測することで捉える問題点 / phpcondo2024
blue_goheimochi
5
1.1k
Laravelのコードとわたしたちのコードとの距離を保つ / phpcon2023
blue_goheimochi
1
2k
リンケージにおけるアプリケーションコードとの付き合い方とそれを支えるコミュニケーション / drobe_pixiv_linkage-20230905
blue_goheimochi
1
540
推測しないで、計測し、判断する! 〜カイゼンのためのステップ考察〜 / phpconfuk2023
blue_goheimochi
4
2.2k
iOS, iPadOSにもWeb Pushがきたのでさわってみた
blue_goheimochi
1
490
Other Decks in Technology
See All in Technology
AWS環境におけるランサムウェア攻撃対策の設計
nrinetcom
PRO
0
170
5分でわかるDuckDB
chanyou0311
10
3.3k
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
300
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
150
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
210
生成AIのガバナンスの全体像と現実解
fnifni
1
210
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
27
23k
UI State設計とテスト方針
rmakiyama
3
790
2024年にチャレンジしたことを振り返るぞ
mitchan
0
150
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
320
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.4k
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
120
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
The Invisible Side of Design
smashingmag
298
50k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Become a Pro
speakerdeck
PRO
26
5k
Six Lessons from altMBA
skipperchong
27
3.5k
Automating Front-end Workflow
addyosmani
1366
200k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
GraphQLとの向き合い方2022年版
quramy
44
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Transcript
#phpconokinawa #track_b 6年かけてこうなった︕ 我々の開発環境の変遷と現在 PHPカンファレンス沖縄2019 2019.10.12 株式会社オウケイウェイヴ ⼤橋 佑太
2 blue_goheimochi ⼤橋 佑太 株式会社オウケイウェイヴ PHP(Laravel),Javascript(Vue.js/Nuxt.js), Laravel JP Conference 2020,
PHPerKaigi 2020 … おおはし ゆうた 2013年5⽉〜
3 オウケイウェイヴの事業 ミッション︓ 互い助け合いの 場の創造を通して、 物⼼両⾯の幸福を実現し、 世界の発展に寄与する 多⾔語コールセンター 運営および インバウンドサービス
エンタープライズ ソリューション事業部 コンシューマー ソリューション事業部 多⾔語CRM事業 (株式会社BRICKS) 法⼈向け ソリューションの 製造/販売 Q&Aサイト 「OKWAVE」の 運営および広告事業
4 Q&Aサイト「OKWAVE」
5 Q&Aサイト「OKWAVE」 質問者と回答者がやりとりして疑問を解決
6 Q&Aサイト「OKWAVE」 PCサイト SPサイト ガラケーサイト OEMサイト1 OEMサイト2 アプリ(iPhone) アプリ(Android) 内部API
データベース 管理画⾯⽤ 内部API 新バッチ バッチ 旧バッチ 管理画⾯ PCサイト SPサイト ガラケーサイト WebAPI Cache Cache ※2013年当時
7 Q&Aサイト「OKWAVE」 PCサイト SPサイト ガラケーサイト OEMサイト1 OEMサイト2 アプリ(iPhone) アプリ(Android) 内部API
データベース 管理画⾯⽤ 内部API 新バッチ バッチ 旧バッチ 管理画⾯ PCサイト SPサイト ガラケーサイト WebAPI Cache Cache 本体サイト OEMサイト アプリ等 WebAPI 内部API 管理画⾯ バッチ ※2013年当時
8 Q&Aサイト「OKWAVE」 PCサイト SPサイト ガラケーサイト OEMサイト1 OEMサイト2 アプリ(iPhone) アプリ(Android) 内部API
データベース 管理画⾯⽤ 内部API 管理画⾯ PCサイト SPサイト ガラケーサイト WebAPI Cache Cache 新バッチ バッチ 旧バッチ ※2013年当時
9 というような環境における開発環境の 変遷についてお話ししていきます 開発環境構築ツールの良し悪し話はしません
10 ︖ ︖ 我々の開発環境の変遷 ⼤きく分けると4つの時代に分かれる 2013 2019 2016 2014 2015
2017 2018 ︖ ︖
11 XAMPP期
12 XAMPP期 当時の状況 • 私⾃⾝は2013年5⽉に⼊社 • 「OKWAVE」は2000年1⽉から正式運⽤開始 • 2005年に「OKWeb」から改名 •
13年超の歴史あるサービスにJOIN • 開発機はWindows
13 Double XAMPP
14 XAMPP期 当時の状況 • 私⾃⾝は2013年5⽉に⼊社 • 「OKWAVE」は2000年1⽉から正式運⽤開始 • 2005年に「OKWeb」から改名 •
13年超の歴史あるサービスにJOIN • 開発機はWindows • Dobule XAMPP・・・︖ • プロダクトのPHPのバージョンが2系統(お察しください) • ということで2つのバージョンのXAMPPが共存して存在
15 XAMPP期 当時まだスレてなかったわたし なるほど︕OKWAVEはこのような 開発環境なんですね︕ がんばります︕タスクください︕
16 XAMPP期 問題点 • XAMPPを切り替える場合、⽚⽅を停⽌し、Apacheなどの設定ファイルも⼿ 動で切り替えたり編集する必要があった • 5系のアプリケーションはマイナーバージョン関係なく5系のXAMPPで • XAMPP⾃体のインストールがつらい
• バージョン固定なので、社内のファイルサーバのXAMPPのzipを利⽤ • 環境構築だけで1⽇以上かかる • バッチのローカル開発環境は存在しなかった • などなど。。。
17 我々の開発環境の変遷 XAMPP期から・・・ ︖ 2013 2019 2016 2014 2015 2017
2018
18 Vagrant期 (with VirtualBox)
19 Vagrant期 当時の状況 • Double XAMPPの環境が⾟いことに気付きだす • 環境構築が⼿動もつらい・・・ • 当時Infrastructure
as Codeがだいぶ流⾏ってきていた • ローカル環境構築をまず⾃動化したいお気持ちがムクムク • 少なからずPHPのバージョンアップをしているのでローカルに必要な環境も 増える • Vagrant + VirtualBoxの環境を構築︕
20 Vagrant期 なにが良くなった︖︖ • 環境構築の⾃動化が進んだ︕ • Vagrant + VirtualBox +
Chef • Boxファイルを配布することで、初回の環境構築の簡略化 • かなり初期の環境構築が楽になった • 複数環境の同時起動ができるようになった • 別々の仮想環境を⽴ち上げるかたち • 1つの仮想環境の中に詰め込めば︖という話はあるのですが・・・
21 Multi Vagrant
22 Vagrant期 問題点 ローカルマシン 管理画⾯⽤ 内部API⽤ PCサイト⽤
23 Vagrant期 問題点 • 複数環境⽴ち上げた場合のPCのリソース消費がつらい・・・ • 基本的にそれぞれのプロダクトやアプリケーションの担当者が仮想環境 を構築していた • 複数のBoxファイル、Boxファイル化してないアプリケーションも
• OSやパッケージのアップデートなどでプロビジョニングのタイ ミングでエラーになってしまったり • Chef vs Ansibleなど構築ツールも実は様々・・・ • ということで1つの仮想環境にまとめられていなかった
24 Vagrant期 問題点 • 仮想環境の起動が遅い • vagrant up したあとまぁまぁ時間がかかる(環境が複数ありますし) •
⾃動化しきれていない部分がまだまだあった • XAMPPの環境は捨てきれていない・・・・・・・・ • チーム全体で動けていたわけではなかった • 全社で利⽤していたウイルス対策ソフトの相性問題 • 最新のVirtualBoxが利⽤できなかった • などなど。。。
25 我々の開発環境の変遷 Vagrant期から・・・ ︖ 2013 2019 2016 2014 2015 2017
2018
26 第1次 Docker期 (Docker in VirtualBox)
27 第1次 Docker期 当時の状況 • ちゃんとチームで開発環境問題を解決しよう︕という流れになってきた • それでも最初は数⼈の有志メンバーで喧々諤々 • 使うツールも(なるべく)揃えよう︕
• Dockerがよいのでは︖ • この辺は⼿段が⽬的化していたかもしれない。やりたかった。 • VirtualBoxの中にDocker環境を構築︕ • Packerを利⽤して、既存の資産(ChefやAnsible)を⽣かしながらDockerイ メージを作成
28 第1次 Docker期 なにが良くなった︖︖ Private Docker Registry ローカルマシン(Win7)
29 第1次 Docker期 なにが良くなった︖︖ • Dockerを使うことで開発環境が1つでOKになった • Vagrantでたてた仮想環境上にDockerをインストール • docker-compose
up -d するだけで環境構築が完了するようになった • コンテナ数は多いですが、⼀気にコンテナを起動し、依存のあるサービ スが⼀度に⽴ち上がる • 残っていた古いPHPのXAMPPの環境もコンテナイメージ化 • Dockerが使えてウキウキ︕ • (全てのコンテナをそろえるのに半年くらいはかかってしまった)
30 だいぶ整ったのでは︖
31 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント
• Dockerの環境を使ってくれていないチームメンバーが・・・ • 半年後に発覚。たしかに、環境構築をし直すのが⾯倒なのは分かる・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。
32 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント
• Dockerの環境を使ってくれていないチームメンバーが・・・ • 半年後に発覚。たしかに、環境構築をし直すのが⾯倒なのは分かる・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。
33 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント
• Dockerの環境を使ってくれていないチームメンバーが・・・ • たしかに、環境構築をし直すのが⾯倒なのは分かる・・・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。 https://speakerdeck.com/blue_goheimochi/phpconsen2019
34 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント
• Dockerの環境を使ってくれていないチームメンバーが・・・ • たしかに、環境構築をし直すのが⾯倒なのは分かる・・・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。 https://speakerdeck.com/blue_goheimochi/phpconsen2019 フルリプレイスがほぼほぼ完了しています︕ (どこかで報告できたらいいな)
35 ︖ 我々の開発環境の変遷 第1次 Docker期から・・・ 2013 2019 2016 2014 2015
2017 2018
36 第2次 Docker期
37 第2次 Docker期 当時の状況 • Windows・・・つらくない︖ • (≒Docker in VirtualBox・・・つらくない︖)
• みんな・・・たのむ・・・開発環境移⾏してくれ・・・・ • よし、みんな、開発環境をMacに移⾏だ︕ • 端末の交換時期とも重なり、メンバー全員のローカルマシンが Mac Book Proにリプレイス
38 第2次 Docker期 なにが良くなった︖︖ Private Docker Registry ローカルマシン(MacBook Pro) Docker
for Mac
39 第2次 Docker期 なにが良くなった︖︖ • メンバー全員がMacになりDocker for Macが利⽤可能に • 体感的にはとても速くなった(遅いという話も聞きますが・・)
• リモートワーク推奨などの流れもあり、徐々に変えていっている過程 • 強制的に全員が環境構築を再度できた • 少しずつメンバーがコンテナを作ったり修正してくれるような感じに︕ • この辺は本当に継続は⼒なりだなぁ・・と • でもまだまだ全員に触ってもらえているわけではない • この辺りは技術的な課題というよりもチームビルディングに課題感が
40 我々の開発環境の変遷 第2次 Docker期・・・完・・・ 2013 2019 2016 2014 2015 2017
2018
41 我々の開発環境の変遷 • XAMPP期 • Vagrant期 • 第1次 Docker期 •
第2次 Docker期
42 我々の開発環境の変遷 • XAMPP期 • Vagrant期 • 第1次 Docker期 •
第2次 Docker期 • 第3次 Docker期︖︖︖
43 第3次 Docker期︖︖︖ 現在の状況 • よりチームメンバーにコンテナを触ってもらいたい︕ • 徐々に機会を増やすようにする • Packer経由でAnsibleなどで構築しているコンテナをDockerfileベース
に直していくというようなことを進めています • それ以外にあまり問題点は感じていない • たださらなるステップアップとしてできそうなことはある • 本番環境でのコンテナ運⽤︕ • これができれば本番環境とローカル環境とほぼほぼ同じにできる
44 まさに、現在 チャレンジ中です
45 第3次 Docker期︖︖︖ チャレンジ • クラウド化の実現 • アプリケーションの刷新 • フロントエンド︓
Nuxt.js • バックエンド︓Laravel • 本番環境でのコンテナ運⽤ • インフラチーム(SREチームを新設)とのさらなる連携 • の第1弾を 2019年9⽉にリリース しました︕ • 継続してよりよい環境になるよう頑張っています︕
46 我々の開発環境の変遷 • XAMPP期 • Vagrant期 • 第1次 Docker期 •
第2次 Docker期 • 第3次 Docker期 ← Now
47 最後に ⼀番伝えたかったこと
48 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now ここまでくるのにほぼ6年半
49 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now 速いと思いますか︖ 遅いと思いますか︖
50 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now https://www.slideshare.net/ohashiyuta/5docker 個⼈的にDockerを触り始めたのは2014年
51 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now 実践したいができずに ⻭がゆい気持ちはあった
52 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now あそこの会社ではやってるのに・・・
53 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now ただ振り返ってみるとこう思います
54 「変化」を起こすためには 「時間」は必要
55 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now チームの体制や状況に⼤きく関係するが そのチームでできる最速が「最速」である
56 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014
2015 2017 2018 Now 常に情報をキャッチアップし準備し 然るべきタイミングで⼒を注ぎ込む
57 この約6年半の チームの取り組みを 我々は誇りに思っています
58 We are hiring !
59 Tech Stack
60 ΦέΠΣΠϰͷ੍ ݄༵ޕલӦۀٳ 「オウケイウェイヴ ブルーマンデー 対策」 https://otekomachi.yomiuri.co.jp/news/20181217-OKT8T119021/
61 ΦέΠΣΠϰͷ੍ #BSεϖʔε 世界のビールが飲み放題(ソフトドリンクもあるよ)
62 ご清聴ありがとうございました