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

20年ものの巨大プロダクトをKubernetesに移行している話/Garoon on Kubernetes

20年ものの巨大プロダクトをKubernetesに移行している話/Garoon on Kubernetes

Yuichi Sugiyama

September 25, 2022
Tweet

More Decks by Yuichi Sugiyama

Other Decks in Technology

Transcript

  1. 20೥΋ͷͷڊେϓϩμΫτΛ KubernetesʹҠߦ͍ͯ͠Δ࿩ αΠϘ΢ζגࣜձࣾ Garoon։ൃ ਿࢁ ༞Ұ PHP Conference 2022 εϙϯαʔLT

    #phpcon #phpcon2022
  2. 5෼͡Όݴ͍͍ͨ͜ͱ΋ݴ͍੾Εͳ͍ʂ

  3. PHP Conferenceޙ೔ஊͰৄ͘͠࿩͠·͢ʂ  https://cybozu.connpass.com/event/259333/

  4. PHP Conferenceޙ೔ஊͰৄ͘͠࿩͠·͢ʂ  https://cybozu.connpass.com/event/259333/ 1)1ରԠͱLTҠߦ ྆ํσΟʔϓʹ͓࿩͠͠·͢ʂ

  5. ͔͜͜Βຊฤ

  6. Whoami • ਿࢁ ༞Ұ @oogFranz • େاۀ޲͚άϧʔϓ΢ΣΞGaroon(Ψϧʔϯ) ࡞ͬͯΔ • ෳۀδϟζϛϡʔδγϟϯ

    • MASHݭָஂɺFried Banana CabinɺϒϧʔάϥεˑϙϦε 
  7. αΠϘ΢ζ Garoon • େاۀ޲͚ͷάϧʔϓ΢ΣΞ • ࡢ೔ʢ9/24ʣ͕ϦϦʔε20प೥ʂ • PHPͱMySQLͰಈ͘ • ύοέʔδ൛ͱΫϥ΢υ൛͕͋Δ

    
  8. αΠϘ΢ζ Garoon • େاۀ޲͚ͷάϧʔϓ΢ΣΞ • ࡢ೔ʢ9/24ʣ͕ϦϦʔε20प೥ʂ • PHPͱMySQLͰಈ͘ • ύοέʔδ൛ͱΫϥ΢υ൛͕͋Δ

    
  9. Ϋϥ΢υΠϯϑϥج൫࡮৽ϓϩδΣΫτ Neco • εέʔϥϏϦςΟ΍ϝϯςφϏϦςΟͷ໰୊͔Βελʔτ • VMϕʔεͷߏ੒͔Βίϯςφϕʔεͷߏ੒ʹ࡮৽ • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ • ج൫ଆͷ։ൃ͸2018೥։࢝ɻ2021೥ʹҰ୴׬ྃʂ

    • https://blog.cybozu.io/entry/ever-lasting-neco 
  10. Ϋϥ΢υΠϯϑϥج൫࡮৽ϓϩδΣΫτ Neco • εέʔϥϏϦςΟ΍ϝϯςφϏϦςΟͷ໰୊͔Βελʔτ • VMϕʔεͷߏ੒͔Βίϯςφϕʔεͷߏ੒ʹ࡮৽ • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ • ج൫ଆͷ։ൃ͸2018೥։࢝ɻ2021೥ʹҰ୴׬ྃʂ

    • https://blog.cybozu.io/entry/ever-lasting-neco  (BSPPOͷҠߦ͕ࠓ೥͔Βελʔτʂ
  11. Ϋϥ΢υΠϯϑϥج൫࡮৽ϓϩδΣΫτ Neco • εέʔϥϏϦςΟ΍ϝϯςφϏϦςΟͷ໰୊͔Βελʔτ • VMϕʔεͷߏ੒͔Βίϯςφϕʔεͷߏ੒ʹ࡮৽ • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ • ج൫ଆͷ։ൃ͸2018೥։࢝ɻ2021೥ʹҰ୴׬ྃʂ

    • https://blog.cybozu.io/entry/ever-lasting-neco  (BSPPOͷҠߦ͕ࠓ೥͔Βελʔτʂ ׬ྃ໨ඪ͸೥ʂ
  12. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷ੹೚ڥքઢେҠಈ • ݱ࣮ VS

    ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ 
  13. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷ੹೚ڥքઢେҠಈ • ݱ࣮ VS

    ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ  ࠓ೔͸͜Ε͚ͩ࿩͢Α
  14.  Garoon Pods ίϯςφ͸͙͢ࢮ͵ʂ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS

    /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ΞΫηε෼ࢄ
  15.  Garoon Pods ίϯςφ͸͙͢ࢮ͵ʂ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS

    /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ❌ ❌ ͍ͣΕ͔ͷίϯςφ΍ 1PEʹ໰୊͕͋ͬͨΒ
  16.  Garoon Pods ίϯςφ͸͙͢ࢮ͵ʂ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS

    /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ❌ ❌ ͍ͣΕ͔ͷίϯςφ΍ 1PEʹ໰୊͕͋ͬͨΒ /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ໰୊ͷ1PEΛऔΓআ͖ ৽͘͠1PEΛ࡞੒͢Δ
  17. ίϯςφ͸͙͢ࢮ͵ʂ • VM͸جຊམͱͤͳ͍ɻམͪͨΒ͙͢ʹͰ΋෮چͤ͞Δɻ • ίϯςφͰ͸໰୊͕ى͖ͨΒ͙͢ʹམͱͯ͠ɺ৽͍͠΋ͷΛ࡞Δɻ • ͜ΕʹΑΓߴՄ༻ੑͱεέʔϧΞ΢τ͕࣮ݱՄೳ • ࣮ࡍʹίϯςφ͕੬͙ͯ͘͢ࢮ͵ɺͱ͍͏ΑΓ΋ 


    ίϯςφ͕͍ͭࢮΜͰ΋ྑ͍લఏͰઃܭ͠Α͏ɺ 
 ͱݴ͏͓࿩ɻ 
  18. ίϯςφ͸͙͢ࢮ͵ʂ • VM͸جຊམͱͤͳ͍ɻམͪͨΒ͙͢ʹͰ΋෮چͤ͞Δɻ • ίϯςφͰ͸໰୊͕ى͖ͨΒ͙͢ʹམͱͯ͠ɺ৽͍͠΋ͷΛ࡞Δɻ • ͜ΕʹΑΓߴՄ༻ੑͱεέʔϧΞ΢τ͕࣮ݱՄೳ • ࣮ࡍʹίϯςφ͕੬͙ͯ͘͢ࢮ͵ɺͱ͍͏ΑΓ΋ 


    ίϯςφ͕͍ͭࢮΜͰ΋ྑ͍લఏͰઃܭ͠Α͏ɺ 
 ͱݴ͏͓࿩ɻ  ύοέʔδͰ࢝·ͬͨ(BSPPOʹ͸ͦͷલఏ͕ͳ͍
  19.  Garoon Pods ୯ʹίϯςφԽ͢Δͱɺίϯςφ͕ঢ়ଶΛ࣋ͭ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS

    /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ϑΝΠϧΞοϓϩʔυ ϩάϑΝΠϧ Ωϟογϡ
  20.  Garoon Pods ୯ʹίϯςφԽ͢Δͱɺίϯςφ͕ঢ়ଶΛ࣋ͭ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS

    /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ϑΝΠϧΞοϓϩʔυ ϩάϑΝΠϧ Ωϟογϡ ❌ ❌ 1PE͕ෆ༻ҙʹམͪΔͱɺಓ࿈ΕͰ͍Ζ͍Ζফ͑ͯ͠·͏ ❌ ❌
  21. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷ੹೚ڥքઢେҠಈ • ݱ࣮ VS

    ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ 
  22. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷڥքઢେҠಈ • ݱ࣮ VS

    ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ  ࢒Γ͸ޙ೔ஊͰ࿩͠·͢ʂ
  23. ޙ೔ஊͰ͠Ό΂Γ͍ͨ͜ͱ • ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ • ͜ͷ਺೥ͰऔΓ૊ΜͰ͖ͨɺ੡඼վળ͕͍͍ײ͡ʹޮ ͍ͯΔͧʂ • ։ൃͱӡ༻ɺΈͳ͞ΜͲ͏·Θͯ͠·͔͢ʁ 

  24. ޙ೔ஊͰ͠Ό΂Γ͍ͨ͜ͱ • ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ