Slide 1

Slide 1 text

開発をVagrantからDockerへ!
 
 PHPカンファレンス北海道 2019

Slide 2

Slide 2 text

What is it?
 大切なことは最初に
 2

Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

本書きました
 4

Slide 5

Slide 5 text

What is it?
 みなさんDocker使ってますか?
 5

Slide 6

Slide 6 text

What is it?
 まずは開発環境をコンテナ化!
 6

Slide 7

Slide 7 text

あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ
 5. 自己紹介
 7

Slide 8

Slide 8 text

あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ
 5. 自己紹介
 8

Slide 9

Slide 9 text

Vagrantの栄光と衰退
 Vagrantより以前…覚えてますか?
 9

Slide 10

Slide 10 text

古の時代の経験
 ● Xampの中のバージョンと本番で違う
 ● そもそもWindowsとMacで構築手順が違う
 ● 別アプリのためにパッケージを追加したら
 壊れたり...
 ● 職人によるvirtual host管理 
 … etc
 10

Slide 11

Slide 11 text

Vagrantの栄光と衰退
 Vagrant使ってますか?
 11

Slide 12

Slide 12 text

Vagrantはめちゃ便利
 ● 開発環境をAll in oneで用意出来る
 ● WindowsでもMacでもLinuxが動く
 ● 環境をきれいに分けられるので別アプリの変更な どの影響を無くせる
 ● boxの共有でチーム内共有も簡単!
 12

Slide 13

Slide 13 text

Vagrantの栄光と衰退
 
 Vagrant...えぇやん!!
 
 13

Slide 14

Slide 14 text

Vagrantの栄光と衰退
 
 Vagrant...えぇやん!!
 ↓
 これはある一面では正解
 
 14

Slide 15

Slide 15 text

Vagrantの栄光と衰退
 
 LAMPの時は IaaS & Vagrant が良かった
 15

Slide 16

Slide 16 text

Vagrantの栄光と衰退
 
 LAMPの時は IaaS & Vagrant でも良かった
 ↓
 APIやデータストア層が増えてくると…
 16

Slide 17

Slide 17 text

LAMPの頃
 PHP データストア フレームワーク httpd IaaS=Vagrant
 
 同じAnsibleを実行すれば良い 
 
 Web
 17

Slide 18

Slide 18 text

サービスがスケールしてくると…
 PHP データストア フレームワーク httpd Web
 APIサーバ NoSQL 18

Slide 19

Slide 19 text

Vagrantの栄光と衰退
 1つのVagrantではデカすぎる
 19

Slide 20

Slide 20 text

Vagrantの栄光と衰退
 1つのVagrantではデカすぎる
 ↓
 AnsibleとVMもロール単位で分けよう
 20

Slide 21

Slide 21 text

乱立するVM
 VM2 VM1 VM3 VM3.5 VM4 VM5 VM5.1 VM6 21

Slide 22

Slide 22 text

Vagrantの栄光と衰退
 混沌と溢れるboxとdisk…
 
 昔よりは圧倒的に良くなったのだけど…
 22

Slide 23

Slide 23 text

Vagrantの栄光と衰退
 なるほど、dockerだ!!
 23

Slide 24

Slide 24 text

あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ
 5. 自己紹介
 24

Slide 25

Slide 25 text

黒船(Docker)来訪
 docker とは?
 25

Slide 26

Slide 26 text

黒船(Docker)来訪
 docker とは?
 ↓
 時間ないからググって
 26

Slide 27

Slide 27 text

Docker時代
 カーネル - ディスク - ネットワークなど httpd ブラウザ プロセス単位でコンテナを管理できる 
 例えば、nginxやApacheとPHPを分離出来る 
 DBもMySQLとPostgreSQLで使い分けたい時は、 
 DBのコンテナだけを差し替えれば良い 
 OS
 PHP DB 27

Slide 28

Slide 28 text

黒船(Docker)来訪
 たしかにプロセス単位で
 
 責務を分けれるので便利
 28

Slide 29

Slide 29 text

黒船(Docker)来訪
 既存のコンテナを使えば
 
 環境構築が簡単!
 29

Slide 30

Slide 30 text

黒船(Docker)来訪
 既存のコンテナを使えば
 
 環境構築が簡単!
 野良のDockerイメージを使う場合は、
 Dockerファイルや中身の確認は必須
 野良をカスタマイズする野良のDockerイメージは、
 使わない方が無難
 30

Slide 31

Slide 31 text

黒船(Docker)来訪
 でも依存関係とかネットワーク周り
 
 とにかく面倒だよね?
 31

Slide 32

Slide 32 text

黒船(Docker)来訪
 なるほど、Docker Composeだ!!
 32

Slide 33

Slide 33 text

あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ
 5. 自己紹介
 33

Slide 34

Slide 34 text

Dockerの更に先、Docker Compose
 Docker Compose?
 34

Slide 35

Slide 35 text

Dockerの更に先、Docker Compose
 Docker Compose?
 ↓
 いい感じにDockerをまとめて扱える
 35

Slide 36

Slide 36 text

Dockerの更に先、Docker Compose
 yamlを書くのじゃ!
 36

Slide 37

Slide 37 text

version: '2' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: dddjjjzzzddddooooon! MYSQL_DATABASE: hoge web: build: omicale-web volumes: - .:/myapp ports: - "8888:80" depends_on: - db 37

Slide 38

Slide 38 text

Dockerの更に先、Docker Compose
 とにかく便利!
 38

Slide 39

Slide 39 text

Docker Composeのメリット
 ● 開発環境をプロセス単位で管理出来る
 ● 例えばPHPのversionだけ分けたいなど
 ● コンテナのメリットとVagrantのAll in oneを合わた ような運用が可能
 ● yamlを共有するだけで環境構築!
 39

Slide 40

Slide 40 text

Docker Composeのデメリット
 ● Windowsの環境構築は罠が多い
 ● コンテナが多いとメモリ足りなくなる
 ● 同じコンテナならどこでも動くは幻想
 ○ 環境変数とかネットワークとか差分はある
 ● 世の中で言われる便利はテストなど話が中心
 ○ 便利に感じない時は足りない事が他にある
 40

Slide 41

Slide 41 text

あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ
 5. 自己紹介
 41

Slide 42

Slide 42 text

まとめ
 もちろん当初の目的(前述)を
 達成したメリットは大きい
 42

Slide 43

Slide 43 text

まとめ
 さらに運用が回りだせば
 得る物も多い
 43

Slide 44

Slide 44 text

まとめ
 Vagrantで辛くなったら
 Dockerを考えよう
 44

Slide 45

Slide 45 text

まとめ
 コンテナだと環境構築が簡単だけど
 
 野良のDockerイメージ要注意
 45

Slide 46

Slide 46 text

まとめ
 ロールバックが簡単
 コンテナの履歴を使って戻せる
 (buildやコードの調整が不要)
 46

Slide 47

Slide 47 text

まとめ
 stagingや開発環境の複製が簡単
 47

Slide 48

Slide 48 text

まとめ
 CI/CDの環境構築がより簡単に
 ↓
 サービスの品質向上へ
 48

Slide 49

Slide 49 text

まとめ
 本番環境は一旦置いても
 コンテナを利用するメリットは多い
 49

Slide 50

Slide 50 text

まとめ
 自分たちの解決したい課題に合わせる
 50

Slide 51

Slide 51 text

まとめ
 自分たちの解決したい課題に合わせる
 ↓
 一部から使うことでもメリットはある
 (例えばテストだけdockerとか)
 51

Slide 52

Slide 52 text

まとめ
 運用のことは考えよう
 52

Slide 53

Slide 53 text

あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ
 5. 自己紹介
 53

Slide 54

Slide 54 text

自己紹介
 曽根 壮大(34歳)
 株式会社 オミカレ 副社長 CTO
 
 そ  ね   たけ とも
 ● 日本PostgreSQLユーザ会 勉強会分科会 担当
 ● 3人の子供がいます(長女、次女、長男)
 ● 技術的にはWeb/LL言語/RDBMSが好きです
 ● コミュニティが好き 54

Slide 55

Slide 55 text

婚活といえばオミカレ
 https://party-calendar.net/ 55

Slide 56

Slide 56 text

まとめ
 技術で課題を解決する
 56

Slide 57

Slide 57 text

まとめ
 ご清聴ありがとうございました
 57