Slide 1

Slide 1 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 負債あるモノリスのオブザーバビリティに 組織で向き合う @mopp オブザーバビリティ実践までの道のり〜各社の課題とアプローチ方法とは?〜

Slide 2

Slide 2 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ About mopp ● 仕事 ○ ソフトウェアエンジニア ● エディタ ○ Neovim ○ VimConf 2024 の運営やってます ● 最近のできごと ○ セブンイレブンの豆腐ガトーショコラを 自宅で量産できた

Slide 3

Slide 3 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ About スタディサプリ 小中高 様々なスタディサプリの内 「小学講座」「中学準備・中学 講座」「大学受験講座」の領域 でのお話しをします

Slide 4

Slide 4 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ ● もっとオブザーバビリティ/監視を推進したいけど どうしたらいいのか悩んでいる人 ● モノリスのオブザーバビリティ/監視を改善したい人 対象者

Slide 5

Slide 5 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ オブザーバビリティとは? オブザーバビリティとは?監視との違い、必要性について解説 | New Relic より 何が起きたかを 見続けること 監視 なぜそれが起きたかを 探り出すこと オブザーバビリティ 基礎に「監視」がある (自分でも理解が曖昧でした) より進んだ概念

Slide 6

Slide 6 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ オブザーバビリティを実践するために 監視から強化していく

Slide 7

Slide 7 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 歴史と負債のあるモノリス Ruby サーバ アプリケーション 多くの機能が乗っている要所 エンドポイント数: 約240個 Web, Android, iOS の全クライアントから利用 地層の最深層は2015年くらい チーム エンドユーザ 利用する チーム チーム チーム チーム チーム チーム チーム チーム チーム チーム チーム チーム チーム チーム 約15チーム 開発する

Slide 8

Slide 8 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 歴史と負債のあるモノリス 直面する問題(の一部) エラー増加したとき どのチームを呼べばいいか わからない 実装の詳細が知りたい でも、誰も知らない 何かが起きてそう だが、どこが原因か調べにくい →オブザーバビリティが低い エンドポイントに Ownership を設定 一定解消 打ち手 今回はこの話をします 開発者 つらい、 とても… 近年の 社内有志たち による改善

Slide 9

Slide 9 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 今回の問題 現れた問題 ダッシュボードが見づらい 本来やりたかったこと Ownerチームの特定と接続のため どこで異常が起きているか知りたい 動作確認のため 問題がないか確認したい 開発者 グラフがたくさんあるけど どれを見れば…? 開発者 全体レイテンシが悪化して るけど原因はどのエンドポ イントだ… Ownership が混じる

Slide 10

Slide 10 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 問題の深堀り アプリケーションも一つ 監視には Datadog を利用 ダッシュボードは一つ アプリケーション全体の Owner は1チーム このグラフ、要らな い気がするけど誰か 見てる人いるかも… 1つのダッシュボードを 15チームで使おうとしていた ダッシュボードに新し いセクションを追加し たいけど、隣のチーム が Owner だしな… お互いの気遣いで 改善が停滞 チームXの開発者 チームZの開発者 チーム横断の改善が必要で コスト高く進んでいなかった チームXがOwner アプリケーション エンドポイント群A チームYがOwner エンドポイント群B チームZがOwner エンドポイント群C 状況 推定原因

Slide 11

Slide 11 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 初手のアプローチ ● Ownerチームを巻き込んで一緒に改善していく ○ メンバ全員でなくて OK ■ 予定調整で苦労したり、定例まみれになるよりは 一部メンバで軽量に進めたほうが有益 ■ チームとして知識があること、と チーム内でサイロ化しないこと、は別の問題 ○ 自分はリード役、ファシリテーション役を率先する

Slide 12

Slide 12 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 巻き込み力: 初手の声掛け Ownership を尊重し チームのスキル向上を支援 一緒に学ぶために ワークショップ形式を提案 毎週1時間の devs 知見交換会の場を利用 → 興味のある色々な人が来てくれる

Slide 13

Slide 13 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 巻き込み力: 一筆 ● 非同期コミュニケーションの活用 ○ 事前に背景や意図を伝える ● 記録として残す ○ 再現性の参考にする ○ 歴史として残す ○ 過程で登場した問題を記録する

Slide 14

Slide 14 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ ダッシュボード磨き込み会 場 オンライン 毎週火曜日 1時間弱 現時点で 5回実施 やっていること 方針の 相談と決定 具体の改善

Slide 15

Slide 15 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ ダッシュボード磨き込み会 ダッシュボードOwnerチームから 必ず1人は参加してもらう 工夫した点 工夫の狙い Ownership を尊重し 自己組織化を支援 モブプロ形式で実施 Driver は Owner チームを優先 誰でも参加 OK いつのまにか 「Datadog 歯磨き」と 呼ばれるようになった チーム横断の知見共有

Slide 16

Slide 16 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 得られた成果 大方針の策定 Ownership に準じて機能やエンドポイント に特化した別ダッシュボードを作る 既存のダッシュボードは アプリケーション全体を 俯瞰して見られるものにする 注意: あくまでも弊組織での事例 自チームの裁量で監視可能にする 異常の原因を掘り出せるように整備する → オブザーバビリティ 期待する効果

Slide 17

Slide 17 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 得られた成果 不要/重複グラフ削除による ダッシュボードの軽量化 5XX を最もよく見るので HTTPリクエストのグラフから着手 進める中で具体的な問題が見えてきた (例: SLOの問題、DBの監視不足) (個人的に嬉しかったこと) moppの休暇と会が被ったとき 問題なく進んでいたこと 例: ダッシュボードの一部

Slide 18

Slide 18 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ 振り返り ● オブザーバビリティへの道が一つ開けた ○ お見合い状態が解消できた ● Ownership と自己組織化が進む方向に迎えた ○ これを一人ではなくみんなで決められたことが偉業

Slide 19

Slide 19 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ まとめ ● 今回やったことを型化してみる ● オブザーバビリティ/監視を組織として推進するために 1. 問題に当たりを付ける 2. メンツを集める 3. 場を用意する 4. 会を推進する コミュニケーションコストを抑えつつ Ownership を尊重する トピックに関心が高い人から集める 「乗っていき」がある人がいつでも参入できるようにする 既存の場に便乗するのが便利 「自分の知見を提供する」だと推進者が疲れるので 「みんなで学んでいく」方が気楽でいい 会の辞め時や方針転換の気配は見逃さないように注意

Slide 20

Slide 20 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ フリー素材コーナー ● ご自由にお使いください エンドユーザ1 Drawn by ujihisa https://x.gd/i1vWi エンドユーザ2 Drawn by mopp https://x.gd/OE0Sn

Slide 21

Slide 21 text

#o11y_findy 負債あるモノリスのオブザーバビリティに組織で向き合う@スタディサプリ ご清聴ありがとうございました