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

Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ

Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ

Avatar for Kaz Watanabe

Kaz Watanabe

November 19, 2025
Tweet

More Decks by Kaz Watanabe

Other Decks in Technology

Transcript

  1. ݱߦͷγεςϜͷ՝୊ 2013 ख୳ΓͰࣗࣾ։ൃΛ։࢝ ྖҬΛ޿֦͛ͭͭେ 202X جװγεςϜͷϦϓϨʔε։࢝ ʜ ʜ ԶJOIN 6

    2024/2 ߏ૝։࣮࢝ূ؀ڥߏங 2025/2 2023/12 2024/6 ࣮ূ։ൃ։࢝ 2025/11 ຊ։ൃ։࢝ ୈҰ஄ϦϦʔε ʜ
  2. 9 • σϓϩΠ୲౰ऀɹ🔴ӡ༻ϝϯόͷΈ🔴 ➡ 🟢νʔϜϝϯόશһ🟢 Greenଆ࡞੒·Ͱ, B/G flip͸ݖݶ͕͋Δਓʹݶఆ • σϓϩΠ࣌ؒɹ🔴30෼ʙ਺࣌ؒ🔴

    ➡ 🟢10෼ఔ౓🟢 • σϓϩΠස౓ɹ🟡૊৫తͳ࢓૊Έͷ໰୊΋͋Γɺվળ͕ඞཁ🟡 ؀ڥతʹ͸ରԠࡁΈ ຊ൪؀ڥҎ֎͸ߴස౓ͰσϓϩΠΛ࣮ࢪ • ো֐ରԠ(੾Γ໭͠)ɹ🔴30෼ʙ਺࣌ؒ🔴 ➡ 🟢5෼🟢 ࣗಈԽͷޮՌ Ͱ΋·ͩෆ͕҆… 😰
  3. 11 • Blueʢݱߦ؀ڥʣͱGreenʢ৽؀ڥʣΛ༻ҙ • τϥϑΟοΫΛॠ࣌ʹ੾Γସ͑ • ໰୊͕͋Ε͹͙͢໭ͤΔ • ಋೖͷૂ͍ μ΢ϯλΠϜθϩ

    ॠ࣌ͷϩʔϧόοΫ ΑΓ҆શͳϦϦʔε #(σϓϩΠ blue(v1.0.0) 100% green(v1.0.1) 0% چblue(v1.0.0) 0% ৽blue(v1.0.1) 100%
  4. 14 • Green؀ڥ͸৽͘͠Ͱ͖ͨ؀ڥ • σϓϩΠ͸੒ޭͯ͠΋ɺ࣮ࡍʹಈ͔͘͸ผ • ؀ڥม਺ͷઃఆϛε • ֎෦αʔϏε΁ͷ઀ଓ໰୊ •

    σʔλϕʔεϚΠάϨʔγϣϯ • खಈ֬ೝ͸ඞਢ͕ͩɺେ͖ͳ໰୊͸ࣗಈͰݕ஌͍ͨ͠ #(σϓϩΠಛ༗ͷ՝୊
  5. 18 runn ( means "Run N". is pronounced /rʌ́n én/.

    ) is a package/tool for running operations following a scenario. As a tool for scenario based testing. As a test helper package for the Go language. As a tool for workflow automation. Support HTTP request, gRPC request, DB query, Chrome DevTools Protocol, and SSH/Local command execution OpenAPI Document-like syntax for HTTP request testing. Single binary = CI-Friendly. SVOO https://github.com/k1LoW/runn https://zenn.dev/katzumi/books/runn-tutorial https://zenn.dev/k1low/books/runn-cookbook
  6. 19 • ίʔυϓογϡ • CIʢϢχοτςετɺϏϧυʣ • Green؀ڥ΁σϓϩΠ • • ੒ޭ

    → ௨஌ • ࣦഊ → Ξϥʔτ Ͳ͜Ͱ΍Δʁ εϞʔΫςετʂ
  7. 20 • CI ίʔυ඼࣭ • CD σϓϩΠࣗಈԽ • B/GσϓϩΠ ҆શͳ੾Γସ͑

    • εϞʔΫςετ ؀ڥͷ݈શੑ֬ೝ 🆕 ࣗಈԽͰԿΛ୲อ͢Δ͔ʁ
  8. 23 $% ֤؀ڥ΁ͷσϓϩΠͷࣗಈԽ ί υ ͷ ν Ϋ Ξ ΢

    τ ί ϯ ς φ Ϩ δ ε τ Ϧ ʹ ϩ ά Π ϯ λ ά ໊ Λ औ ಘ ί ϯ ς φ Λ build & push λ ά ໊ ͔ Β Ϧ Ϗ δ ϯ ໊ Λ ࡞ ੒ Azure ϩ ά Π ϯ ࣮ ߦ த ͷ Ϧ Ϗ δ ϯ Λ औ ಘ ৽ ͠ ͍ Ϧ Ϗ δ ϯ Λ σ ϓ ϩ Π (traf c: 0%) Azure ϩ ά Π ϯ ৽ چ ͷ Ϧ Ϗ δ ϯ ͷ traf c Λ ೖ ସ ͑ Azure ϩ ά Π ϯ چ Ϧ Ϗ δ ϯ Λ ࡟ আ Build Deploy Flip Deactivate ঝೝ ঝೝ ϦϦʔελάΛ࡞੒ Ұ୴͜͜Ͱఀࢭ ε Ϟ Ϋ ς ε τ Test