Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Canary Deployments
Search
Yoshiki Nakagawa
September 28, 2016
Technology
0
460
Canary Deployments
Yoshiki Nakagawa
September 28, 2016
Tweet
Share
More Decks by Yoshiki Nakagawa
See All by Yoshiki Nakagawa
Go API クライアントの実装 〜Go Conference に載せれなかったTIPS〜
yyoshiki41
0
580
マルチテナントのアプリケーション実装 〜実践編〜
yyoshiki41
5
1.7k
Tests API
yyoshiki41
0
43
go-gmail-drafts
yyoshiki41
0
760
Graceful Upgrade for Go App
yyoshiki41
0
77
Other Decks in Technology
See All in Technology
不動産tech Product Night#2_AIことはじめ_GA橋本
takehikohashimoto
0
190
Mocking in Rust Applications
taiki45
1
410
ナレッジグラフとLLMの相互利用
koujikozaki
0
420
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
460
Swift Testingのconfirmationを コードリーディング/Dive into Swift Testing confirmation
laprasdrum
2
260
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
1
1.2k
App Router を実プロダクトで採用して見えてきた勘所をちょっとだけ紹介
marokanatani
1
930
ついに出た!OpenAIの最新モデル「o1」って何がすごいの?
minorun365
PRO
3
1k
たった1人からはじめる【Agile Community of Practice】~ソース原理とFearless Changeを添えて~
ktc_corporate_it
1
480
より快適なエラーログ監視を目指して
leveragestech
4
1.4k
OCI で始める!! Red Hat OpenShift / Get Started OpenShift on OCI
oracle4engineer
PRO
1
180
アプリをリリースできる状態に保ったまま 段階的にリファクタリングするための 戦略と戦術 / Strategies and tactics for incremental refactoring
yanzm
6
1.4k
Featured
See All Featured
Debugging Ruby Performance
tmm1
72
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Speed Design
sergeychernyshev
22
430
Into the Great Unknown - MozCon
thekraken
29
1.4k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
For a Future-Friendly Web
brad_frost
174
9.3k
The Pragmatic Product Professional
lauravandoore
31
6.2k
Agile that works and the tools we love
rasmusluckow
327
20k
Ruby is Unlike a Banana
tanoku
96
11k
A better future with KSS
kneath
235
17k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Transcript
Canary Deployments ! Move Fast, Fail Fast (and Small) Sep
/ 26 / 2016 1
AboutMe @yyoshiki41 Yoshiki Nakagawa Infrastructure Engineer, pairs Division Tech »
Golang » Middleware, AWS 2
What is the canary server ? By 4028mdk09 (Own work)
[CC BY-SA 3.0], via Wikimedia Commons 3
Canary Server tl;dr σϓϩΠϓϩϏδϣχϯάΛ͍͖ͳΓ ϓϩμΫγϣϯڥͷશମͰͳ͘ɺઌ ߦͯ͠Ұ෦ʹରͯ͠ߦ͍ɺ ͜Ε͕దԠ͞ΕͨͷΛʮΧφϦΞαʔ όʯͱݺͿɻ Ұ෦ͷΫϥελʹΑΔݕূͰɺࣦഊ࣌ ͷμϝʔδΛগͳ͘͢Δߟ͑ํɻ
ϑΟʔυόοΫΛ͍ͪૣ͘ड͚औΕΔɻ 4
߭ͰͷಟΨεݕʹɺΧφϦΞ͕ ΘΕͨ͜ͱʹ༝དྷ͢Δɻ ͍ΘΏΔ߭ͷΧφϦΞɺ߭ʹ͓ ͍ͯ͠͠ൃੜ͢ΔϝλϯҰࢎԽ ૉͱ͍ͬͨଉΨεಟΨεૣظൃ ݟͷͨΊͷܯใͱͯ͠༻͞Εͨɻຊ छͭͶʹ͍͑ͣͬͯ͞ΔͷͰɺҟৗൃ ੜʹઌۦ͚·ͣ໐͖͕ࢭΉɻͭ· ΓةݥͷΛͱࣖͰ֬ೝͰ͖Δॴ ͕ॏๅ͞ΕɺಟΨεݕʹ༻͍ΒΕ
ͨɻ wikipedia ΑΓ 5
Use Cases 6
Application » มߋͨ͠ΞϓϦέʔγϣϯίʔυΛຊ൪σϓϩΠͯ͠ݕূ͍ͨ͠ » ৽ػೳͷఆ͍ͯ͠ͳ͍όάΛ࠷খݶʹ͍͗ͨ / ෛՙΛݕূ͍ͨ͠ Infra » ৽͍͠ϛυϧΣΞΛࢼ͍ͨ͠
» ϛυϧΣΞͷϓϩϏδϣχϯάมߋલޙͷมԽΛݕূ͍ͨ͠ 7
Use Cases in pairs Ansible commands! $ ansible-playbook -i hosts/pairs-jp/prod
--limit web-canary playbook_pairs/delivery.yml --extra-vars="pkg_dir=v160101010101-10f29c9" That's all! 8
Use Cases in Netflix σϓϩΠαΠΫϧʹΧφϦΞΫϥελͷσϓϩΠؚ͕·Ε͓ͯΓɺ ϨϙʔςΟϯά(Canary analysis report) => શମެ։͢Δ͔൱͔ͷδϟ
οδ (Canary Score) ·Ͱ͕ࣗಈԽ͞Ε͍ͯ·͢ɻ ඦͱ͍͏Α͏ͳنΛӡ༻͍ͯ͘͠͏͑Ͱɺ શࢮઈରʹආ͚ͳ͚ΕͳΒͳ͍͜ͱΛߟ͑ΔͱࣗવͳྲྀΕɻ 9
Development & Deployment Flow ެࣜϒϩά ʮDeploying the Netflix APIʯ 10
Containers Containerͱͷ૬ੑ͕ྑ͍ͷͰɺ Container as a serviceɺCI/CDαʔ ϏεʹΈࠐ·Ε͍ͯΔͷଟ͍ɻ e.g.) Kubernetes 11
Caution ޓΛऔΕ͍ͯͳ͍ͷɺΧφϦΞαʔόͷσϓϩΠ͕ग़དྷͳ͍ɻ e.g.) ৽͍͠APIϦΫΤετΛ͛ΔΫϥΠΞϯτଆͷίʔυؚΉ ! 12
Others ຊ൪ڥ(ಉ)ͰͷݕূΛߦ͍͍ͨ߹ɺ ΧφϦΞαʔόͰͳ͘γϟυʔϓϩΩγΛ༻͍Δख๏ϝδϟʔɻ e.g.) cookpad/Kage 13
Move Fast, Fail Fast (and Small) ߭ (ຊ൪ڥ) ʹɺةݥ͕͍ͬͺ͍Ͱ͢ɻ શ໓Λආ͚ΔҝʹɺΧφϦΞͷॿ͚ΛआΓ·͠ΐ͏
! (ͪΖΜɺΧφϦΞࢮͳͤͳ͍͜ͱ͕ϕετͰ͕͢ɻ) 14