Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
すこやかなサービス運営の ためのPWG id:onk 2024-08-10 builderscon 2024 1
Slide 2
Slide 2 text
自己紹介 ● 大仲 能史 a.k.a. id:onk ● 芸歴20年目 ● 株式会社はてな ○ チーフエンジニア ○ Mackerel 開発チーム 2
Slide 3
Slide 3 text
3 今日の話
Slide 4
Slide 4 text
4 PWG
Slide 5
Slide 5 text
5 はてなで運用している Performance Working Group の話をします
Slide 6
Slide 6 text
アジェンダ ● PWGとは ● 何をやっているか ● どんな組織になるか ● まとめ 6
Slide 7
Slide 7 text
7 PWGとは
Slide 8
Slide 8 text
PWGとは ● Performance Working Groupの略 ● 2009年辺りから開催している ● プロダクト開発チームとインフラチームが 月に1回改善を検討する会議 8
Slide 9
Slide 9 text
PWGとは 9 https://mackerel.io/ja/blog/entry/advent-calendar2015/day19
Slide 10
Slide 10 text
PWGとは 10 https://x.com/yuuk1t/status/896098691416694786
Slide 11
Slide 11 text
SRE本 31章 11
Slide 12
Slide 12 text
SRE本 31章 12 私たちが行うミーティングの中で、平均以上 に有益なものが一つあります。それはプロダ クションミーティングと呼ばれるもので、 SREチームが自分たちと他の参加者に対し、 担当するサービスの状況について十分に注意 を払って明確に説明をすることによって、す べての関係者の全般的な認識を高め、サービ スの運用を改善するために行われます。
Slide 13
Slide 13 text
SRE本 31章 13 定期的なミーティングにおいて設計上の判断 をサービスのパフォーマンスと合わせて考え てみることは、きわめて強力なフィードバッ クループになります。
Slide 14
Slide 14 text
SRE本 31章 14 ● プロダクション環境において予定されてい る変更 ● メトリクス ● 障害 ● ページされたイベント ● ページされなかったイベント ● これまでのアクションアイテム
Slide 15
Slide 15 text
2018年頃のPWGの目的 ● パフォーマンス等が悪くなっていないか チェックする機会を定期的に設ける ● エンジニアリング面で気になっていることを 雑談する場を定期的に設ける ● SREチームとコミュニケーションする場を〜 ● 直近のイベント等をSREチームにも共有する 15
Slide 16
Slide 16 text
最近のはてなのプロダクト開発チーム ● Embedded SRE ○ プロダクト開発チームにSREも所属 ● 一緒にイテレーションを回す ○ 一緒にデイリーミーティング ○ 同じバックログにタスクが並んでいる 16
Slide 17
Slide 17 text
Embedded SREが居るPWG ● 同じチームなので「予定されている変更」の 共有は必要なくなっている ● Webアプリケーションエンジニアもアラート を一緒に受け取っているので共有目的は薄い ● 定点観測とふりかえりの意味合いが強い 17
Slide 18
Slide 18 text
アジェンダ ● PWGとは ● 何をやっているか ● どんな組織になるか ● まとめ 18
Slide 19
Slide 19 text
PWGの開催頻度と出席者 ● 月次開催、1時間枠 ● 出席者 ○ 必須: SREs ○ 必須: バックエンドのテックリード ○ 任意: アプリケーションエンジニア ○ 任意: プロダクトオーナー 19 必須メンバーが揃わない場合はリスケする
Slide 20
Slide 20 text
PWGでの役割 ● 司会 ○ 画面を写す ○ 進行 ■ 話題ごとに適切な人に話 を振る ● 書記 ○ 会話した内容を議事録 (共同編集可) に書き記す 20 ● その他みんな ○ 答えたり質問したり ■ 初心者大歓迎 ○ 書記が書き逃したこと を書く ○ 気になりがあったら書 く ■ 事前記入大歓迎
Slide 21
Slide 21 text
PWG議事録 21 ● 共同編集 ○ 一人では議事録を書きき れない ● 会話内容を残していく ● どんどんURLや画像を 貼っていく
Slide 22
Slide 22 text
PWGのアジェンダ ● 障害ふりかえり ● 作業ログ ● アラート ● ダッシュボード 22 ● 今日話したいこと ● 今後の変化共有 ● 出たTODOのIssue化 ● 感想/雑談
Slide 23
Slide 23 text
障害ふりかえりコーナー ● 最近起きた障害とポストモーテムを眺める ● 実施できていない根本対応について会話 ● 一部のコンポーネントに障害が偏っていない かを俯瞰できるかも 23
Slide 24
Slide 24 text
作業ログコーナー ● 障害ではないが非定型な作業ログを眺める ● 非定型作業はヒヤリハットであることが多い ● 同じことを複数回やっているならトイル ○ 自動化可能か、根絶可能かを考える 24
Slide 25
Slide 25 text
アラート確認コーナー ● Mackerelのアラート一覧を眺める ○ それぞれがなぜ発生しているのかを話す ● 対応していないアラートがあったら ○ そもそも不要なアラートじゃないか会話する ○ その場で閾値を変えたり、監視ごと消したり ● 頻出しているアラートがあったら ○ 必要なアラートなら根本対応を検討する 25
Slide 26
Slide 26 text
ダッシュボード確認コーナー ● Mackerelのカスタムダッシュボードを眺める ○ PWG用のダッシュボードがある ○ サービスのメトリックが並んでいるだけではないし、 障害対応用のものとも別 ● 気になるグラフの変化についてみんなで話す ○ Mackerelのグラフアノテーションも活用する 26
Slide 27
Slide 27 text
ダッシュボード確認コーナー 27
Slide 28
Slide 28 text
PWGのアジェンダ ● 障害ふりかえり ● 作業ログ ● アラート ● ダッシュボード 28 ● 今日話したいこと ● 今後の変化共有 ● 出たTODOのIssue化 ● 感想・雑談
Slide 29
Slide 29 text
PWGのアジェンダ 29 ● 今日話したいこと ○ なんか気になってることが集まってくる ○ 特に無いこともある ● 今後の変化共有 ○ 大型のキャンペーンがあってアクセスが増えるとか ○ インフラ構成を変える予定とかEOLとか
Slide 30
Slide 30 text
● 出たTODOのIssue化 ○ Issueにして終わる ○ その場で書き切れなかったら書く人をアサインする ○ Issueの優先度はリファインメント時に相談 ● 感想・雑談 ○ 会のアジェンダ自体もどんどん変えていく ○ 議事録に置いておくとフンワリした話題を拾いやすい PWGのアジェンダ 30
Slide 31
Slide 31 text
● コスト ○ コスト変化もメトリック ● SLO見直し ○ 定期的にPOとのミーティングを行う ○ 月次の会があるなら乗っかるか? PWGのその他のアジェンダ 31
Slide 32
Slide 32 text
アジェンダ ● PWGとは ● 何をやっているか ● どんな組織になるか ● まとめ 32
Slide 33
Slide 33 text
POが参加している ● 数字の変動要因をより知っている ○ サービス内のイベントや変化 ○ 数字の変化が予期されたものか、一時的か恒久的か ○ 例: CM放映による新規ユーザー増加とその影響 ● 未来の見通しも議論可能 ○ 利用状況のトレンドや今後の開発予定を共有 ○ スケールアップ等の対応を判断 33 https://www.minemura-coffee.com/entry/2023/12/06/194050
Slide 34
Slide 34 text
SLOがちゃんと運用される 34 ● SLOを達成しているか ○ PO、SRE、開発チームの全員が居る場で確認 ○ 違反していたらアクションを取る ● SLOは定期的に見直すもの ○ SLOや違反時のアクションを定めたドキュメントには revisit dateがある
Slide 35
Slide 35 text
● チームの一員とはいえ職種が違うと壁はある ● チームメンバーにタスクを振る練習ができる ○ PWGはSREsがオーナーシップを持ちやすい場なの で、進めていく意識を持ちやすい ○ その場でIssue化する流れの中で、解決したい時期を 決めたり、完了条件を決めたりしていく SREsのソフトスキル向上 35
Slide 36
Slide 36 text
● PWGを介して解像度が上がる ○ どんなアーキテクチャで動いているのか ○ 誰がどんな立場で発言しているか ○ 障害やアラート、ダッシュボードを一緒に読む機会 オンボーディング 36
Slide 37
Slide 37 text
感度の高い非インフラエンジニアの育 成 ● 何のためにこのメトリックを見ているのか ○ コンポーネント間の繋がり ○ 異常系のときにどういう動きをするのか ● このメトリックはどう変わると危ないのか ○ 上限が1000であることを知らないと、 10->100の変化にビビって慌てて調査してしまう 37 https://www.minemura-coffee.com/entry/2023/12/06/194050
Slide 38
Slide 38 text
● 障害時に本来鳴るべきアラートが鳴っていな いならおかしい ● 検知できるよう、監視を追加する ● ポストモーテム作成時に考えるものだが、 漏れていたらPWGで会話する 必要な監視を増やす 38
Slide 39
Slide 39 text
● 不要なアラートの棚卸し ● 一度追加した監視は削除するのが困難である ● 「このアラートいつも無視してるよね」 ● オオカミ少年アラートを許さない 監視条件をその場で変える 39
Slide 40
Slide 40 text
意思決定できる監視/ダッシュボード ● 「情報」は意思決定と行動を促すものである ● この原則に向き合って、監視を設計する ○ runbookを書けない監視は存在しない ● ダッシュボードも同様 ○ これが分かったら何が言えるのか、を一つずつ確認 ○ システムメトリックはダッシュボードには不要 40
Slide 41
Slide 41 text
● Embedded SREじゃない場合 ○ 運用を助けてくれるインフラ組織がプロダクト開発 チームの近くに居るはず ● キックオフやデイリーには居ないことが多い ので、PWGで情報を流す インフラ組織と会話する場 41
Slide 42
Slide 42 text
42 まとめ
Slide 43
Slide 43 text
まとめ 43 ● PWGを行うことで、チーム全員の認識が揃う ○ SLO、各コンポーネントの強弱、最近の傾向 ● ダッシュボードをみんなで見る ○ 継続して見ているだけで解像度が上がっていく ● ダッシュボードや監視が、育てていくものに ○ 特定の人/職種じゃなく、チームで育てていく ● チームでSLOや監視と向き合おう