Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
よりUXに近いSLI・SLOの運用による可用性の再設計
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
nade
May 15, 2022
Programming
8.9k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
よりUXに近いSLI・SLOの運用による可用性の再設計
SRE NEXT 2022
https://sre-next.dev/2022/schedule/#jp47
nade
May 15, 2022
More Decks by nade
See All by nade
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
250
Server-Driven UI入門: 画面のStateを直接受け取るアプローチ
kazumanagano
5
4.6k
タップルのサービス特性に合わせた設計方針を考える
kazumanagano
0
270
iOS開発におけるGitHub Actions self-hosted runnerを利用したオンプレ CI/CD のすゝめ
kazumanagano
0
170
Github Actions self-hosted runners のすゝめ
kazumanagano
0
590
モバイルアプリのオブザーバビリティを向上させるプラクティス
kazumanagano
8
5.2k
タップル モバイルアプリにE2Eテストが導入されるまでの軌跡
kazumanagano
0
140
App Size Optimization への挑戦
kazumanagano
1
1.4k
無料トライアル施策のしくじりから学ぶサブスクリプション構成 ベストプラクティス
kazumanagano
2
2.5k
Other Decks in Programming
See All in Programming
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
250
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
130
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.9k
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
280
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
140
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
150
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
1k
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
フロントエンドUIフレームワークのこれまでとこれから
ssssota
4
2k
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Practical Orchestrator
shlominoach
191
12k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Believing is Seeing
oripsolob
1
210
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
A Modern Web Designer's Workflow
chriscoyier
699
190k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
490
Transcript
ΑΓUXʹ͍ۙSLIɾSLOͷӡ ༻ʹΑΔՄ༻ੑͷ࠶ઃܭ Ӭ Ұഅ
ࣗݾհ • 2019/4ʙ λοϓϧʹiOSΤϯδχΞͱͯ͠ δϣΠϯ • 2021ΑΓSREνʔϜʹϞόΠϧΤϯδχ Ξͱͯ͠ॴଐ • ݱࡏαʔϏεͷ৴པੑΛߴΊΔϛογϣ
ϯʹऔΓΜͰ͍·͢ Ӭ Ұഅ
λοϓϧͷαʔϏεʹ͍ͭͯ https://tapple.me/ 20145݄ʹϦϦʔεͨ͠ࠃ࠷େنͷϚονϯάΞϓϦͰ͢ɻ1,000छҎ্ͷσʔτϓϥϯ͔Β૬ख Λืूͯ͠ϚονϯάͰ͖Δʮ͓Ͱ͔͚ػೳʯΛఏڙ͠ɺऩɾ৬ۀͳͲͷ͚݅ͩͰͳ͘ɺझຯΛ͖ͬ ͔͚ʹࣗΒ͘͠աͤ͝Δύʔτφʔͱग़ձ͑Δͷ͕ಛͰɺ20ͷஉঁΛத৺ʹࢧ࣋Λड͚͍ͯ·͢ɻ
• SREνʔϜʹϞ バ ΠϧΤϯ ジ χΞ(iOSɺAndroid֤1ਓ) が ઐଐ で ॴଐ͢Δܗ
• ΑΓϢʔβʔʹ͍ۙ෦ͰͷܭଌɺBFFͷਪਐͱ͍ͬͨόοΫΤϯυSRE͚ͩͰखΛ৳ͮ͠Β ͍෦ʹΞδϦςΟߴ͘औΓΊΔΑ͏ʹ͢Δత • ΠϯϑϥόοΫΤϯυͷઐੑͷ֫ಘ SREνʔϜͷMobileΤϯδχΞʹ͍ͭͯ
ࠓճͷൃද༰ SLI / SLOΛϞόΠϧΞϓϦέʔγϣϯଆͰܭଌ͞ΕΔࢦඪΛͱʹ࠶ઃܭ͠ɺΑΓUXʹ͍ۙࢦඪΛࢦ ͢औΓΈͷհ • ৴པੑΛճ෮ͤ͞ΔͨΊͷΞΫγϣϯɺΠϯγσϯτͷରॲΛఆྔతʹߦ͑ΔΑ͏ʹ • ৴པੑΛఆྔతʹѲͰ͖Δ͜ͱͰͷ҆৺ײ •
ࣄۀஅ༏ઌͷίϛϡχέʔγϣϯʹ͓͚Δڞ௨ݴޠʹ
ैདྷͷSLI/SLOͷӡ༻
όοΫΤϯυ • APIαʔόʔ, BFFαʔόʔͦΕͧΕͷϨΠςϯγΛSLIͱͯ͠ར༻ • ϞχλϦϯάɺΞϥʔτڞʹDataDogͰཧ • ҧ࣌ɺΤϥʔόδΣοτΛஶ͘͠ফඅ͢Δ߹ଈ࣌োରԠ ैདྷͷSLI/SLOͷӡ༻ —
όοΫΤϯυ — https://developers.cyberagent.co.jp/blog/archives/20354/
ΫϥΠΞϯτ ΫϥΠΞϯτଆͰಠࣗͷSLIΛӡ༻ • ΫϥογϡɺύʔεΤϥʔɺϑϨʔϜϨʔτ ैདྷͷSLI/SLOͷӡ༻ — ΫϥΠΞϯτ —
• Firebase Performance, CrashlyticsͷϩάΛར༻͠ɺϕϩγςΟΞϥʔτΛར༻ • Data PortalͰμογϡϘʔυཧ • ҧ࣌ӨڹͷൣғɺػೳͷॏཁʹԠͯ͡ΞΫγϣϯΛܾఆ
ैདྷͷSLI/SLOͷӡ༻ — ΫϥΠΞϯτ — ΠϯύΫτ ΞΫγϣϯ High ࢪࡦΛͱΊͯͰνʔϜશମͰՄೳͳݶΓϦιʔεΛͭ͗ࠐΈɺ ϗοτϑΟοΫεݕ౼ Middle ୲ͷΤϯδχΞΛΞαΠϯ্ͨ͠Ͱɺ࣍ճϦϦʔεͰඞͣରԠɻ ඞཁͰ͋ΕࢪࡦͷखͱΊΔ Low ୲ͷΤϯδχΞΛΞαΠϯ্ͨ͠Ͱɺ ։ൃϦιʔε͕ۭ͖࣍ୈదٓରԠ͢Δ
SLO͕αʔϏεͷՄ༻ੑͷஅ࣠ʹͳ͍ͬͯͳ͍ 1. emergencyϨϕϧͷΞϥʔτ͕ൃՐ 2. ΤϯδχΞ͕֤ࣗӨڹൣғʢػೳɺϢʔβʔʣௐࠪ 3. ΞΫγϣϯܾఆʢ͓ΒͤɺTwitterࠂɺࠂఀࢭɺϝϯςΠϯʣ
1. emergencyϨϕϧͷΞϥʔτ͕ൃՐ 2. SLI/SLOμογϡϘʔυͰӨڹൣғ֬ೝ 3. ӨڹͷͰ͍ͯΔSLIɺΤϥʔόδΣοτͷফඅ͔Β࣍ͷΞΫγϣϯΛܾఆ ैདྷͷSLI/SLOͷӡ༻ — ՝ᶃ — ຊདྷͷཧ ݱࡏͷӡ༻
όοΫΤϯυɺΫϥΠΞϯτʹดͨ͡ࢦඪͦΕͧΕͷΈͰՄ༻ੑΛอূͰ͖ͳ͍ αʔόʔͷSLO͕ຬͨ͞Ε͍ͯͯɺ • ૬खͷϝοηʔδ͕ݟΕ͍ͯͳ͍ → ΫϥΠΞϯτଆͰͷύʔεΤϥʔ͕ݪҼͰϨεϙϯεΛड৴Ͱ͖ͯͳ͍ •
৽نొͰ͖ͳ͍ → ֎෦SNSଆͰোൃੜɺΦϯϘʔσΟϯάϑϩʔ͕ແݶϧʔϓ • ϝοηʔδը໘Λ։͍ͨϢʔβʔͷ◦%͕ϝοηʔδͷӾཡʹޭ͍ͯ͠Δঢ়ଶ͔Θ͔Δ • ৽نొΛ։࢝ͨ͠Ϣʔβʔͷ◦%͕৽نొʹޭ͍ͯ͠Δ͔Θ͔Δ ैདྷͷSLI/SLOͷӡ༻ — ՝ᶄ — ຊདྷͷཧ ݱࡏͷӡ༻
ࢦ͢ཧঢ়ଶ • Ϣʔβʔͷظ͢ΔUXΛΧόʔ͢Δࢦඪઃఆ • SLI / SLOͷҧʹΑΔϢʔβʔӨڹѲΛ༰қʹ •
ϏδωεɺΫϥΠΞϯτɺαʔόʔؒͰαʔϏεঢ়ଶͷڞ௨ݴޠΛ࣋ͭ
ΑΓUXʹ͍ۙSLIɾSLOͷઃܭ
Ϣʔβʔͷظ͢ΔUXΛΧόʔ͢ΔSLIઃఆ ϝϯόʔ͔ΒʮαʔϏεͷՄ༻ੑʯͷٵ্͍͛ • औΓ͍ͨࢦඪɺఆٛɺܭଌํ๏ɺѱԽͨ͠߹ʹଛͳΘΕΔUXΛώΞϦϯά • ϑΥʔΧε͢ΔࢦඪɺίΞͳମݧΛ࢈ΜͰ͍ΔUXΛܾఆ͢Δ ϚΠΫϩαʔϏεͷυϝΠϯϞσϧͱ߹கͤ͞Δ
ϓϥοτϑΥʔϜͷఏڙ͢Δࢦඪͷ࠾༻ Apple, Google͕σΟϕϩούʔʹఏڙ͢ΔSLI • ϓϥοτϑΥʔϜଆͷߟ͑Δྑ͍ΞϓϦͷఆٛ • ΞϓϦετΞOSϨϕϧͰӨڹ͕͋Δ͜ͱ ◦ ASOʢApp Store
Optimizationʣ ◦ ༏ઌͯ͠ΞϯΠϯετʔϧΛଅ͞ΕΔ ◦ ΞϓϦͷόοΫάϥϯυͰͷੜଘ࣌ؒ • λοϓϧͰԼهͷࢦඪΛSLIͱͯ͠࠾༻ ◦ ΞϓϦαΠζ ◦ શମΫϥογϡʢANRʣ ◦ ىಈ࣌ؒ https://developers.cyberagent.co.jp/blog/archives/20354/
SLIҧΛ࠶ݱͨ͠ΞϓϦΛͬͨSLOܾΊ • աڈͷΠϯγσϯτ࣌ͷࢦඪɺࣄલώΞϦϯά͔Βɺ͖͍͠ʹ͋ͨΓΛ͚ͭΔ • σόοάػೳͰৄࡉͳ͖͍͠ΛௐՄೳͳΞϓϦΛ༻ҙ͠ɺ৮Γͳ͕Βٞ
࠶ఆٛͨ͠SLI όοΫΤϯυʢܧଓʣ • ϨΠςϯγʔ ΫϥΠΞϯτʢʹϓϥοτϑΥʔϜࢦඪʣ • ىಈ࣌ؒɺશମΫϥογϡɺΞϓϦαΠζ ίΞػೳʢʹػೳ͝ͱͷՄ༻ੑʣ
• ϩάΠϯɺ৽نొɺΧʔυϑϦοΫɺ ϝοηʔδɺ͓Ͱ͔͚ɺWish Մ༻ੑΛͱʹͨ͠SLIΛઃఆ ڞ௨ Ϋϥογϡ / ANR ػೳ͝ͱͷΩʔϝτϦΫε ϝοηʔδ: ಡΈࠐΈ ΧʔυϑϦοΫ: ࠶ϑϦοΫՄೳʹͳΔ·Ͱͷ࣌ؒ ɾɾɾ
ΫϥΠΞϯτଆͰͷSLI / SLOͷܭଌ
ΫϥΠΞϯτଆͰͷSLI / SLOͷܭଌ 1. ·ͣFirebase (+BigQuery) ʹ݁ͯ͠ϛχϚϜʹՔಇ • ػೳతʹेͳ͜ͱΛݕূ 2.
Monitoring, DashboardΛDataDogʹҠߦʢ͜Ε͔Βʣ • Ξϥʔτͷࣗ༝Λ্͛Δ • ଞͷϩάͰར༻ͯ͠ΔαʔϏεͱ߹ΘͤΔ
ΫϥΠΞϯτଆͰͷϞχλϦϯάπʔϧͷݕ౼ ͻͱ·ͣྉۚ໘Λߟྀ͠FirebaseΛར༻͠ɺʮӡ༻Λ։࢝ → ՝͕͋ΕϒϥογϡΞοϓʯͷํʹ 1. Firebase Crashlytics / Performance
+ BigQuery • FirebaseࣗମແྉͷͨΊBigQueryͷQuery, Active StorageͷྉۚͷΈ • Crashlytics, PerformanceطଘͰར༻͍ͯ͠ΔͨΊಋೖίετ͕͍ • BigQueryʹੵ͢Δ͜ͱͰൺֱతࣗ༝ߴ͘ར༻Ͱ͖Δ 2. DataDog RUM • طଘͷϞχλϦϯάπʔϧͱͯ͠DataDogΛར༻͍ͯ͠ΔͨΊπʔϧΛ౷ҰͰ͖Δ • ηογϣϯ୯Ґͷ՝ۚମܥͷͨΊɺࠓճྉۚ໘Ͱஅ೦ 3. New Relic One • όοΫΤϯυͰDataDogΛར༻͍ͯ͠Δ͜ͱɺྉۚ໘Λഎܠʹஅ೦
FirebaseͰߏ͢ΔϛχϚϜͳܭଌϑϩʔ Firebase ( Crashlytics + Performance ) ͷΈͰϛχϚϜͳϑϩʔ࣮ݱՄೳ • BigQueryʹExportʢϦΞϧλΠϜՄೳʣ
• BigQuery্ʹμογϡϘʔυදࣔ༻ͷதؒςʔϒϧ࡞ • Data PortalͰμογϡϘʔυදࣔ )LUHEDVH 3HUIRUPDQFH )LUHEDVH &UDVKO\WLFV 8VHU &UDVK .H\0HWULFV *RRJOH'DWD3RUWDO $XWR([SRUW %LJ4XHU\ ,QWHUPHGLDWHWDEOH %LJ4XHU\
Ξϥʔτͷઃఆͷࣗ༝ Firebase Performance • ࡞ͨ͠ࢦඪ͝ͱʹΞϥʔτͷઃఆ͕Մೳ • ͖͍͠Λ50ʙ95ύʔηϯλΠϧͷࢦఆ͕Մೳ Firebase Crashlytics •
ۙ1࣌ؒͷηογϣϯʹର͢ΔΫϥογϡ • ͖͍͠Λ0.1%ʙ1.0%ͰίϯτϩʔϧՄೳ
Ϋϥογϡϩάͷྨ https://firebase.google.com/docs/crashlytics/customize-crash-reports import UIKit import FirebaseCrashlytics final class LoginViewController: UIViewController
{ // ը໘Λදࣔ͢ΔλΠϛϯάͰCrashlyticsʹΧελϜΩʔΛઃఆ override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) Crashlytics.crashlytics().setCustomValue("login", forKey: "domain") } iOSΞϓϦͰͷϩάΠϯը໘ʹର͢Δ࣮ྫ ֤ػೳͷը໘දࣔ࣌ʹCrashlyticsʹΧελϜΩʔΛઃఆ͢Δ • ΧελϜΩʔΛͱʹBigQuery (Data Portal) ্ͰػೳυϝΠϯ͝ͱͷΫϥογϡΛूܭ • ػೳ͝ͱͷΞϥʔτઃఆͰ͖ͳ͍ͨΊɺVelocity Alert → μογϡϘʔυͰػೳӨڹ֬ೝ
ࠓޙʣϞχλϦϯάΛDataDogʹ౷Ұ ҎԼͷ؍͔ΒDataDogʹू͍ͯ͘͠ • ϞχλϦϯάͷू • Ϋϥογϡͷػೳ͝ͱͷΞϥʔτ )LUHEDVH 3HUIRUPDQFH )LUHEDVH &UDVKO\WLFV
$XWR([SRUW %LJ4XHU\ 4XHU\ SXVK IRUZRUGWRGDWDGRJ &ORXG)XQFWLRQV 'DWD'RJ &ORXG 3XE6XE WULJJHU
ӡ༻ʹ͍ͭͯ
ӡ༻ͷมԽ Πϯγσϯτൃੜ࣌ • PMɺόοΫΤϯυɺΫϥΠΞϯτϝϯόʔશһ͕ϢʔβʔӨڹΛஅ͢ΔҰ࣌ใͱͯ͠׆༻ ◦ ΤϯδχΞͷௐࠪΛͨͣͯ͠ωΫετΞΫγϣϯΛಈ͖ग़ͤΔΑ͏ʹ ྫʣશϢʔβʔͷ͓͠ΒͤɺTwitterࠂɺࠂͷఀࢭ • ِཅੑͷԼ
◦ ಛఆͷ݅ԼʢΩϟϯϖʔϯதͷΈʣʹൃੜ͢ΔύʔεΤϥʔΛ༏ઌߴ͘ΞϥʔτΛ͋͛ ΒΕΔΑ͏ʹ
ӡ༻ͷมԽ ϦϦʔεޙͷϝτϦΫε֬ೝ࣌ʹόοΫΤϯυɺΫϥΠΞϯτͷڞ௨ݴޠʹ • όοΫΤϯυɺΫϥΠΞϯτͦΕͧΕ͕શʹ͔Εͯ֬ೝ • ֬ೝՄೳͳϝτϦΫεɺμογϡϘʔυΛҰ௨Γཏతʹ֬ೝ • όοΫΤϯυɺΫϥΠΞϯτڞ௨ͷSLI /
SLO μογϡϘʔυΛ֬ೝ ◦ ௐࠪͷ߹SLIΛڞ௨ݴޠͱͯ͠ίϛϡχέʔγϣϯ • ҧ͕͋ͬͨ߹ʹؔ࿈ͷϝτϦΫεɺμογϡϘʔυΛ֬ೝ ◦ SLI / SLOಉ࣌ʹߦ͏ ݱࡏͷӡ༻ ैདྷͷӡ༻
ࠓޙͷల • ·ͩ·ͩӡ༻࢝ΊͨͯͳͷͰɺࠓޙݟΛஷΊ͍ͯ͘ • ࢦඪͦͷͷͷܧଓతͳϒϥογϡΞοϓ ◦ ࢦඪͷ͖͍͠ɺλʔήοτʢ90% → 50%ʣ ◦
ΤϥʔόδΣοτ ◦ ػೳͷΩʔϝτϦΫεͷର • DataDogͰҰؾ௨؏ͯ͠ϞχλϦϯάɺμογϡϘʔυΛཧͰ͖ΔΑ͏ʹ͢Δ • ৫ͰͷSLI / SLOͷਁಁ ◦ ݱঢ়·ͩ·ͩΤϯδχΞҎ֎ʹਁಁͰ͖ͯͳ͍
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠