Save 37% off PRO during our Black Friday Sale! »

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

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

0a98ad166f9cdf8d27d92c37438c6e9d?s=128

Manabu Matsuzaki

January 17, 2020
Tweet

Transcript

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

  2. Self Introduction • Nameɿ Manabu Matsuzaki • Work atɿ LINE

    Fukuoka Corporation • Roleɿ SRE • Twitterɿ @matsumana
  3. Agenda • What is Canary Release? • Introduce to CI/CD

    • CI/CD with GitOps • Canary Release with Argo Rollouts
  4. What is Canary Release?

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

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

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

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

    Canarying Releases
 https://landing.google.com/sre/workbook/chapters/canarying- releases/
  9. CI/CD with GitOps

  10. Guide To GitOps • Guide To GitOps
 https://www.weave.works/technologies/gitops/ • ࣗಈԽʹΑΔੜ࢈ੑͷ޲্

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

  12. Canary Release with Argo Rollouts

  13. Argo Rollouts • Argo Rollouts - Overview
 https://argoproj.github.io/argo-rollouts/ • ඪ४ͷDeploymentsϦιʔεʹ͸RollingUpdate΍Recreateͱ͍͏σ

    ϓϩΠઓུ͕ఏڙ͞Ε͍ͯ·͕͢ɺArgo Rollouts͸Rolloutͱݺ͹Ε ΔΧελϜϦιʔεʹΑͬͯɺk8sʹBlue Green΍CanaryͳͲͷ௥ ՃͷσϓϩΠઓུΛఏڙ͠·͢ • Still alpha…
  14. Argo Rollouts’ features • Canary • ίϚϯυʹΑΔखಈPromote • Ұఆ࣌ؒ଴ͬͯࣗಈPromote

  15. Argo Rollouts’ features • Traffic management • ύʔηϯςʔδࢦఆʹΑΔCanary΁ͷτϥϑΟοΫྲྀྔ੍ޚ • ϔομʔϕʔεͷτϥϑΟοΫ੍ޚ

    • τϥϑΟοΫΛϛϥʔϦϯά͠ɺCanaryʹฒߦͯ͠ྲྀ͢
 ʢϨεϙϯε͸ແࢹ͞ΕΔʣ • BlueGreen • etc…
  16. Argo Rollouts’ features • Canary • ৽όʔδϣϯͷϝτϦΫεʹج͍ͮͯࣗಈPromote • APIͷΤϥʔׂ߹ɺΤϥʔϩάͷྔɺetc… •

    KayentaͬΆ͍ • GoogleͱNetflixɺΧφϦΞϦϦʔε෼ੳπʔϧʮKayentaʯΦʔϓϯ ιʔεͰެ։ɻ৽ͨʹσϓϩΠͨ͠ϦϦʔεʹ໰୊͕ͳ͍͔Λࣗಈ෼ ੳ
 https://www.publickey1.jp/blog/18/googlenetflixkayenta.html
  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

  18. Argo CD + Argo Rollouts Ͱ࣮ݱ͢Δ Canary Release with GitOps

    Λߟ͑ͯΈΔ
  19. શମߏ੒ʢྫʣ

  20. Thank you :)