$30 off During Our Annual Pro Sale. View Details »

Canary Release with Argo Rollouts #ふくばねてす / canary-release-with-argo-rollouts

Canary Release with Argo Rollouts #ふくばねてす / canary-release-with-argo-rollouts

Manabu Matsuzaki

January 17, 2020
Tweet

More Decks by Manabu Matsuzaki

Other Decks in Programming

Transcript

  1. Canary Release with Argo Rollouts
    ;͘͹Ͷͯ͢ node-3
    2020/01/15 @matsumana

    View Slide

  2. Self Introduction
    • Nameɿ Manabu Matsuzaki
    • Work atɿ LINE Fukuoka Corporation
    • Roleɿ SRE
    • Twitterɿ @matsumana

    View Slide

  3. Agenda
    • What is Canary Release?
    • Introduce to CI/CD
    • CI/CD with GitOps
    • Canary Release with Argo Rollouts

    View Slide

  4. What is Canary Release?

    View Slide

  5. From `The Site Reliability Workbook`
    • Chapter 16 - Canarying Releases

    https://landing.google.com/sre/workbook/chapters/canarying-
    releases/
    • શମʹҰ౓ʹσϓϩΠ͢Δࣄ͸ɺΤϥʔόδΣοτΛૣ͘ݮΒ͢Ϧ
    εΫ͕͋Δ
    • ࣮ࡍͷτϥϑΟοΫͷҰ෦͚ͩΛ৽όʔδϣϯʹެ։͢Δ
    • มߋ͕࣮ࡍͷτϥϑΟοΫʹ͞Β͞ΕΔͨΊɺϢχοτςετ΍ෛ
    ՙςετͳͲͰ͸ݟ͚ͭΒΕͳ͍໰୊ΛಛఆͰ͖Δ

    View Slide

  6. Introduce to CI/CD

    View Slide

  7. ϦϦʔεͷࣗಈԽ
    • The Site Reliability Workbook - Chapter 16 - Canarying Releases

    https://landing.google.com/sre/workbook/chapters/canarying-
    releases/
    • ϦϦʔε͕ࣗಈԽ͞ΕΔͱɺΑΓසൟʹϦϦʔεͰ͖Δ
    • ϦϦʔε੒Ռ෺ʹόϯυϧ͞ΕΔมߋ͕গͳ͘ͳΓɺόά͕ൃੜ͠
    ͨ৔߹ʹΑΓૣ͘؆୯ʹϩʔϧόοΫͰ͖ΔΑ͏ʹͳΔ
    • ૣ͍ϦϦʔεαΠΫϧʹΑΓɺ৽͍͠ػೳΛૣ͘Ϣʔβʔʹಧ͚Δ

    View Slide

  8. ϦϦʔεͷࣗಈԽ
    • The Site Reliability Workbook - Chapter 16 - Canarying Releases

    https://landing.google.com/sre/workbook/chapters/canarying-
    releases/

    View Slide

  9. CI/CD with GitOps

    View Slide

  10. Guide To GitOps
    • Guide To GitOps

    https://www.weave.works/technologies/gitops/
    • ࣗಈԽʹΑΔੜ࢈ੑͷ޲্
    • GitʹΑΔ҆ఆͨ͠࠶ݱՄೳͳϩʔϧόοΫ
    • GitʹΑΔηΩϡϦςΟ/มߋ௥੻
    • ؂ࠪ޲͚ͷϩάʢ୭͕ɺ͍ͭɺԿΛมߋ͔ͨ͠ɺetc…ʣ
    • ϝϧτμ΢ϯ࣌ɺGit repo(single source of truth)Λݩʹ୹͍࣌ؒͰ෮چՄೳ
    • etc…

    View Slide

  11. Guide To GitOps
    • Guide To GitOps

    https://www.weave.works/technologies/gitops/

    View Slide

  12. Canary Release
    with Argo Rollouts

    View Slide

  13. Argo Rollouts
    • Argo Rollouts - Overview

    https://argoproj.github.io/argo-rollouts/
    • ඪ४ͷDeploymentsϦιʔεʹ͸RollingUpdate΍Recreateͱ͍͏σ
    ϓϩΠઓུ͕ఏڙ͞Ε͍ͯ·͕͢ɺArgo Rollouts͸Rolloutͱݺ͹Ε
    ΔΧελϜϦιʔεʹΑͬͯɺk8sʹBlue Green΍CanaryͳͲͷ௥
    ՃͷσϓϩΠઓུΛఏڙ͠·͢
    • Still alpha…

    View Slide

  14. Argo Rollouts’ features
    • Canary
    • ίϚϯυʹΑΔखಈPromote
    • Ұఆ࣌ؒ଴ͬͯࣗಈPromote

    View Slide

  15. Argo Rollouts’ features
    • Traffic management
    • ύʔηϯςʔδࢦఆʹΑΔCanary΁ͷτϥϑΟοΫྲྀྔ੍ޚ
    • ϔομʔϕʔεͷτϥϑΟοΫ੍ޚ
    • τϥϑΟοΫΛϛϥʔϦϯά͠ɺCanaryʹฒߦͯ͠ྲྀ͢

    ʢϨεϙϯε͸ແࢹ͞ΕΔʣ
    • BlueGreen
    • etc…

    View Slide

  16. Argo Rollouts’ features
    • Canary
    • ৽όʔδϣϯͷϝτϦΫεʹج͍ͮͯࣗಈPromote
    • APIͷΤϥʔׂ߹ɺΤϥʔϩάͷྔɺetc…
    • KayentaͬΆ͍
    • GoogleͱNetflixɺΧφϦΞϦϦʔε෼ੳπʔϧʮKayentaʯΦʔϓϯ
    ιʔεͰެ։ɻ৽ͨʹσϓϩΠͨ͠ϦϦʔεʹ໰୊͕ͳ͍͔Λࣗಈ෼
    ੳ

    https://www.publickey1.jp/blog/18/googlenetflixkayenta.html

    View Slide

  17. manifest fileʢྫʣ
    • https://argoproj.github.io/argo-rollouts/features/canary/
    • https://argoproj.github.io/argo-rollouts/features/analysis/
    • https://gist.github.com/matsumana/0f04c9c8afdccccecb71ad4aaad796d9

    View Slide

  18. Argo CD + Argo Rollouts
    Ͱ࣮ݱ͢Δ
    Canary Release with GitOps
    Λߟ͑ͯΈΔ

    View Slide

  19. શମߏ੒ʢྫʣ

    View Slide

  20. Thank you :)

    View Slide