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

    View full-size slide

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

    View full-size slide

  3. PHP Conferenceޙ೔ஊͰৄ͘͠࿩͠·͢ʂ

    https://cybozu.connpass.com/event/259333/

    View full-size slide

  4. PHP Conferenceޙ೔ஊͰৄ͘͠࿩͠·͢ʂ

    https://cybozu.connpass.com/event/259333/
    1)1ରԠͱLTҠߦ
    ྆ํσΟʔϓʹ͓࿩͠͠·͢ʂ

    View full-size slide

  5. ͔͜͜Βຊฤ

    View full-size slide

  6. Whoami
    • ਿࢁ ༞Ұ @oogFranz


    • େاۀ޲͚άϧʔϓ΢ΣΞGaroon(Ψϧʔϯ) ࡞ͬͯΔ


    • ෳۀδϟζϛϡʔδγϟϯ


    • MASHݭָஂɺFried Banana CabinɺϒϧʔάϥεˑϙϦε

    View full-size slide

  7. αΠϘ΢ζ Garoon
    • େاۀ޲͚ͷάϧʔϓ΢ΣΞ


    • ࡢ೔ʢ9/24ʣ͕ϦϦʔε20प೥ʂ


    • PHPͱMySQLͰಈ͘


    • ύοέʔδ൛ͱΫϥ΢υ൛͕͋Δ

    View full-size slide

  8. αΠϘ΢ζ Garoon
    • େاۀ޲͚ͷάϧʔϓ΢ΣΞ


    • ࡢ೔ʢ9/24ʣ͕ϦϦʔε20प೥ʂ


    • PHPͱMySQLͰಈ͘


    • ύοέʔδ൛ͱΫϥ΢υ൛͕͋Δ

    View full-size slide

  9. Ϋϥ΢υΠϯϑϥج൫࡮৽ϓϩδΣΫτ
    Neco
    • εέʔϥϏϦςΟ΍ϝϯςφϏϦςΟͷ໰୊͔Βελʔτ


    • VMϕʔεͷߏ੒͔Βίϯςφϕʔεͷߏ੒ʹ࡮৽


    • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ


    • ج൫ଆͷ։ൃ͸2018೥։࢝ɻ2021೥ʹҰ୴׬ྃʂ


    • https://blog.cybozu.io/entry/ever-lasting-neco

    View full-size slide

  10. Ϋϥ΢υΠϯϑϥج൫࡮৽ϓϩδΣΫτ
    Neco
    • εέʔϥϏϦςΟ΍ϝϯςφϏϦςΟͷ໰୊͔Βελʔτ


    • VMϕʔεͷߏ੒͔Βίϯςφϕʔεͷߏ੒ʹ࡮৽


    • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ


    • ج൫ଆͷ։ൃ͸2018೥։࢝ɻ2021೥ʹҰ୴׬ྃʂ


    • https://blog.cybozu.io/entry/ever-lasting-neco

    (BSPPOͷҠߦ͕ࠓ೥͔Βελʔτʂ

    View full-size slide

  11. Ϋϥ΢υΠϯϑϥج൫࡮৽ϓϩδΣΫτ
    Neco
    • εέʔϥϏϦςΟ΍ϝϯςφϏϦςΟͷ໰୊͔Βελʔτ


    • VMϕʔεͷߏ੒͔Βίϯςφϕʔεͷߏ੒ʹ࡮৽


    • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ


    • ج൫ଆͷ։ൃ͸2018೥։࢝ɻ2021೥ʹҰ୴׬ྃʂ


    • https://blog.cybozu.io/entry/ever-lasting-neco

    (BSPPOͷҠߦ͕ࠓ೥͔Βελʔτʂ
    ׬ྃ໨ඪ͸೥ʂ

    View full-size slide

  12. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ
    • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ


    • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ


    • ։ൃͱӡ༻ͷ੹೚ڥքઢେҠಈ


    • ݱ࣮ VS ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ


    • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ

    View full-size slide

  13. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ
    • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ


    • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ


    • ։ൃͱӡ༻ͷ੹೚ڥքઢେҠಈ


    • ݱ࣮ VS ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ


    • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ

    ࠓ೔͸͜Ε͚ͩ࿩͢Α

    View full-size slide


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

    View full-size slide


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


    ͍ͣΕ͔ͷίϯςφ΍
    1PEʹ໰୊͕͋ͬͨΒ

    View full-size slide


  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Λ࡞੒͢Δ

    View full-size slide

  17. ίϯςφ͸͙͢ࢮ͵ʂ
    • VM͸جຊམͱͤͳ͍ɻམͪͨΒ͙͢ʹͰ΋෮چͤ͞Δɻ


    • ίϯςφͰ͸໰୊͕ى͖ͨΒ͙͢ʹམͱͯ͠ɺ৽͍͠΋ͷΛ࡞Δɻ


    • ͜ΕʹΑΓߴՄ༻ੑͱεέʔϧΞ΢τ͕࣮ݱՄೳ


    • ࣮ࡍʹίϯςφ͕੬͙ͯ͘͢ࢮ͵ɺͱ͍͏ΑΓ΋

    ίϯςφ͕͍ͭࢮΜͰ΋ྑ͍લఏͰઃܭ͠Α͏ɺ

    ͱݴ͏͓࿩ɻ

    View full-size slide

  18. ίϯςφ͸͙͢ࢮ͵ʂ
    • VM͸جຊམͱͤͳ͍ɻམͪͨΒ͙͢ʹͰ΋෮چͤ͞Δɻ


    • ίϯςφͰ͸໰୊͕ى͖ͨΒ͙͢ʹམͱͯ͠ɺ৽͍͠΋ͷΛ࡞Δɻ


    • ͜ΕʹΑΓߴՄ༻ੑͱεέʔϧΞ΢τ͕࣮ݱՄೳ


    • ࣮ࡍʹίϯςφ͕੬͙ͯ͘͢ࢮ͵ɺͱ͍͏ΑΓ΋

    ίϯςφ͕͍ͭࢮΜͰ΋ྑ͍લఏͰઃܭ͠Α͏ɺ

    ͱݴ͏͓࿩ɻ

    ύοέʔδͰ࢝·ͬͨ(BSPPOʹ͸ͦͷલఏ͕ͳ͍

    View full-size slide


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

    View full-size slide


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


    1PE͕ෆ༻ҙʹམͪΔͱɺಓ࿈ΕͰ͍Ζ͍Ζফ͑ͯ͠·͏


    View full-size slide

  21. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ
    • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ


    • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ


    • ։ൃͱӡ༻ͷ੹೚ڥքઢେҠಈ


    • ݱ࣮ VS ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ


    • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ

    View full-size slide

  22. ͕͜͜େม৽Ϋϥ΢υج൫ʢNecoʣҠߦ
    • ίϯςφ͸͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ


    • ΦϨΦϨϑϨʔϜϫʔΫ͸͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ


    • ։ൃͱӡ༻ͷڥքઢେҠಈ


    • ݱ࣮ VS ཧ૝ɻ ࢓༷ܾΊͷ೉͠͞ɻ


    • Πϯϑϥ஌ࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ

    ࢒Γ͸ޙ೔ஊͰ࿩͠·͢ʂ

    View full-size slide

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


    • ͜ͷ਺೥ͰऔΓ૊ΜͰ͖ͨɺ੡඼վળ͕͍͍ײ͡ʹޮ
    ͍ͯΔͧʂ


    • ։ൃͱӡ༻ɺΈͳ͞ΜͲ͏·Θͯ͠·͔͢ʁ

    View full-size slide

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


    View full-size slide