Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
SLO策定とアラート設定までの長い道のり
Shin'ya Ueoka
March 11, 2021
Technology
6
2.6k
SLO策定とアラート設定までの長い道のり
CloudNative Days Spring 2021 ONLINE
でお話したときの資料です
https://event.cloudnativedays.jp/cndo2021/talks/201
Shin'ya Ueoka
March 11, 2021
Tweet
Share
More Decks by Shin'ya Ueoka
See All by Shin'ya Ueoka
技術書典12協賛企業サイボウズゲストトーク
ueokande
0
85
サービス間をテストするフレームワーク集
ueokande
0
120
kintone.comを支える技術
ueokande
0
140
オンラインイベントを 半年運営して気づいたこと
ueokande
0
65
インフラ開発チームがプロダクトチームに体験入部したはなし
ueokande
1
450
kintone.comのAWS移行と その舞台裏
ueokande
4
2.4k
OSSでキレイな本を 作りたい話
ueokande
0
220
サイボウズとOSSの付き合い方
ueokande
0
700
究極のInfrastructure as Codeを目指して
ueokande
6
4.2k
Other Decks in Technology
See All in Technology
GitHub Codespaces が拡げる開発環境、いつでもどこでも Visual Studio Code で!
dzeyelid
0
160
証明書って何だっけ? 〜AWSの中間CA移行に備える〜
minorun365
3
2k
Periodic Multi-Agent Path Planning
hziwara
0
110
ラズパイとGASで加湿器の消し忘れをLINEでリマインド&操作
minako__ph
0
140
スクラム導入して変わったチーム、組織のありかた
yumechi
0
130
Dev Containers ことはじめ - 失敗から学ぶ開発環境運用法
streamwest1629
0
310
OpenShiftのリリースノートを整理してみた
loftkun
2
260
NGINXENG JP#2 - 3-NGINX Plus・プロダクトのアップデート
hiropo20
0
190
「一通りできるようになった」その先の話
hitomi___kt
0
110
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
oracle4engineer
PRO
0
120
Cloudflare Workersで動くOG画像生成器
aiji42
1
470
2022年に起きたフロントエンドの変化
sakito
29
17k
Featured
See All Featured
It's Worth the Effort
3n
177
26k
Reflections from 52 weeks, 52 projects
jeffersonlam
338
18k
The World Runs on Bad Software
bkeepers
PRO
59
5.7k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
We Have a Design System, Now What?
morganepeng
37
5.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Producing Creativity
orderedlist
PRO
335
37k
Stop Working from a Prison Cell
hatefulcrawdad
263
18k
The Pragmatic Product Professional
lauravandoore
21
3.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
63k
Imperfection Machines: The Place of Print at Facebook
scottboms
254
12k
Transcript
SLOࡦఆͱΞϥʔτઃఆ·Ͱͷ ͍ಓͷΓ αΠϘζגࣜձࣾ ্Ԭ ਅ (@ueokande) CloudNative Days Spring 2021
Online
Me • ্Ԭ ਅ (@ueokande) • αΠϘζͰDevOpsͯ͠·͢ • kintone.comͷ։ൃɾӡ༻ •
ٳOSSΛ࡞ͬͨΓจॻΛॻ͍ͨΓ 2
kintone • ۀγεςϜΛ؆୯ʹ࡞ΕΔB2B͚αʔϏε • ࠃ֎18,000+ࣾͰಋೖ • USࢢ͚ʹʮkintone.comʯͱ͍͏ ϒϥϯυͰల։ͯ͠AWS্Ͱӡ༻ 3
ࠓ͢͜ͱ • US͚kintoneͷ SLO ͱ Ξϥʔτ ʹؔ͢ΔऔΓΈ • kintone.comΛAWS্Ͱϩʔϯν͔ͯ͠ΒݱࡏʹࢸΔ·Ͱɺ SLOɾΞϥʔτΛԿ͔ݟ͖ͯ͠·ͨ͠
• Ͳ͏͍ͬͨ؍Ͱվળͯ͠ɺͦͷ݁ՌͲ͏ͳ͔ͬͨΛ͓͠·͢ 4
ҎલͷSLOͱΞϥʔτ 5
SLO/SLI/SLA͓͞Β͍ 6 ݅Λຬͨͤͳ͍ͱ͖ ԿΛ͢Δ͔ͷ߹ҙ αʔϏεͷ৴པੑͷ ࢦ͖͢ඪ SLO Service Level Objective
SLI Service Level Indicator SLA Service Level Agreement αʔϏεͷ৴པੑΛ ද͢ࢦඪ ྫ: 30ؒͷϦΫΤετޭ99.9% ྫ: 30ؒͷϦΫΤετޭ ྫ: ϦΫΤετޭ99%ΛԼճΕ શֹฦۚ
ҎલͷkintoneͷSLOͱΞϥʔτ • kintone͕ར༻Ͱ͖Δ͔൱͔ʢՔಇʣʹணͨ͠SLO • ੑೳɾεϧʔϓοτͳͲɺػೳ໘Ϣʔβʔࢹͷࢦඪͳ͔ͬͨ • ͦΕʹجͮ͘Ξϥʔτઃఆ͍ͯ͠ͳ͍ 7
༗༻ͳSLO͕ͳ͍ͱ… • దͳSLOࢦඪ͕ͳ͘Ξϥʔτֻ͚ʹ͍͘ • ۓٸରԠ͕ඞཁ͔ɺνϡʔχϯάඪɺλεΫͷ༏ઌ͕ܾΊʹ͍͘ 8 ὸʮͳΜ͔LJOUPOFͷද͕ࣔΊͬͪΌ͍Μ͚ͩͲʯ
SLOɾΞϥʔτΛݟ͖͔͚ͬ͢ • ࠃͷࣗࣾΠϯϑϥͰఏڙ͍ͯͨ͠US൛kintoneΛAWSʹ͓Ҿӽ͠ • ΞʔΩςΫνϟΛ৽͠ɺSLOɾΞϥʔτγεςϜݟ͢νϟϯε 9
SLOɾΞϥʔτ (v1) 10
SLOɾΞϥʔτ (v1) • AWS൛kintone.comͷϩʔϯνલʹSLOͱΞϥʔτΛઃఆ • ओཁͳػೳʢAPIʣʹର͢Δ͚ࣾͷSLO • ҎલͷSLOʹج͖ͮɺμϯλΠϜΛߟྀͨ͠SLOΛઃఆ 11 Ϩίʔυߋ৽ɺΞϓϦ࡞ɺ…
• μϯλΠϜʹجͮ͘SLOΛܾΊΔ SLO (v1) ͷྫ • API͝ͱͷμϯλΠϜΛఆٛ 12 ͋ΔAPI͕5ΟϯυͰ͍ͣΕ͔ͷج४Λ͑ΕμϯλΠϜ •
ΟϯυͷΤϥʔ݅N݅Ҏ্ɺΤϥʔϨʔτ͕M%Ҏ্ • ΟϯυͷԠ࣌ؒXύʔηϯλΠϧ͕YඵҎ্ ͋ΔAPIͷ݄ؒՔಇ͕99.9%
μϯλΠϜͱSLO • APIͷ݄ؒՔಇ͕99.9% = ݄ؒμϯλϜ43 13 5min. 30day × ×
××× ×× ××××××× ××× × ×× × 200500 ΤϥʔόδΣοτ
Ξϥʔτ (v1) • μϯλΠϜͷఆٛʹج͍ͮͨΞϥʔτΛͦΕͧΕͷAPIʹઃఆ 14 5ΟϯυͰ͍ͣΕ͔ͷᮢʹୡ͢ΔͱΞϥʔτ • ΟϯυͷΤϥʔ݅N݅Ҏ্ɺΤϥʔϨʔτ͕M%Ҏ্ • ΟϯυͷԠ࣌ؒXύʔηϯλΠϧ͕YඵҎ্
݁Ռ • SLOɾΞϥʔτ (v1) Λ͠Β͘ӡ༻ͯ͠՝͕͍͔ͭ͘ݟ͔ͭͬͨ • Ξϥʔτ͕աහ͗͢Δ • Ξϥʔτج४ͷఆ͕ٛᐆດʹͳΔ •
γϯϓϧ͡Όͳ͍ 15
աහ͗͢ΔΞϥʔτʛΞϥʔτ (v1) ͷ݁Ռ • Ξϥʔτͷج४͕ඇৗʹաහͩͬͨ • ϦΫΤετͷগͳ͍ػೳεύΠΫͰݦஶ • աහա͗ΔΞϥʔτνʔϜϝϯόʔͷ݈߁ঢ়ଶʹӨڹ͢Δ 16
Ξϥʔτج४͕ᐆດʹʛΞϥʔτ (v1) ͷ݁Ռ • ʮաහ͗͢ΔΞϥʔτʯͷ࣍ͷΞΫγϣϯᮢͷ؇ • ϩʔϯνޙ͠Β͘ɺΞϥʔτͷௐΛ܁Γฦͨ͠ • ௐΛ܁Γฦ͍ͯ͠Δͱʮ͜ͷᮢͲ͏͍͏ࠜڌͰܾΊ͚ͨͬʁʯ ͱɺج४ͷҙਤ͕Θ͔Βͳ͘ͳΔ͜ͱ
17
γϯϓϧ͡Όͳ͍ʛΞϥʔτ (v1) ͷ݁Ռ • ՔಇܭࢉͷͨΊʹμϯλΠϜͱ͍͏֓೦Λಋೖ • μϯλΠϜɺͲΕ͘Β͍αʔϏεΛར༻Ͱ͖ͳ͘ͳ͔ͬͨͷ ίϛϡχέʔγϣϯʹ༗༻ • ҰํͰSLO࣮ͷूܭ͕ෳࡶͩͬͨΓɺΞϥʔτ͕ෳࡶʹ
18
SLOͱΞϥʔτͷݟ͠ • SLOɾΞϥʔτ͕ਖ਼͘͠ػೳͯ͠ͳ͍͜ͱʹؾ͘ • ਖ਼͘͠ͳ͍SLOϢʔβʔʹՁΛಧ͚ΒΕͳ͍ • ਖ਼͘͠ͳ͍ΞϥʔτϝϯόʔͷϞνϕʔγϣϯʹؔΘΔ • SLOɾΞϥʔτΛࠜຊతʹݟ͢͜ͱʹ (v2)
19
SLOɾΞϥʔτ (v2) 20
The Site Reliability Workbook • Site Reliability Engineeringͷଓฤ • ΑΓ࣮ફతͳӡ༻ํ๏ʹϑΥʔΧε
• ͜ͷຊΑΓSLOͱΞϥʔτΛݟ͠ 21
ͳͥSLO͕ඞཁ͔ʁ • SLOΛܾΊΔ͜ͱͰσʔλυϦϒϯͳίϛϡχέʔγϣϯ͕Ͱ͖Δ • ͜Εো͔൱͔ • ύϑΥʔϚϯενϡʔχϯάͷج४ • λεΫͷ༏ઌ •
৴པੑػೳͰ͋Γސ٬ʹಧ͚ΒΕΔՁ 22 SLO: ։ൃɺSREɺεςʔΫϗϧμʔͰ߹ҙ͢ΔҰ؏ͨ͠ඪ
SLO (v2) • SLO (v1) ͷলΛͱʹSLO (v2) Λ࠶ઃఆ • ʮkintoneΛշదʹ͑Δ͔ʯߟ͑ͯج४Λߟ͑Δ
• ΤϥʔϨʔτɾϨεϙϯελΠϜΛݸʑʹγϯϓϧͳSLOΛઃఆ 23 • ͋ΔAPIͷɺ1ϲ݄ͷϦΫΤετޭ͕M% • ͋ΔAPIͷɺ1ϲ݄ͷϦΫΤετͷX%͕Ԡ࣌ؒYඵະຬ
μογϡϘʔυʹΑΔSLOୡͷՄࢹԽ • Ҏલ (v1) ݄ʹSLOͷ࣮Λܭࢉ͢Δ͚ͩͩͬͨ • ݄ͷ్தͰΓͷΤϥʔόδΣοτ֬ೝͰ͖ͳ͔ͬͨ • ৽͍͠SLOݱࡏͷୡΛμογϡϘʔυ্ʹՄࢹԽ 24
SLOμογϡϘʔυͷڞ༗ • ΈΜͳ͕ݟ͑ΔॴʹݱࡏͷSLO࣮Λදࣔ 25
SLOͱΞϥʔτ • ͳͥγεςϜʹΞϥʔτ͕ඞཁ͔ʁ • োΛ͍ͪૣ͘ؾ͖͍ͨ = SLOΛҧ͢Δલʹम෮͍ͨ͠ • SRE߹ҙͨ͠ΤϥʔόδΣοτΛશྗͰकΔ͖ •
ΤϥʔόδΣοτΛ͍ΔલʹোΛݕͰ͖ΔΞϥʔτ͕ඞཁ 26
όʔϯϨʔτʹجͮ͘ΞϥʔτʛΞϥʔτ (v2) • όʔϯϨʔτ1 = SLOͷظؒͰΤϥʔόδΣοτΛ͍Δ • ΤϥʔόδΣοτΛ͍ΔͷোΛؾ͘ΞϥʔτΛֻ͚Δ 27 ͨͱ͑30
όʔϯϨʔτ: ΤϥʔόδΣοτͷফඅΛද͢ࢦඪ
όʔϯϨʔτͱΤϥʔόδΣοτͷؔ 28 όʔϯϨʔτ2 15ͰΤϥʔόδΣοτΛ ͍Δ όʔϯϨʔτ10 3ͰΤϥʔόδΣοτΛ ͍Δ ΤϥʔόδΣοτফඅྔ 0%
20% 40% 60% 80% 100% ܦա 0 5 10 15 20 25 30 όʔϯϨʔτ1 30ͰΤϥʔόδΣοτΛ ͍Δ
• SRWBʹҎԼͷ2ͭͷόʔϯϨʔτ͔Βελʔτ͢ΔͱΑ͍ͱ͋Δ • SLO͕1ϲ݄ϦΫΤετޭ99.9%ͷͱ͖ͷΞϥʔτͷྫ όʔϯϨʔτʹجͮ͘Ξϥʔτͷᮢ 29 ΤϥʔόδΣοτ ফඅྔ Οϯυ όʔϯϨʔτ
2% 1H 14.4 5% 6H 6 APIͷ1࣌ؒͷΤϥʔϨʔτ > (14.4 * 0.001) APIͷ6࣌ؒͷΤϥʔϨʔτ > (6 * 0.001)
SLOɾΞϥʔτ (v2) ͷ݁Ռ • ΤϥʔόδΣοτΛ͍Βͣʹ͙͢ʹऩଋ͢ΔোʢGCʹΑΔ ԆͳͲʣͰؒى͜͞ΕΔ͜ͱ͕ݮͬͨ • μογϡϘʔυʹΑΓνʔϜͰSLOͷҙ͕ࣝߴ·ΓɺΞϥʔτ ͱͷؔੑΘ͔Γ͘͢ͳͬͨ •
γϯϓϧͳSLOͰෳࡶͳ࣮ίϛϡχέʔγϣϯίετ͕ݮͬͨ 30
Lesson Learned SLOɾΞϥʔτվળ͔Βͷֶͼ
୭ͷͨΊͷSLO͔ • SLOΛୡ͢Δ͜ͱͰͤʹͳΔਓʢϢʔβʔʣ͕͍Δͣ • ӡ༻ͷಓ۩͚ͩͰͳ͘ɺͦͷഎܠʹαʔϏεͷར༻ऀ͕͍Δ • ϢʔβϏϦςΟ৴པੑΛߟྀͯ͠SLOΛݟͦ͏ 32
γϯϓϧͰ͋Ε • ෳࡶͳSLOίϛϡχέʔγϣϯͰোͱͳΔ • ޱ಄Ͱਓʹઆ໌Ͱ͖Δ͘Β͍ͷγϯϓϧ͕͞େࣄ • ෛ࠴ʹͳΔલʹSLOΛৼΓସ͑ΕΔΑ͏ʹ͠Α͏ 33
ΈΜͳ͕ݟ͑ΔॴʹՄࢹԽ • ݟ͑Δॴಋઢ͕ͳ͍ͱ୭ҙࣝ͠ͳ͍ • ՄࢹԽʹΑΓɺϝϯόʔશһ͕SLOΛҙࣝ͢Δ͜ͱ͕૿͑ͨ • ݱࡏνʔϜͰμογϡϘʔυΛݟΔձΛ2िؒʹ1ճ։࠵ 34
σʔλʹجͮ͘ίϛϡχέʔγϣϯ • λεΫͷ༏ઌSLOʹج͍ܾͮͯΊΒΕΔΑ͏ʹ • ։ൃɺSREɺεςʔΫϗϧμʔؒͰҰ؏ͨ͠ඪΛઃఆͰ͖Δ • νϡʔχϯάΛ͢Δͱ͖ɺצʹཔΒͣσʔλͰஅ͠Α͏ 35
͜Ε͔ΒͷνϟϨϯδ • kintoneͷ։ൃνʔϜͷSLOΛΊΔ׆ಈ • SLOະୡͳͷʹΞʔΩςΫνϟతʹνϡʔχϯά͕͍͠έʔε • Ϣʔβʔͷ͍ํ࣍ୈͰ༻ҙʹSLOΛഁΕΔέʔε 36
·ͱΊ • SLOʹΑͬͯҰ؏ͨ͠σʔλυϦϒϯͳίϛϡχέʔγϣϯ͕Ͱ͖Δ • ఆظతSLOɾΞϥʔτͷվળͰͷֶͼ͕͋ͬͨ • ୭ͷͨΊͷSLO͔ʁ • γϯϓϧͰ͋Ε •
ΈΜͳ͕ݟ͑ΔॴͰՄࢹԽ • σʔλʹجͮ͘ίϛϡχέʔγϣϯ • ͜Ε͔ΒSLOΛ͍͍ͬͯͧ͘💪 37