Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
#phpconokinawa #track_b 6年かけてこうなった︕ 我々の開発環境の変遷と現在 PHPカンファレンス沖縄2019 2019.10.12 株式会社オウケイウェイヴ ⼤橋 佑太
Slide 2
Slide 2 text
2 blue_goheimochi ⼤橋 佑太 株式会社オウケイウェイヴ PHP(Laravel),Javascript(Vue.js/Nuxt.js), Laravel JP Conference 2020, PHPerKaigi 2020 … おおはし ゆうた 2013年5⽉〜
Slide 3
Slide 3 text
3 オウケイウェイヴの事業 ミッション︓ 互い助け合いの 場の創造を通して、 物⼼両⾯の幸福を実現し、 世界の発展に寄与する 多⾔語コールセンター 運営および インバウンドサービス エンタープライズ ソリューション事業部 コンシューマー ソリューション事業部 多⾔語CRM事業 (株式会社BRICKS) 法⼈向け ソリューションの 製造/販売 Q&Aサイト 「OKWAVE」の 運営および広告事業
Slide 4
Slide 4 text
4 Q&Aサイト「OKWAVE」
Slide 5
Slide 5 text
5 Q&Aサイト「OKWAVE」 質問者と回答者がやりとりして疑問を解決
Slide 6
Slide 6 text
6 Q&Aサイト「OKWAVE」 PCサイト SPサイト ガラケーサイト OEMサイト1 OEMサイト2 アプリ(iPhone) アプリ(Android) 内部API データベース 管理画⾯⽤ 内部API 新バッチ バッチ 旧バッチ 管理画⾯ PCサイト SPサイト ガラケーサイト WebAPI Cache Cache ※2013年当時
Slide 7
Slide 7 text
7 Q&Aサイト「OKWAVE」 PCサイト SPサイト ガラケーサイト OEMサイト1 OEMサイト2 アプリ(iPhone) アプリ(Android) 内部API データベース 管理画⾯⽤ 内部API 新バッチ バッチ 旧バッチ 管理画⾯ PCサイト SPサイト ガラケーサイト WebAPI Cache Cache 本体サイト OEMサイト アプリ等 WebAPI 内部API 管理画⾯ バッチ ※2013年当時
Slide 8
Slide 8 text
8 Q&Aサイト「OKWAVE」 PCサイト SPサイト ガラケーサイト OEMサイト1 OEMサイト2 アプリ(iPhone) アプリ(Android) 内部API データベース 管理画⾯⽤ 内部API 管理画⾯ PCサイト SPサイト ガラケーサイト WebAPI Cache Cache 新バッチ バッチ 旧バッチ ※2013年当時
Slide 9
Slide 9 text
9 というような環境における開発環境の 変遷についてお話ししていきます 開発環境構築ツールの良し悪し話はしません
Slide 10
Slide 10 text
10 ︖ ︖ 我々の開発環境の変遷 ⼤きく分けると4つの時代に分かれる 2013 2019 2016 2014 2015 2017 2018 ︖ ︖
Slide 11
Slide 11 text
11 XAMPP期
Slide 12
Slide 12 text
12 XAMPP期 当時の状況 • 私⾃⾝は2013年5⽉に⼊社 • 「OKWAVE」は2000年1⽉から正式運⽤開始 • 2005年に「OKWeb」から改名 • 13年超の歴史あるサービスにJOIN • 開発機はWindows
Slide 13
Slide 13 text
13 Double XAMPP
Slide 14
Slide 14 text
14 XAMPP期 当時の状況 • 私⾃⾝は2013年5⽉に⼊社 • 「OKWAVE」は2000年1⽉から正式運⽤開始 • 2005年に「OKWeb」から改名 • 13年超の歴史あるサービスにJOIN • 開発機はWindows • Dobule XAMPP・・・︖ • プロダクトのPHPのバージョンが2系統(お察しください) • ということで2つのバージョンのXAMPPが共存して存在
Slide 15
Slide 15 text
15 XAMPP期 当時まだスレてなかったわたし なるほど︕OKWAVEはこのような 開発環境なんですね︕ がんばります︕タスクください︕
Slide 16
Slide 16 text
16 XAMPP期 問題点 • XAMPPを切り替える場合、⽚⽅を停⽌し、Apacheなどの設定ファイルも⼿ 動で切り替えたり編集する必要があった • 5系のアプリケーションはマイナーバージョン関係なく5系のXAMPPで • XAMPP⾃体のインストールがつらい • バージョン固定なので、社内のファイルサーバのXAMPPのzipを利⽤ • 環境構築だけで1⽇以上かかる • バッチのローカル開発環境は存在しなかった • などなど。。。
Slide 17
Slide 17 text
17 我々の開発環境の変遷 XAMPP期から・・・ ︖ 2013 2019 2016 2014 2015 2017 2018
Slide 18
Slide 18 text
18 Vagrant期 (with VirtualBox)
Slide 19
Slide 19 text
19 Vagrant期 当時の状況 • Double XAMPPの環境が⾟いことに気付きだす • 環境構築が⼿動もつらい・・・ • 当時Infrastructure as Codeがだいぶ流⾏ってきていた • ローカル環境構築をまず⾃動化したいお気持ちがムクムク • 少なからずPHPのバージョンアップをしているのでローカルに必要な環境も 増える • Vagrant + VirtualBoxの環境を構築︕
Slide 20
Slide 20 text
20 Vagrant期 なにが良くなった︖︖ • 環境構築の⾃動化が進んだ︕ • Vagrant + VirtualBox + Chef • Boxファイルを配布することで、初回の環境構築の簡略化 • かなり初期の環境構築が楽になった • 複数環境の同時起動ができるようになった • 別々の仮想環境を⽴ち上げるかたち • 1つの仮想環境の中に詰め込めば︖という話はあるのですが・・・
Slide 21
Slide 21 text
21 Multi Vagrant
Slide 22
Slide 22 text
22 Vagrant期 問題点 ローカルマシン 管理画⾯⽤ 内部API⽤ PCサイト⽤
Slide 23
Slide 23 text
23 Vagrant期 問題点 • 複数環境⽴ち上げた場合のPCのリソース消費がつらい・・・ • 基本的にそれぞれのプロダクトやアプリケーションの担当者が仮想環境 を構築していた • 複数のBoxファイル、Boxファイル化してないアプリケーションも • OSやパッケージのアップデートなどでプロビジョニングのタイ ミングでエラーになってしまったり • Chef vs Ansibleなど構築ツールも実は様々・・・ • ということで1つの仮想環境にまとめられていなかった
Slide 24
Slide 24 text
24 Vagrant期 問題点 • 仮想環境の起動が遅い • vagrant up したあとまぁまぁ時間がかかる(環境が複数ありますし) • ⾃動化しきれていない部分がまだまだあった • XAMPPの環境は捨てきれていない・・・・・・・・ • チーム全体で動けていたわけではなかった • 全社で利⽤していたウイルス対策ソフトの相性問題 • 最新のVirtualBoxが利⽤できなかった • などなど。。。
Slide 25
Slide 25 text
25 我々の開発環境の変遷 Vagrant期から・・・ ︖ 2013 2019 2016 2014 2015 2017 2018
Slide 26
Slide 26 text
26 第1次 Docker期 (Docker in VirtualBox)
Slide 27
Slide 27 text
27 第1次 Docker期 当時の状況 • ちゃんとチームで開発環境問題を解決しよう︕という流れになってきた • それでも最初は数⼈の有志メンバーで喧々諤々 • 使うツールも(なるべく)揃えよう︕ • Dockerがよいのでは︖ • この辺は⼿段が⽬的化していたかもしれない。やりたかった。 • VirtualBoxの中にDocker環境を構築︕ • Packerを利⽤して、既存の資産(ChefやAnsible)を⽣かしながらDockerイ メージを作成
Slide 28
Slide 28 text
28 第1次 Docker期 なにが良くなった︖︖ Private Docker Registry ローカルマシン(Win7)
Slide 29
Slide 29 text
29 第1次 Docker期 なにが良くなった︖︖ • Dockerを使うことで開発環境が1つでOKになった • Vagrantでたてた仮想環境上にDockerをインストール • docker-compose up -d するだけで環境構築が完了するようになった • コンテナ数は多いですが、⼀気にコンテナを起動し、依存のあるサービ スが⼀度に⽴ち上がる • 残っていた古いPHPのXAMPPの環境もコンテナイメージ化 • Dockerが使えてウキウキ︕ • (全てのコンテナをそろえるのに半年くらいはかかってしまった)
Slide 30
Slide 30 text
30 だいぶ整ったのでは︖
Slide 31
Slide 31 text
31 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント • Dockerの環境を使ってくれていないチームメンバーが・・・ • 半年後に発覚。たしかに、環境構築をし直すのが⾯倒なのは分かる・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。
Slide 32
Slide 32 text
32 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント • Dockerの環境を使ってくれていないチームメンバーが・・・ • 半年後に発覚。たしかに、環境構築をし直すのが⾯倒なのは分かる・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。
Slide 33
Slide 33 text
33 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント • Dockerの環境を使ってくれていないチームメンバーが・・・ • たしかに、環境構築をし直すのが⾯倒なのは分かる・・・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。 https://speakerdeck.com/blue_goheimochi/phpconsen2019
Slide 34
Slide 34 text
34 第1次 Docker期 問題点 • ファイル読み込みが重い • Vagrantの共有フォルダ → コンテナイメージがマウント • Dockerの環境を使ってくれていないチームメンバーが・・・ • たしかに、環境構築をし直すのが⾯倒なのは分かる・・・・ • 古いコンテナのビルドが通らなくなる • CentOS5のコンテナ・・・・yumが・・・・・ • とりあえず作っておいて助かったがメンテナンスはきつい • などなど。。。 https://speakerdeck.com/blue_goheimochi/phpconsen2019 フルリプレイスがほぼほぼ完了しています︕ (どこかで報告できたらいいな)
Slide 35
Slide 35 text
35 ︖ 我々の開発環境の変遷 第1次 Docker期から・・・ 2013 2019 2016 2014 2015 2017 2018
Slide 36
Slide 36 text
36 第2次 Docker期
Slide 37
Slide 37 text
37 第2次 Docker期 当時の状況 • Windows・・・つらくない︖ • (≒Docker in VirtualBox・・・つらくない︖) • みんな・・・たのむ・・・開発環境移⾏してくれ・・・・ • よし、みんな、開発環境をMacに移⾏だ︕ • 端末の交換時期とも重なり、メンバー全員のローカルマシンが Mac Book Proにリプレイス
Slide 38
Slide 38 text
38 第2次 Docker期 なにが良くなった︖︖ Private Docker Registry ローカルマシン(MacBook Pro) Docker for Mac
Slide 39
Slide 39 text
39 第2次 Docker期 なにが良くなった︖︖ • メンバー全員がMacになりDocker for Macが利⽤可能に • 体感的にはとても速くなった(遅いという話も聞きますが・・) • リモートワーク推奨などの流れもあり、徐々に変えていっている過程 • 強制的に全員が環境構築を再度できた • 少しずつメンバーがコンテナを作ったり修正してくれるような感じに︕ • この辺は本当に継続は⼒なりだなぁ・・と • でもまだまだ全員に触ってもらえているわけではない • この辺りは技術的な課題というよりもチームビルディングに課題感が
Slide 40
Slide 40 text
40 我々の開発環境の変遷 第2次 Docker期・・・完・・・ 2013 2019 2016 2014 2015 2017 2018
Slide 41
Slide 41 text
41 我々の開発環境の変遷 • XAMPP期 • Vagrant期 • 第1次 Docker期 • 第2次 Docker期
Slide 42
Slide 42 text
42 我々の開発環境の変遷 • XAMPP期 • Vagrant期 • 第1次 Docker期 • 第2次 Docker期 • 第3次 Docker期︖︖︖
Slide 43
Slide 43 text
43 第3次 Docker期︖︖︖ 現在の状況 • よりチームメンバーにコンテナを触ってもらいたい︕ • 徐々に機会を増やすようにする • Packer経由でAnsibleなどで構築しているコンテナをDockerfileベース に直していくというようなことを進めています • それ以外にあまり問題点は感じていない • たださらなるステップアップとしてできそうなことはある • 本番環境でのコンテナ運⽤︕ • これができれば本番環境とローカル環境とほぼほぼ同じにできる
Slide 44
Slide 44 text
44 まさに、現在 チャレンジ中です
Slide 45
Slide 45 text
45 第3次 Docker期︖︖︖ チャレンジ • クラウド化の実現 • アプリケーションの刷新 • フロントエンド︓ Nuxt.js • バックエンド︓Laravel • 本番環境でのコンテナ運⽤ • インフラチーム(SREチームを新設)とのさらなる連携 • の第1弾を 2019年9⽉にリリース しました︕ • 継続してよりよい環境になるよう頑張っています︕
Slide 46
Slide 46 text
46 我々の開発環境の変遷 • XAMPP期 • Vagrant期 • 第1次 Docker期 • 第2次 Docker期 • 第3次 Docker期 ← Now
Slide 47
Slide 47 text
47 最後に ⼀番伝えたかったこと
Slide 48
Slide 48 text
48 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now ここまでくるのにほぼ6年半
Slide 49
Slide 49 text
49 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now 速いと思いますか︖ 遅いと思いますか︖
Slide 50
Slide 50 text
50 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now https://www.slideshare.net/ohashiyuta/5docker 個⼈的にDockerを触り始めたのは2014年
Slide 51
Slide 51 text
51 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now 実践したいができずに ⻭がゆい気持ちはあった
Slide 52
Slide 52 text
52 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now あそこの会社ではやってるのに・・・
Slide 53
Slide 53 text
53 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now ただ振り返ってみるとこう思います
Slide 54
Slide 54 text
54 「変化」を起こすためには 「時間」は必要
Slide 55
Slide 55 text
55 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now チームの体制や状況に⼤きく関係するが そのチームでできる最速が「最速」である
Slide 56
Slide 56 text
56 我々の開発環境の変遷 第3次 Docker期 ← いまここ 2013 2019 2016 2014 2015 2017 2018 Now 常に情報をキャッチアップし準備し 然るべきタイミングで⼒を注ぎ込む
Slide 57
Slide 57 text
57 この約6年半の チームの取り組みを 我々は誇りに思っています
Slide 58
Slide 58 text
58 We are hiring !
Slide 59
Slide 59 text
59 Tech Stack
Slide 60
Slide 60 text
60 ΦέΠΣΠϰͷ੍ ݄༵ޕલӦۀٳ 「オウケイウェイヴ ブルーマンデー 対策」 https://otekomachi.yomiuri.co.jp/news/20181217-OKT8T119021/
Slide 61
Slide 61 text
61 ΦέΠΣΠϰͷ੍ #BSεϖʔε 世界のビールが飲み放題(ソフトドリンクもあるよ)
Slide 62
Slide 62 text
62 ご清聴ありがとうございました