Upgrade to Pro — share decks privately, control downloads, hide ads and more …

開発をVagrantからDockerへ! / Vagrant to Docker

88f4e84b94fe07cddbd9e6479d689192?s=47 soudai sone
September 17, 2019

開発をVagrantからDockerへ! / Vagrant to Docker

PHPカンファレンス北海道の登壇資料です

# PHPカンファレンス北海道
https://phpcon.hokkaido.jp/

88f4e84b94fe07cddbd9e6479d689192?s=128

soudai sone

September 17, 2019
Tweet

Transcript

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

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

  3. 3

  4. 本書きました
 4

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

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

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


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


    5. 自己紹介
 8
  9. Vagrantの栄光と衰退
 Vagrantより以前…覚えてますか?
 9

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

    host管理 
 … etc
 10
  11. Vagrantの栄光と衰退
 Vagrant使ってますか?
 11

  12. Vagrantはめちゃ便利
 • 開発環境をAll in oneで用意出来る
 • WindowsでもMacでもLinuxが動く
 • 環境をきれいに分けられるので別アプリの変更な どの影響を無くせる


    • boxの共有でチーム内共有も簡単!
 12
  13. Vagrantの栄光と衰退
 
 Vagrant...えぇやん!!
 
 13

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

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

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

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


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

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

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

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

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

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

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


    5. 自己紹介
 24
  25. 黒船(Docker)来訪
 docker とは?
 25

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

  27. Docker時代
 カーネル - ディスク - ネットワークなど httpd ブラウザ プロセス単位でコンテナを管理できる 


    例えば、nginxやApacheとPHPを分離出来る 
 DBもMySQLとPostgreSQLで使い分けたい時は、 
 DBのコンテナだけを差し替えれば良い 
 OS
 PHP DB 27
  28. 黒船(Docker)来訪
 たしかにプロセス単位で
 
 責務を分けれるので便利
 28

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

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

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

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

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


    5. 自己紹介
 33
  34. Dockerの更に先、Docker Compose
 Docker Compose?
 34

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

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

  37. 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
  38. Dockerの更に先、Docker Compose
 とにかく便利!
 38

  39. Docker Composeのメリット
 • 開発環境をプロセス単位で管理出来る
 • 例えばPHPのversionだけ分けたいなど
 • コンテナのメリットとVagrantのAll in oneを合わた

    ような運用が可能
 • yamlを共有するだけで環境構築!
 39
  40. Docker Composeのデメリット
 • Windowsの環境構築は罠が多い
 • コンテナが多いとメモリ足りなくなる
 • 同じコンテナならどこでも動くは幻想
 ◦ 環境変数とかネットワークとか差分はある


    • 世の中で言われる便利はテストなど話が中心
 ◦ 便利に感じない時は足りない事が他にある
 40
  41. あじぇんだ
 1. Vagrantの栄光と衰退
 2. 黒船(Docker)来訪
 3. Dockerの更に先、Docker Compose
 4. まとめ


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

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

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

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

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

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

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

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

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

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

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

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


    5. 自己紹介
 53
  54. 自己紹介
 曽根 壮大(34歳)
 株式会社 オミカレ 副社長 CTO
 
 そ  ね  

    たけ とも
 • 日本PostgreSQLユーザ会 勉強会分科会 担当
 • 3人の子供がいます(長女、次女、長男)
 • 技術的にはWeb/LL言語/RDBMSが好きです
 • コミュニティが好き 54
  55. 婚活といえばオミカレ
 https://party-calendar.net/ 55

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

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