ゆるいdocker-composeでプロダクション環境を運用したるでっ

 ゆるいdocker-composeでプロダクション環境を運用したるでっ

docker meetup kansai#4 登壇資料

Ce9812d336de0ea1bb109f7e5996bdc1?s=128

T.Nishimura

August 23, 2019
Tweet

Transcript

  1. # ΏΔ͍docker-composeͰ
 ϓϩμΫγϣϯ؀ڥΛӡ༻ͨ͠ΔͰͬ!

  2. ## ಥવͰ͕͢docker࢖ͬͯ·͔͢?? ๻͸ຖ೔࢖ͬͯ·͢^^

  3. ## ͬͱͦͷલʹࣗݾ঺հ • ੢ଜ ୓ඒ (@takumiio) • ࣗশ;Δͨͬ͑͘͢Μ͡ʹ͋ • ൒೥લʹגࣜձࣾLESTAS(http://lestas.jp/)


    (چձ໊ࣾ:໊ೖΕ੡࡞ॴ)ʹδϣΠϯ • takumi.io΋ӡӦͯ͠·͢ • ΊͬͪΌۓு͍ͯ͠·͢ɻ
 ॳΊͯͷొஃ&౾෗ϝϯλϧͳͷͰੜ ஆ͘ݟकͬͯ΍͍ͬͯͩ͘͞…
  4. ## docker-compose
 ศརͰ͢ΑͶ

  5. ## docker-composeͷศརͳͱ͜Ζ • docker-compose.yml༻ҙ͢Δ͚ͩͰ·Δ͝ͱ ؀ڥ༻ҙ • طଘͷ؀ڥʹӨڹ͞Εͳ͍ͷͰϓϩδΣΫτϝ ϯόʔશһͷ։ൃ؀ڥߏங΋ͱͬͯ΋؆୯

  6. ## Ͱ΋…ࡢࠓͷϓϩμΫγϣϯͷ
 ؀ڥ͸ͱ͍͏ͱ…

  7. • ʮ͏ͪ͸capistorano͔ͭͬͯΔʯ • ʮखಈ(·ͨ͸ϦϞʔτ)Ͱgit pullʯ • ʮ͋͊͊͊Δ͌͌͌͢Μ͎͎͎͘ (rsync)ʯ • ʮFTPͰ͢(ŝžŕ)ʯ

    ※Սۭͷ࿩Ͱ͕͢શͯܦݧͯ͠·͢
  8. ## ։ൃͰdocker࢖ͬͯͯ΋
 ϓϩμΫγϣϯͰ࢖ͬͯͳ͍ͬ!!

  9. ## ϓϩμΫγϣϯͰ࢖͑ͳ͍ཧ༝ྫ • ϓϩμΫγϣϯ΁ͷಋೖෑډ͕ߴ͍ • Kubernetesͱ͔ผ్ίϯςφ΍Ϋϥ΢υͷ஌ࣝඞཁͱ͔ • ϓϩμΫγϣϯ༻ͷίϯςφΠϝʔδ
 (௨শΰʔϧσϯΠϝʔδ)͕༻ҙͰ͖ͳ͍ •

    Θ͔ΔɻΊΜͲ͍͘͞ΑͶɻ • uptime͕1000day௒͔͑ͨΒdockerೖΕͯ࠶ىಈͨ͘͠ͳ͍ • ஌ΒΜ͕n Ͱ΋ͦͷ؀ڥΛ࠶ىಈ͢Δͷ͕ා͍ͬͯؾ࣋ͪ͸Θ͔Γ· ͢
  10. ͝ఏҊ͕͋Γ·ͬ͢!!

  11. ͍ͬͦͷ͜ͱ
 ΏΔ͍docker-compose
 Ͱӡ༻ͯ͠Έ·͠ΐ͏!!

  12. ## ΏΔ͍docker-composeͱ͸ • ։ൃͰ࢖ͬͯΔdocker-composeΛͪΐͬ͜ͱฤूͯ͠
 ϓϩμΫγϣϯ΁ • ׬શͳΰʔϧσϯΠϝʔδͷ࡞੒Λ໨ࢦ͞ͳ͍ 
 (ϘϦϡʔϜ͔ͭͬͯ΋͍͍͠ɺίϯςφͷαΠζ΋ؾʹ͠ͳ͍ͬ) •

    ͦͷ͔ΘΓগʑͷμ΢ϯλΠϜΛڐ༰
 (޻෉͍ͩ͠Ͱ͍͔Α͏ʹͰ΋ΧόʔͰ͖ΔΑ) • docker-compose.yml͚ͩͰ׬݁
 (΋ͪΖΜDockerfile࡞Γ͍ͨͳΒ࡞ͬͯ΋OKΑὑ)
  13. ## ϝϦοτ

  14. ## ϝϦοτ • ։ൃ؀ڥͷ؀ڥΛϓϩμΫγϣϯʹͦͷ··υΥϯͱߏஙͰ͖Δ • γϯϓϧ
 docker-compose up -d Ͱࠓ೔͔Β͋ͳͨ΋ϓϩμΫγϣϯ

    • ಥવͷࢮ͘Β͍ͳΒ෮چͰ͖Δ!! ͔΋… (restart: always) • όʔδϣϯμ΢ϯ΋؆୯!!
 (image: foo:0.0.2 -> foo:0.0.1 ͚ͩͰΦοέʔ! 
 ϘϦϡʔϜ࢖ͬͯΔͳΒ git checkout ͰOK!!) • ςδϡϯγϣ??docker-compose.ymlݟ͍ͯͩ͘͞
  15. ## σϝϦοτ

  16. ## σϝϦοτ • KubernetesͳͲͷΨν੎πʔϧͱൺ΂Δͱශऑ • େ͖ͳίϯςφͩͱॏ͘ͳͬͨΓಥવͷࢮͷ্ཱ͕͕֬Δ • μ΢ϯλΠϜ͕ൃੜ͠΍͍͢ • ίϯςφͷࢮ

    = αʔϏεఀࢭ • ෳ਺ͷϗετΛލ͙ͳͲ
 ෳࡶͳ͜ͱΛ͠Α͏ͱ͢Δͱ٧Ή…͔΋͠Εͳ͍
  17. ## Ͱ΋େৎ෉ͩͲΜ!! σϝϦοτ͸޻෉࣍ୈͰ͋Δఔ౓૬ࡴͰ͖ΔͲΜ!!

  18. ## ޻෉ྫ • μ΢ϯλΠϜରࡦ • CDN with ΩϟογϡͰΈ͔͚ͷμ΢ϯλΠϜΛ཈੍ • docker-compose

    down ͢Δલʹ docker-compose pull ͠ͱ͘ • ಥવͷࢮରࡦ • Քಈͤ͞ΔαʔόͷεϖοΫΛ্͓͛ͯ͘ • සൟʹμ΢ϯ͢ΔΑ͏ͳΒίϯςφΠϝʔδͷόʔδϣϯΛ
 ࠷ޙʹ҆ఆՔಈ͍ͯͨ͠όʔδϣϯʹμ΢ϯάϨʔυ͢Δ
  19. ## ͔͠΋σϝϦοτΛ৐Γӽ͑ͯ
 ্ڃऀͳΔͱ͞ΒͳΔϝϦοτ͕ಘΒΕΔ!! • CIπʔϧʹίϯςφ৯ΘͤͯDevOps!! • docker-composer͚ͩͰ͸Ͱ͖ͳ͔ͬͨ
 k8s with GCPͳͲͰεέʔϧ΋෮چ΋


    ΦʔτϚςΟοΫʹ!! • ͪͳΈʹ๻͸AWS೿Ͱ͢ɻ
  20. ## ӡ༻ྫ

  21. ## Θ͍ͷձࣾͰࠓ࡞ͬͯΔ
 ೥լঢ়αʔϏεͷϓϩμΫτ(໊લ͸·ͩͳ͍…) • ݱࡏࣾ಺ϨϏϡʔͷεςʔδɻ
 ຖ೔σϓϩΠͰਐḿਐΉ͔Β্࢘΍ϝϯόʔ΋ʹͬ͜Γ΍Ͱ!! • ΋ͪΖΜϦϦʔε΋࠷ॳ͸docker-composeͰ͍͘Ͱͬ!! • ෛՙ͕ߴ͘ͳΔ͜ΖʹΠϯϑϥΤϯδχΞʹؙ౤͛ͯ͠


    k8s with GCPʹҠߦ΍!! • 10݄ϦϦʔε΍͔ΒΈΜͳൃ஫ͯ͠΍ͬ!!
  22. takumi.io • ݸਓϒϩά݉ϙʔτϑΥϦΦ݅ࣗݾຬ଍༻ͳͷͰམͪͯ΋ ໰୊ͳ͠ • ssh takumi.io 'docker-compose up --build

    -d' 
 ͰσϓϩΠ׬ྃͱ͔εςΩ΍Μ • t3.nanoͰӡ༻ͯ͠Δ͚ͲΠϥϯ͜ͱͨ࣌͠
 (σϓϩΠͱ͔σϓϩΠͱ͔σϓϩΠͱ͔)
 Ҏ֎͸ࠓͷͱ͜Ζ҆ఆՔಈ
  23. ## ·ͱΊ

  24. ## ·ͱΊ • ͔ͤͬ͘։ൃ؀ڥʹdocker-compose͍Εͯ࢖ͬͯΔͳΒ
 ϓϩμΫγϣϯ΋docker࢖Θͳ͍ͱ΋͍ͬͨͳ͍ͬ • αʔϏεμ΢ϯͯ͠΋ࠔΔͻͱ͕͍ͳ͍ΞʔϦεςʔδʹ ͱͬͯ΋࠷ద • σϓϩΠ͕ͨͷ͍ͬ͠!!

  25. ϢʔβʹϓϩμΫτΛݟͤΕͯ
 ͸͡ΊͯՁ஋ΛఏڙͰ͖Δͱࢥ͏ͷͰ ͦͷεϐʔυ͕࠷଎ʹͳΔͨΊͷ
 ͓ख఻͍ʹͳΕ͹͍͍ͳ͊ͱࢥ͍
 ͓࿩͍͖ͤͯͨͩ͞·ͨ͠ɻ

  26. ͖ΐɺࠓ೔ͷεϥΠυ͸ޙͰͪΌΜͱڞ༗͢ΔΜ͔ͩΒͶͬ!! ͔ɺצҧ͍͠ͳ͍ͰΑͶͬ!!΂ɺ΂ͭʹ͋ΜͨͨͪͷͨΊͳΜ͔͡Όͳ͍Μ͔ͩΒͶͬ!! dockerͷීٴͷͨΊΑͬ!! >< “## ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠”

  27. ࣭͝໰ͳͲ͋Γ·ͨ͠ΒͲ͏ͧ!!