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

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

soudai sone
September 17, 2019

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

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

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

soudai sone

September 17, 2019
Tweet

More Decks by soudai sone

Other Decks in Technology

Transcript

  1. 開発をVagrantからDockerへ!


    PHPカンファレンス北海道 2019

    View full-size slide

  2. What is it?

    大切なことは最初に

    2

    View full-size slide

  3. 本書きました

    4

    View full-size slide

  4. What is it?

    みなさんDocker使ってますか?

    5

    View full-size slide

  5. What is it?

    まずは開発環境をコンテナ化!

    6

    View full-size slide

  6. あじぇんだ

    1. Vagrantの栄光と衰退

    2. 黒船(Docker)来訪

    3. Dockerの更に先、Docker Compose

    4. まとめ

    5. 自己紹介

    7

    View full-size slide

  7. あじぇんだ

    1. Vagrantの栄光と衰退

    2. 黒船(Docker)来訪

    3. Dockerの更に先、Docker Compose

    4. まとめ

    5. 自己紹介

    8

    View full-size slide

  8. Vagrantの栄光と衰退

    Vagrantより以前…覚えてますか?

    9

    View full-size slide

  9. 古の時代の経験

    ● Xampの中のバージョンと本番で違う

    ● そもそもWindowsとMacで構築手順が違う

    ● 別アプリのためにパッケージを追加したら

    壊れたり...

    ● 職人によるvirtual host管理 

    … etc

    10

    View full-size slide

  10. Vagrantの栄光と衰退

    Vagrant使ってますか?

    11

    View full-size slide

  11. Vagrantはめちゃ便利

    ● 開発環境をAll in oneで用意出来る

    ● WindowsでもMacでもLinuxが動く

    ● 環境をきれいに分けられるので別アプリの変更な
    どの影響を無くせる

    ● boxの共有でチーム内共有も簡単!

    12

    View full-size slide

  12. Vagrantの栄光と衰退


    Vagrant...えぇやん!!


    13

    View full-size slide

  13. Vagrantの栄光と衰退


    Vagrant...えぇやん!!

    ↓

    これはある一面では正解


    14

    View full-size slide

  14. Vagrantの栄光と衰退


    LAMPの時は IaaS & Vagrant が良かった

    15

    View full-size slide

  15. Vagrantの栄光と衰退


    LAMPの時は IaaS & Vagrant でも良かった

    ↓

    APIやデータストア層が増えてくると…

    16

    View full-size slide

  16. LAMPの頃

    PHP
    データストア
    フレームワーク
    httpd
    IaaS=Vagrant


    同じAnsibleを実行すれば良い 


    Web

    17

    View full-size slide

  17. サービスがスケールしてくると…

    PHP
    データストア
    フレームワーク
    httpd
    Web

    APIサーバ
    NoSQL
    18

    View full-size slide

  18. Vagrantの栄光と衰退

    1つのVagrantではデカすぎる

    19

    View full-size slide

  19. Vagrantの栄光と衰退

    1つのVagrantではデカすぎる

    ↓

    AnsibleとVMもロール単位で分けよう

    20

    View full-size slide

  20. 乱立するVM

    VM2
    VM1
    VM3
    VM3.5
    VM4
    VM5
    VM5.1
    VM6
    21

    View full-size slide

  21. Vagrantの栄光と衰退

    混沌と溢れるboxとdisk…


    昔よりは圧倒的に良くなったのだけど…

    22

    View full-size slide

  22. Vagrantの栄光と衰退

    なるほど、dockerだ!!

    23

    View full-size slide

  23. あじぇんだ

    1. Vagrantの栄光と衰退

    2. 黒船(Docker)来訪

    3. Dockerの更に先、Docker Compose

    4. まとめ

    5. 自己紹介

    24

    View full-size slide

  24. 黒船(Docker)来訪

    docker とは?

    25

    View full-size slide

  25. 黒船(Docker)来訪

    docker とは?

    ↓

    時間ないからググって

    26

    View full-size slide

  26. Docker時代

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

    例えば、nginxやApacheとPHPを分離出来る 

    DBもMySQLとPostgreSQLで使い分けたい時は、 

    DBのコンテナだけを差し替えれば良い 

    OS

    PHP DB
    27

    View full-size slide

  27. 黒船(Docker)来訪

    たしかにプロセス単位で


    責務を分けれるので便利

    28

    View full-size slide

  28. 黒船(Docker)来訪

    既存のコンテナを使えば


    環境構築が簡単!

    29

    View full-size slide

  29. 黒船(Docker)来訪

    既存のコンテナを使えば


    環境構築が簡単!

    野良のDockerイメージを使う場合は、

    Dockerファイルや中身の確認は必須

    野良をカスタマイズする野良のDockerイメージは、

    使わない方が無難

    30

    View full-size slide

  30. 黒船(Docker)来訪

    でも依存関係とかネットワーク周り


    とにかく面倒だよね?

    31

    View full-size slide

  31. 黒船(Docker)来訪

    なるほど、Docker Composeだ!!

    32

    View full-size slide

  32. あじぇんだ

    1. Vagrantの栄光と衰退

    2. 黒船(Docker)来訪

    3. Dockerの更に先、Docker Compose

    4. まとめ

    5. 自己紹介

    33

    View full-size slide

  33. Dockerの更に先、Docker Compose

    Docker Compose?

    34

    View full-size slide

  34. Dockerの更に先、Docker Compose

    Docker Compose?

    ↓

    いい感じにDockerをまとめて扱える

    35

    View full-size slide

  35. Dockerの更に先、Docker Compose

    yamlを書くのじゃ!

    36

    View full-size slide

  36. 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

    View full-size slide

  37. Dockerの更に先、Docker Compose

    とにかく便利!

    38

    View full-size slide

  38. Docker Composeのメリット

    ● 開発環境をプロセス単位で管理出来る

    ● 例えばPHPのversionだけ分けたいなど

    ● コンテナのメリットとVagrantのAll in oneを合わた
    ような運用が可能

    ● yamlを共有するだけで環境構築!

    39

    View full-size slide

  39. Docker Composeのデメリット

    ● Windowsの環境構築は罠が多い

    ● コンテナが多いとメモリ足りなくなる

    ● 同じコンテナならどこでも動くは幻想

    ○ 環境変数とかネットワークとか差分はある

    ● 世の中で言われる便利はテストなど話が中心

    ○ 便利に感じない時は足りない事が他にある

    40

    View full-size slide

  40. あじぇんだ

    1. Vagrantの栄光と衰退

    2. 黒船(Docker)来訪

    3. Dockerの更に先、Docker Compose

    4. まとめ

    5. 自己紹介

    41

    View full-size slide

  41. まとめ

    もちろん当初の目的(前述)を

    達成したメリットは大きい

    42

    View full-size slide

  42. まとめ

    さらに運用が回りだせば

    得る物も多い

    43

    View full-size slide

  43. まとめ

    Vagrantで辛くなったら

    Dockerを考えよう

    44

    View full-size slide

  44. まとめ

    コンテナだと環境構築が簡単だけど


    野良のDockerイメージ要注意

    45

    View full-size slide

  45. まとめ

    ロールバックが簡単

    コンテナの履歴を使って戻せる

    (buildやコードの調整が不要)

    46

    View full-size slide

  46. まとめ

    stagingや開発環境の複製が簡単

    47

    View full-size slide

  47. まとめ

    CI/CDの環境構築がより簡単に

    ↓

    サービスの品質向上へ

    48

    View full-size slide

  48. まとめ

    本番環境は一旦置いても

    コンテナを利用するメリットは多い

    49

    View full-size slide

  49. まとめ

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

    50

    View full-size slide

  50. まとめ

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

    ↓

    一部から使うことでもメリットはある

    (例えばテストだけdockerとか)

    51

    View full-size slide

  51. まとめ

    運用のことは考えよう

    52

    View full-size slide

  52. あじぇんだ

    1. Vagrantの栄光と衰退

    2. 黒船(Docker)来訪

    3. Dockerの更に先、Docker Compose

    4. まとめ

    5. 自己紹介

    53

    View full-size slide

  53. 自己紹介

    曽根 壮大(34歳)

    株式会社 オミカレ 副社長 CTO


    そ  ね   たけ とも

    ● 日本PostgreSQLユーザ会 勉強会分科会 担当

    ● 3人の子供がいます(長女、次女、長男)

    ● 技術的にはWeb/LL言語/RDBMSが好きです

    ● コミュニティが好き
    54

    View full-size slide

  54. 婚活といえばオミカレ

    https://party-calendar.net/
    55

    View full-size slide

  55. まとめ

    技術で課題を解決する

    56

    View full-size slide

  56. まとめ

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

    57

    View full-size slide