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
すこやかなサービス運営のための PWG (Performance Working Group)
Search
Takafumi ONAKA
PRO
August 10, 2024
Technology
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
すこやかなサービス運営のための PWG (Performance Working Group)
2024-08-10 builderscon 2024
Takafumi ONAKA
PRO
August 10, 2024
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
気づけばこうなる運用 ~運用現場の現実と理想~
onk
PRO
0
94
プラットフォームを作る、プラットフォームを変える
onk
PRO
0
81
強いチームと開発生産性
onk
PRO
44
18k
ADRを運用して3年経った僕らの現在地
onk
PRO
22
26k
1文字エイリアスのすゝめ
onk
PRO
0
150
オブザーバビリティの Primary Signals
onk
PRO
2
6.7k
Cache Stampede
onk
PRO
1
2.5k
ORM - Object-relational mapping
onk
PRO
3
4.2k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
14k
Other Decks in Technology
See All in Technology
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
170
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
230
自分で立ててみるLLMサービス
y_sera15
0
160
今さら理解するウェブフォントver.2026
takanorip
3
660
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
580
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
230
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
0
190
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
370
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
670
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
360
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
170
Featured
See All Featured
Practical Orchestrator
shlominoach
192
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Invisible Side of Design
smashingmag
301
52k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
How to make the Groovebox
asonas
2
2.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Everyday Curiosity
cassininazir
0
350
Music & Morning Musume
bryan
48
7.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Transcript
すこやかなサービス運営の ためのPWG id:onk 2024-08-10 builderscon 2024 1
自己紹介 • 大仲 能史 a.k.a. id:onk • 芸歴20年目 • 株式会社はてな
◦ チーフエンジニア ◦ Mackerel 開発チーム 2
3 今日の話
4 PWG
5 はてなで運用している Performance Working Group の話をします
アジェンダ • PWGとは • 何をやっているか • どんな組織になるか • まとめ 6
7 PWGとは
PWGとは • Performance Working Groupの略 • 2009年辺りから開催している • プロダクト開発チームとインフラチームが 月に1回改善を検討する会議
8
PWGとは 9 https://mackerel.io/ja/blog/entry/advent-calendar2015/day19
PWGとは 10 https://x.com/yuuk1t/status/896098691416694786
SRE本 31章 11
SRE本 31章 12 私たちが行うミーティングの中で、平均以上 に有益なものが一つあります。それはプロダ クションミーティングと呼ばれるもので、 SREチームが自分たちと他の参加者に対し、 担当するサービスの状況について十分に注意 を払って明確に説明をすることによって、す べての関係者の全般的な認識を高め、サービ
スの運用を改善するために行われます。
SRE本 31章 13 定期的なミーティングにおいて設計上の判断 をサービスのパフォーマンスと合わせて考え てみることは、きわめて強力なフィードバッ クループになります。
SRE本 31章 14 • プロダクション環境において予定されてい る変更 • メトリクス • 障害
• ページされたイベント • ページされなかったイベント • これまでのアクションアイテム
2018年頃のPWGの目的 • パフォーマンス等が悪くなっていないか チェックする機会を定期的に設ける • エンジニアリング面で気になっていることを 雑談する場を定期的に設ける • SREチームとコミュニケーションする場を〜 •
直近のイベント等をSREチームにも共有する 15
最近のはてなのプロダクト開発チーム • Embedded SRE ◦ プロダクト開発チームにSREも所属 • 一緒にイテレーションを回す ◦ 一緒にデイリーミーティング
◦ 同じバックログにタスクが並んでいる 16
Embedded SREが居るPWG • 同じチームなので「予定されている変更」の 共有は必要なくなっている • Webアプリケーションエンジニアもアラート を一緒に受け取っているので共有目的は薄い • 定点観測とふりかえりの意味合いが強い
17
アジェンダ • PWGとは • 何をやっているか • どんな組織になるか • まとめ 18
PWGの開催頻度と出席者 • 月次開催、1時間枠 • 出席者 ◦ 必須: SREs ◦ 必須:
バックエンドのテックリード ◦ 任意: アプリケーションエンジニア ◦ 任意: プロダクトオーナー 19 必須メンバーが揃わない場合はリスケする
PWGでの役割 • 司会 ◦ 画面を写す ◦ 進行 ▪ 話題ごとに適切な人に話 を振る
• 書記 ◦ 会話した内容を議事録 (共同編集可) に書き記す 20 • その他みんな ◦ 答えたり質問したり ▪ 初心者大歓迎 ◦ 書記が書き逃したこと を書く ◦ 気になりがあったら書 く ▪ 事前記入大歓迎
PWG議事録 21 • 共同編集 ◦ 一人では議事録を書きき れない • 会話内容を残していく •
どんどんURLや画像を 貼っていく
PWGのアジェンダ • 障害ふりかえり • 作業ログ • アラート • ダッシュボード 22
• 今日話したいこと • 今後の変化共有 • 出たTODOのIssue化 • 感想/雑談
障害ふりかえりコーナー • 最近起きた障害とポストモーテムを眺める • 実施できていない根本対応について会話 • 一部のコンポーネントに障害が偏っていない かを俯瞰できるかも 23
作業ログコーナー • 障害ではないが非定型な作業ログを眺める • 非定型作業はヒヤリハットであることが多い • 同じことを複数回やっているならトイル ◦ 自動化可能か、根絶可能かを考える 24
アラート確認コーナー • Mackerelのアラート一覧を眺める ◦ それぞれがなぜ発生しているのかを話す • 対応していないアラートがあったら ◦ そもそも不要なアラートじゃないか会話する ◦
その場で閾値を変えたり、監視ごと消したり • 頻出しているアラートがあったら ◦ 必要なアラートなら根本対応を検討する 25
ダッシュボード確認コーナー • Mackerelのカスタムダッシュボードを眺める ◦ PWG用のダッシュボードがある ◦ サービスのメトリックが並んでいるだけではないし、 障害対応用のものとも別 • 気になるグラフの変化についてみんなで話す
◦ Mackerelのグラフアノテーションも活用する 26
ダッシュボード確認コーナー 27
PWGのアジェンダ • 障害ふりかえり • 作業ログ • アラート • ダッシュボード 28
• 今日話したいこと • 今後の変化共有 • 出たTODOのIssue化 • 感想・雑談
PWGのアジェンダ 29 • 今日話したいこと ◦ なんか気になってることが集まってくる ◦ 特に無いこともある • 今後の変化共有
◦ 大型のキャンペーンがあってアクセスが増えるとか ◦ インフラ構成を変える予定とかEOLとか
• 出たTODOのIssue化 ◦ Issueにして終わる ◦ その場で書き切れなかったら書く人をアサインする ◦ Issueの優先度はリファインメント時に相談 • 感想・雑談
◦ 会のアジェンダ自体もどんどん変えていく ◦ 議事録に置いておくとフンワリした話題を拾いやすい PWGのアジェンダ 30
• コスト ◦ コスト変化もメトリック • SLO見直し ◦ 定期的にPOとのミーティングを行う ◦ 月次の会があるなら乗っかるか?
PWGのその他のアジェンダ 31
アジェンダ • PWGとは • 何をやっているか • どんな組織になるか • まとめ 32
POが参加している • 数字の変動要因をより知っている ◦ サービス内のイベントや変化 ◦ 数字の変化が予期されたものか、一時的か恒久的か ◦ 例: CM放映による新規ユーザー増加とその影響
• 未来の見通しも議論可能 ◦ 利用状況のトレンドや今後の開発予定を共有 ◦ スケールアップ等の対応を判断 33 https://www.minemura-coffee.com/entry/2023/12/06/194050
SLOがちゃんと運用される 34 • SLOを達成しているか ◦ PO、SRE、開発チームの全員が居る場で確認 ◦ 違反していたらアクションを取る • SLOは定期的に見直すもの
◦ SLOや違反時のアクションを定めたドキュメントには revisit dateがある
• チームの一員とはいえ職種が違うと壁はある • チームメンバーにタスクを振る練習ができる ◦ PWGはSREsがオーナーシップを持ちやすい場なの で、進めていく意識を持ちやすい ◦ その場でIssue化する流れの中で、解決したい時期を 決めたり、完了条件を決めたりしていく
SREsのソフトスキル向上 35
• PWGを介して解像度が上がる ◦ どんなアーキテクチャで動いているのか ◦ 誰がどんな立場で発言しているか ◦ 障害やアラート、ダッシュボードを一緒に読む機会 オンボーディング 36
感度の高い非インフラエンジニアの育 成 • 何のためにこのメトリックを見ているのか ◦ コンポーネント間の繋がり ◦ 異常系のときにどういう動きをするのか • このメトリックはどう変わると危ないのか
◦ 上限が1000であることを知らないと、 10->100の変化にビビって慌てて調査してしまう 37 https://www.minemura-coffee.com/entry/2023/12/06/194050
• 障害時に本来鳴るべきアラートが鳴っていな いならおかしい • 検知できるよう、監視を追加する • ポストモーテム作成時に考えるものだが、 漏れていたらPWGで会話する 必要な監視を増やす 38
• 不要なアラートの棚卸し • 一度追加した監視は削除するのが困難である • 「このアラートいつも無視してるよね」 • オオカミ少年アラートを許さない 監視条件をその場で変える 39
意思決定できる監視/ダッシュボード • 「情報」は意思決定と行動を促すものである • この原則に向き合って、監視を設計する ◦ runbookを書けない監視は存在しない • ダッシュボードも同様 ◦
これが分かったら何が言えるのか、を一つずつ確認 ◦ システムメトリックはダッシュボードには不要 40
• Embedded SREじゃない場合 ◦ 運用を助けてくれるインフラ組織がプロダクト開発 チームの近くに居るはず • キックオフやデイリーには居ないことが多い ので、PWGで情報を流す インフラ組織と会話する場
41
42 まとめ
まとめ 43 • PWGを行うことで、チーム全員の認識が揃う ◦ SLO、各コンポーネントの強弱、最近の傾向 • ダッシュボードをみんなで見る ◦ 継続して見ているだけで解像度が上がっていく
• ダッシュボードや監視が、育てていくものに ◦ 特定の人/職種じゃなく、チームで育てていく • チームでSLOや監視と向き合おう