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
Webサービスの品質とは何か?アラート地獄と監視の失敗、サービスレベル目標設計 から学んだ3つの答え
Search
takuya542
September 07, 2018
Technology
5
7.7k
Webサービスの品質とは何か?アラート地獄と監視の失敗、サービスレベル目標設計 から学んだ3つの答え
Webサービスの品質とは何か?アラート地獄と監視の失敗、サービスレベル目標設計 から学んだ3つの答え
takuya542
September 07, 2018
Tweet
Share
More Decks by takuya542
See All by takuya542
爆速成長を続けるタイミーを支える システム基板とAWSの関係
takuya542
0
300
タイミーを支えるプラットフォームエンジニアリング・成果指標設計から考える組織作り事例の紹介
takuya542
1
4.1k
Security / AuditabilityをSREチームの成果指標に加えた話
takuya542
0
1.9k
セキュリティパッチを支える サーバ家畜化技術の紹介
takuya542
1
1.6k
継続的な脆弱性検知とパッチマネジメント手法の紹介
takuya542
0
2.9k
継続的な脆弱性検知とパッチマネジメント手法の紹介
takuya542
0
870
技術エントロピー増大との戦い。エウレカSREチームの事例
takuya542
0
210
投稿監視マイクロサービスの継続的なデプロイと構成変更の実現手段の紹介
takuya542
0
650
pairsのプロビジョニング要件とInfrastructure as Code実例
takuya542
0
440
Other Decks in Technology
See All in Technology
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
400
AIとともに進化するエンジニアリング / Engineering-Evolving-with-AI_final.pdf
lycorptech_jp
PRO
0
110
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
310
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
140
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
2.2k
M3 Expressiveの思想に迫る
chnotchy
0
110
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
640
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
3.6k
Github Copilot エージェントモードで試してみた
ochtum
0
110
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
580
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
5
520
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
350
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Agile that works and the tools we love
rasmusluckow
329
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Optimizing for Happiness
mojombo
379
70k
A better future with KSS
kneath
239
17k
Six Lessons from altMBA
skipperchong
28
3.9k
Bash Introduction
62gerente
614
210k
Producing Creativity
orderedlist
PRO
346
40k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
Copyright © 2009-2018 eureka, inc. All rights reserved. Takuya Onda
/ eureka, Inc. 2018-09-07 Builderscon Tokyo WebαʔϏεͷ࣭ͱԿ͔ʁ ΞϥʔτࠈͱࢹͷࣦഊɺαʔϏεϨϕϧඪઃܭ ͔ΒֶΜͩ3ͭͷ͑
Introduction ▪ Takuya Onda – eureka, Inc. – SRE team
Head
None
About Us - IAC/Match Group
Agenda ▪ WebΞϓϦέʔγϣϯࢹʹ·ͭΘΔٕज़τϨϯυ ▪ ࢹͷతͱɺݱͷ՝ͱ ▪ ΤϨΧͰͷࣦഊ / ཱͯ͠ࣄྫͷհ ▪
ࢹͷஈ֊త৽ɾ࣮ྫհ
8FCΞϓϦέʔγϣϯࢹʹ ·ͭΘΔٕज़τϨϯυ
ύϒϦοΫΫϥυͷ಄ ▪ ΑΓૣ͘ɺڧྗͳϚγϯϦιʔεͷௐୡ͕༰қʹ ▪ αʔόΛ͍ࣺͯΔલఏͷΞʔΩςΫνϟ
ࢹπʔϧͷॆ࣮ ▪ SaaSܕαʔόʔࢹαʔϏε ▪ ΠϯςάϨʔγϣϯͷॆ࣮
DevOpsɾSRE ▪ ߴ͍։ൃੜ࢈ੑͱ҆ఆӡ༻ͷཁٻ ▪ Culture, Automation, Lean, Measurement, Sharing
γεςϜͷෳࡶԽ ▪ ϚΠΫϩαʔϏεɾSPAɾσόΠεͷଟ༷Խ ▪ ඇػೳཁ݅ͷࢹͷχʔζ
͜Μͳܦݧ͋Γ·ͤΜ͔ʁ
▪ ʮ4UBUVT͕૿͑ͯ·͢ʯ – ຖ͜ͷ࣌ؒͰͯΔΑͳɺɺ – ͑Β͍ਓʮ͜ͷΞϥʔτେৎͳͷʁʯ ▪ ʮ%#ͷίωΫγϣϯ͕YYYΛ͑·ͨ͠ʯ – ͑ɺͲ͏͢Ε͍͍ͷʁࠓϐʔΫλΠϜͩΑʁ
– εύΠΫʁϝϯςೖΕΔʁͱΓ͋͑ͣ؍ɺɺʁ ▪ ʮ999ͷΤϥʔ͕ൃੜ͠·ͨ͠ʯ – ੲ͔Β͍Δਓʮ͜Εແࢹͯ͠0,ʯ – ࠷ۙೖͬͨਓʮʜʂʁʂʁʯ Ξϥʔτ͋Δ͋Δ
Ξϥʔτ͋Δ͋Δ ▪ ຊʹҟৗͳͷ͔Θ͔Βͳ͍ ▪ Ξϥʔτ͕ߦಈʹ݁ͼ͔ͭͳ͍ ▪ ਖ਼͍͠ํʹ͔͍ͬͯΔ͔Θ͔Βͳ͍ (࣭ͱ?)
γεςϜΛࢹ͢Δతͱ ▪ Ϣʔβʔͷຬ͢ΔੑೳཁٻʹԠ͍͑ͨ ▪ ͦͷͨΊʹɺଈ࣌ʹγεςϜҟৗΛݕ͍ͨ͠ ▪ ҟৗʹଈ࠲ʹରԠ͠ɺҟৗൃੜظؒΛ࠷খԽ͍ͨ͠
γεςϜΛࢹ͢Δతͱ ▪ Ϣʔβʔͷຬ͢ΔੑೳཁٻʹԠ͍͑ͨ ▪ ͦͷͨΊʹɺଈ࣌ʹγεςϜҟৗΛݕ͍ͨ͠ ▪ ҟৗʹଈ࠲ʹରԠ͠ɺҟৗൃੜظؒΛ࠷খԽ͍ͨ͠ ϢʔβͷٻΊΔ࣭ʹԠ͑Δͷ͕Ձ ࢹతͷͨΊͷखஈ
ΞΫγσϯτฏৗͨΕ By SRE Workbook ▪ ࣦഊͷίετΛ͑ΔͨΊʹૣΊʹಈ͘ͷ͕େࣄ ▪ MTTRʢฏۉ෮چ࣌ؒ)͕͍΄Ͳ։ൃऀෛ୲খ͍͞ ▪ ൃݟޙʹͳΔ΄Ͳम෮͕͍͠
ΤϨΧͰͷࢹͷࣦഊྫ
ΤϨΧͰͷࢹͷࣦഊ ▪ Ξϥʔτ͕ߦಈʹ݁ͼ͔ͭͳ͍ ▪ ࠓରԠ͖͢ͳͷ͔அͰ͖ͳ͍
Ξϥʔτ͕ߦಈʹ݁ͼ͔ͭͳ͍ ▪ 1ɿͱΓ͋͑ͣಈ͍ͯΔ ▪ 2ɿৗʹҟৗ ▪ 3ɿԿͰ͖ͳ͍
Ξϥʔτ͕ߦಈʹ݁ͼ͔ͭͳ͍ ▪ 1ɿͱΓ͋͑ͣಈ͍ͯΔ ▪ 2ɿৗʹҟৗ ▪ 3ɿԿͰ͖ͳ͍ • ϐʔΫλΠϜʹϩʔΞϕ͕ۤ͘͠ͳΔDB •
DynamoͷΩϟύγςΟ͕ΓΘ͔ͣ • ຖ࣌CPU͕ுΓ͘ϝʔϧ৴αʔό
Ξϥʔτ͕ߦಈʹ݁ͼ͔ͭͳ͍ ▪ 1ɿͱΓ͋͑ͣಈ͍ͯΔ ▪ 2ɿৗʹҟৗ ▪ 3ɿԿͰ͖ͳ͍ • ຖ٧·ΔδϣϒΩϡʔ •
ৗʹྲྀΕͯΔΞϓϦέʔγϣϯΤϥʔϩά • σϓϩΠͷͨͼൃੜ͢ΔΤϥʔ
Ξϥʔτ͕ߦಈʹ݁ͼ͔ͭͳ͍ ▪ 1ɿͱΓ͋͑ͣಈ͍ͯΔ ▪ 2ɿৗʹҟৗ ▪ 3ɿԿͰ͖ͳ͍ • 5xxΤϥʔ૿͑ͯΔ͚ͲԿ͜Εʁ(༷ࢠݟ) •
ετϨʔδܥͷανϡϨʔγϣϯ • ߏ࠶ݱੑ͕ͳ͍SPOFͳαʔό
ࠓରԠ͖͔͢அͰ͖ͳ͍ ▪ ݁ہ͜ΕϢʔβӨڹ͋Μͷʁ ▪ ͲΕ͘Β͍Өڹ͋Μͷʁ ▪ ͦͦఆྔԽͰ͖Μͷʁ ▪ ͜Ε߃ٱରԠ͠ͳ͍ͱϚζΠͷʁ ▪
ࣄۀࢪࡦΑΓ༏ઌ͢Μͷʁ
ࣾͷงғؾʹӨڹ ΞϥʔτݟΖͬͯݴ͏͚Ͳҙຯͳ͘Ͷʁ ͏ͪͷγεςϜɺຊʹେৎͳͷʁʁ Ͳ͏ͤΈΜͳؾʹͯ͠ͳ͍͍͍͠ ࠶ൃࢭɺ͍ͭԿมΘΒͳ͍͡ΌΜ
Ͳ͏ཱ͔͔ͬͯͪͬͨ
ํ ▪ 1ɿఆྔඪΛઃఆ͢Δ ▪ 2ɿΞϥʔτ = ଈ࠲ΞΫγϣϯͱ͢Δ ▪ 3ɿશମΛγϯϓϧʹཧ͢Δ ▪
4ɿࢹ͕ϥΫͳΞʔΩςΫνϟʹ͢Δ ▪ 5ɿҟৗݕͱύϑΥʔϚϯεඪΛ۠ผ͢Δ
1ɿఆྔඪΛઃఆ͢Δ ▪ αʔϏεϨϕϧࢦඪ (SLI) Λఆٛ ▪ αʔϏεϨϕϧඪ (SLO)Λઃఆ ▪ SLOΛΞϥʔτᮢͱλεΫ༏ઌͷج४ʹ
1ɿఆྔඪΛઃఆ͢Δ ▪ αʔϏεϨϕϧࢦඪ (SLI) Λఆٛ ▪ αʔϏεϨϕϧඪ (SLO)Λઃఆ ▪ SLOΛΞϥʔτᮢͱλεΫ༏ઌͷج४ʹ
• SLI = ޭϦΫΤετ / ૯ϦΫΤετ • SLO = SLI > 99.95 (ظؒɿ1िؒ)
2ɿΞϥʔτ = ଈ࠲ΞΫγϣϯͱ͢Δ ▪ ຊʹΞΫγϣϯ͕ඞཁͳͷ͚ͩΞϥʔτ໐Β͢ ▪ ଈ࠲ʹରԠ͕ՄೳͳΞʔΩςΫνϟʹม͍͑ͯ͘ • SLOະୡͷཁҼͱͳΔͷ •
ରԠʹ͔͔࣌ؒΔܥ (ετϨʔδܥͱ͔)
2ɿΞϥʔτ = ଈ࠲ʹΞΫγϣϯ͕ඞཁͳࣄͱ͢Δ ▪ ຊʹΞΫγϣϯ͕ඞཁͳͷ͚ͩΞϥʔτ໐Β͢ ▪ ଈ࠲ʹରԠ͕ՄೳͳΞʔΩςΫνϟʹม͍͑ͯ͘ • ଈ࠲ʹαʔόϦιʔεΛ૿ڧ /
ަͰ͖Δ • LB / API / Batch / DB / Cache / etc,,
3ɿશମΛγϯϓϧʹཧ͢Δ ▪ πʔϧͷ౷Ұ ▪ ࣭ͷఆٛᮢΛҰݩԽ • ࢹʹར༻͢ΔπʔϧΛ͠΅Δ • ࢹઃఆΛίʔυԽ͢Δ
3ɿશମΛγϯϓϧʹཧ͢Δ ▪ πʔϧͷ౷Ұ ▪ ࣭ͷఆٛᮢΛҰݩԽ • SLI / SLOΛ౷Ұ •
Threshold / Rate / Change / Anomaly
4ɿࢹ͕ϥΫͳΞʔΩςΫνϟʹ͢Δ ▪ αʔόͷަ͕Χϯλϯ ▪ ࣗલओٛΛΊΔ ▪ ࣄۀͱӡ༻(ࢹίετ)Λൺྫͤ͞ͳ͍
4-1ɿࢹ͕ϥΫ ~ αʔόަ͕Χϯλϯ ▪ ҟৗͷ͋Δαʔό͙ࣺͯ͢Δ – ίʔυ͔ΒϏϧυ͞ΕͨΠϝʔδ͕͙͢ೖՄೳͳঢ়ଶ Scheduling Rotate API
Worker
4-2ɿࢹ͕ϥΫ ~ ࣗલओٛΛΊΔ ▪ ڊਓ(AWS)ͷݞʹΔɻࢹରΛݮΒ͢ – εέʔϧΞτ/ Ξοϓ͕ϥΫ & ϑΣΠϧΦʔόཧෆཁ
S3 Aurora Dynamo ElastiCache SQS
4-3ɿࢹ͕ϥΫ ~ ࣄۀͱࢹίετΛൺྫͤ͞ͳ͍ ▪ ಉ͡ϓϩϏδϣχϯάϓϩηεͱٕज़ελοΫ – ٕज़ߏͷΏΒ͗Λ࡞Βͳ͍ Pairs JP Pairs
GL Capacity = LL Capacity = M
5ɿҟৗݕͱύϑΥʔϚϯεඪΛ۠ผ͢Δ ▪ ҟৗݕͱඪୡͷ؍ଌDurationΛ͚Δ ▪ αʔϏεΛ͑ͳ͍ͱ͍ͮΒ͍Λ۠ผ͢Δ • ҟৗɿΞϥʔτʹΑΔݕ(within 1min) • ඪɿఆظతͳݕࠪ(within
1week)
5ɿҟৗݕͱύϑΥʔϚϯεඪΛ۠ผ͢Δ ▪ ҟৗݕͱඪୡͷ؍ଌDurationΛ͚Δ ▪ αʔϏεΛ͑ͳ͍ͱ͍ͮΒ͍Λ۠ผ͢Δ • ͑ͳ͍ɿϩάΠϯ/ ݕࡧͰ͖ͳ͍ͳͲ • ͍ͮΒ͍ɿαʔϏεମײ͕͍
/ ॏ͍
ํ(࠶ܝ) ▪ 1ɿఆྔඪΛઃఆ͢Δ ▪ 2ɿΞϥʔτ = ଈ࠲ΞΫγϣϯͱ͢Δ ▪ 3ɿશମΛγϯϓϧʹཧ͢Δ ▪
4ɿࢹ͕ϥΫͳΞʔΩςΫνϟʹ͢Δ ▪ 5ɿҟৗݕͱύϑΥʔϚϯεඪΛ۠ผ͢Δ
ࢹͱΞʔΩςΫνϟΛ৽͠·ͨ͠
ࢹΛ৽
ࢹɾରԠΛஈ֊తʹਐԽ ▪ ҟৗΛΕΔ(ݟΕΔ) ▪ ҟৗΛݕͰ͖Δ ▪ ҟৗʹରԠͰ͖Δ ▪ ҟৗ͕ࣗಈͰम෮͢Δ
ҟৗΛΕΔ(ݟΕΔ) ▪ Datadog ▪ StackDriver Loggin
Metrics Aggregate AWS Integration DatadogʹΑΔϗετϕʔεࢹ &Integration
StackDriver LoggingʹΑΔϩάՄࢹԽͱϨϙʔτੜ Metrics / Log Monitoring Alert Slack call you
Log Aggregation Sync to DWH Generate Performance Report Hosting Report Dev & SRE
StackDriver LoggingʹΑΔϩάՄࢹԽͱϨϙʔτੜ Metrics / Log Monitoring Alert Slack call you
Log Aggregation Sync to DWH Generate Performance Report Hosting Report Dev & SRE • Ξϥʔτ & ଈ࣌ରԠ • Windowɿ1
StackDriver LoggingʹΑΔϩάՄࢹԽͱϨϙʔτੜ Metrics / Log Monitoring Alert Slack call you
Log Aggregation Sync to DWH Generate Performance Report Hosting Report Dev & SRE • ύϑΥʔϚϯεৼฦ • Windowɿ1िؒ
StackDriver LoggingʹΑΔϩάՄࢹԽͱϨϙʔτੜ Metrics / Log Monitoring Alert Slack call you
Log Aggregation Sync to DWH Generate Performance Report Hosting Report Dev & SRE • ύϑΥʔϚϯεৼฦ • Windowɿ1िؒ Ϩϙʔτൈਮ(Ұ෦)ɾϨΠςϯγώετάϥϜ
StackDriver LoggingʹΑΔϩάՄࢹԽͱϨϙʔτੜ Metrics / Log Monitoring Alert Slack call you
Log Aggregation Sync to DWH Generate Performance Report Hosting Report Dev & SRE • ύϑΥʔϚϯεৼฦ • Windowɿ1िؒ Ϩϙʔτൈਮ(Ұ෦)ɾRest EndpointผϦΫΤετϘϦϡʔϜਪҠ
ҟৗΛݕͰ͖Δ ▪ ֎ܗࢹ (αʔϏεࢹ)ʹΑΔΞϥʔτ ▪ ϦιʔεࢹʹΑΔΞϥʔτ ▪ ύϑΥʔϚϯεʹΑΔΞϥʔτ ▪ ϩάࢹʹΑΔΞϥʔτ
ҟৗΛݕͰ͖Δ ▪ ֎ܗࢹ (αʔϏεࢹ)ʹΑΔΞϥʔτ ▪ ϦιʔεࢹʹΑΔΞϥʔτ ▪ ύϑΥʔϚϯεʹΑΔΞϥʔτ ▪ ϩάࢹʹΑΔΞϥʔτ
• ଈରԠඞཁ • SSLηοτͰ(͔͔࣌ؒΔ)
ҟৗΛݕͰ͖Δ ▪ ֎ܗࢹ (αʔϏεࢹ)ʹΑΔΞϥʔτ ▪ ϦιʔεࢹʹΑΔΞϥʔτ ▪ ύϑΥʔϚϯεʹΑΔΞϥʔτ ▪ ϩάࢹʹΑΔΞϥʔτ
• εςʔτϨεϨΠϠݟͳ͍(ࣺͯΔ) • ετϨʔδܥݟΔ(ରԠʹ͔͔࣌ؒΔ)
ҟৗΛݕͰ͖Δ ▪ ֎ܗࢹ (αʔϏεࢹ)ʹΑΔΞϥʔτ ▪ ϦιʔεࢹʹΑΔΞϥʔτ ▪ ύϑΥʔϚϯεʹΑΔΞϥʔτ ▪ ϩάࢹʹΑΔΞϥʔτ
• Latencyલिൺ or લ࣌ؒൺͰͷมԽ • RequestࣦഊSLO x Status CodeͰݟΔ
ҟৗΛݕͰ͖Δ ▪ ֎ܗࢹ (αʔϏεࢹ)ʹΑΔΞϥʔτ ▪ ϦιʔεࢹʹΑΔΞϥʔτ ▪ ύϑΥʔϚϯεʹΑΔΞϥʔτ ▪ ϩάࢹʹΑΔΞϥʔτ
• લिൺ or લ࣌ؒൺͰͷมԽ • ৗ࣌ྲྀΕΔܥͳΒAnomaly detection͕٢
ҟৗʹରԠͰ͖Δ ▪ Ϧιʔεͷ૿ڧɺަɺϩʔϧόοΫΛ༰қʹ ▪ োൃੜ࣌ͷௐࠪίετΛԼ͛Δ
Ϧιʔεͷ૿ڧɺަɺϩʔϧόοΫΛ༰қʹ͢Δ Scale Out / Discard Scale Up Add Shard Scale
Out Scale Up Vertical Split
Ϧιʔεͷ૿ڧɺަɺϩʔϧόοΫΛ༰қʹ͢Δ Scale Out / Discard Scale Up Add Shard Scale
Out Scale Up Vertical Split • ؆୯ & ϦʔυλΠϜແ͘Ϧιʔε૿ͤΔ • ҟৗܥΛ؆୯ʹΓͤΔΑ͏ʹ • ετϨʔδܥ͕ΩϞ.ࣄલʹ༧ߦ࿅शΛ
ҟৗ͕ࣗಈͰम෮͢Δ ▪ ΦʔτώʔϦϯά ▪ ࠞಱ(ΧΦε)ͷೖ
ҟৗ͕ࣗಈͰम෮͢Δ ▪ ΦʔτώʔϦϯά ▪ ࠞಱ(ΧΦε)ͷೖ • ҟৗϗετͷΓ͠ϑΣΠϧΦʔό • ετϨʔδܥ͕ΩϞ •
ఆظతͳආ܇࿅
ҟৗ͕ࣗಈͰम෮͢Δ ▪ ΦʔτώʔϦϯά ▪ ࠞಱ(ΧΦε)ͷೖ • ҙਤతͳোͷೖ • ΦʔτώʔϦϯάͷڧ੍ࢼݧ &
ৗԽ • ઓ͍͜Ε͔Βͩͥɺɺʂ
·ͱΊ
ࠓͷͳ͠ ▪ WebΞϓϦέʔγϣϯࢹʹ·ͭΘΔٕज़τϨϯυ ▪ ࢹͷతͱɺݱͷ՝ͱ ▪ ΤϨΧͰͷࣦഊ / ཱͯ͠ࣄྫͷհ ▪
ϞχλϦϯάͷஈ֊తਐԽɾ࣮ྫհ
·ͱΊ ▪ ࢹͷతMTTRΛ࠷খԽ࣭͠ཁٻΛຬͨ͢ࣄ ▪ ΞϥʔτରԠͰ͖ͳ͚Εҙຯ͕ͳ͍ ▪ αʔϏε࣭ͷඪΛఆΊΔ͠ ▪ ࢹϨεͳΞʔΩςΫνϟΛࢦ͢͠ ▪
Ξϥʔτ + ఆظతͳ࣭νΣοΫΛDev / OpsͰ
·ͱΊ ▪ γεςϜʑ & ෳࡶԽ͍ͯ͘͠ ▪ Γ͍ͨ͜ͱͨ͘͞Μ͋Δʂ ▪ ΤϨΧSREνʔϜͷϝϯόʔΛืूதͰ͢ʂ
CONFIDENTIAL Thank you :) Thank you :)
Any Questions??