Collaboration SREが挑戦するプロダクト運用改善施策
この記事は何?
弊社SREチームCollaboration SREでは、組織全体のプロダクト運用水準をあげるための施策を考案・検証しています。この記事では直近の取り組みについて紹介します。
あなたは誰?
株式会社グロービスのデジタルプラットフォーム部門(以下、GDP)でSite Reliability Engineerをしており、AWS,K8s(EKS)周りを中心に扱っています。クラウドインフラ分野を主軸と置きつつ、プロダクト開発チームと一緒に運用・監視の改善やインフラリソースへの扱いに対する心理的ハードルを下げる取り組みをしています。
(前提)Collaboration SREの立ち位置
Collaboration SREの業務は、SREプラクティスとPlatform SREが開発する共通基盤・仕組みを、各プロダクトチームの状況に合わせて適用するためのサポートを行うことです。
プロダクト開発チームが主導的に改善を進められるよう支援し、特定チームの専属になることや一方的な介入を避けることで、SREが組織全体のボトルネックとならないよう心がけています。
背景
以前にCollaboration SREのVision/Valueを策定しました。これらを定めた上で中長期的に組織をより良くしていくことを目指すに当たり、Collaboration SREとしてどういった切り口で貢献していけるかを考えました。
※Vision/Valueを決めた話については以下をご覧ください。
特にプロダクトに関わるすべてのユーザーに価値を届けるには、自社サービス運営において不可避なプロダクト運用
にフォーカスし、組織全体でその水準を向上させていくことが重要ではないかと考えました。
これはニュアンスの問題なだけかも知れませんが、SREプラクティスを導入する
という表現は、SRE以外の人にとっては「専門家がいい感じにやってくれるもの」という印象を与えがちです。一方、プロダクト運用を良くしていくためにそれぞれの領域で改善できることをしよう
とすると、プロダクトに関わるすべての人が自分ごととして捉えやすくなると感じたことも理由の一つです。
目的
今回の取組の目的は主に以下2点です。
- グロービスの対象とする
プロダクト運用の指標
を見える化することで、プロダクトチームとSREがそれぞれどのような役割を果たせるかの共通認識を構築すること- まずは現状についてプロダクト開発チームとSREの間での認識確認を行う
- 中長期的には各チームが自分たちの役割を果たせるようにするために組織全体でスキル向上につなげたい
- 上記指標を用いてプロダクトチームとプロダクト運用の現状を確認し、プロダクトチームが抱える潜在的な課題を発掘すること
- プロダクトチームとSREは課題ベースでの相談を頻繁に行いますが、逆に言えば目に見える課題が出ていない場合は議論に至ることが少ないため、潜在的な課題を広く見つける機会をつくりたい
取り組み
施策の内容
プロダクト運用
という言葉を聞いて思い浮かべるトピックは人によって異なります。またそのトピックに対する指標も幅広いため、「我々はプロダクト運用をちゃんとできているのか?」という質問に自信を持って「YES」と回答することは難しいと感じています。
一方で現実の運用では以下のようなケースが多く、「不安感はあるけれど、自分たちはプロダクト運用にそれほど困っていないのでは?」といった思いになりがちです。
そこで、プロダクト運用を構成する項目を見える化することで、プロダクト運用に何が必要かについての共通認識をプロダクトチームとSRE間で築き、それらの項目に対する現状把握と今後の注力ポイントについて議論できる状態を作りたいと考えました。
これを プロダクト運用成熟度モデル
としてスタートしました。
以下のように様々な項目をリストアップしていますが、プロダクトによって規模・フェーズ・重要とするポイントは異なるため、これらをすべて完璧に満たす必要は無いと考えています。プロダクト運用に付いての要素を網羅的に挙げるとだいたいこういった観点がありますが、これらに対して皆さんの認識・温度感を教えてください。そのうえで、さらに良くしたいところややりたいけど困っていることを一緒に改善しましょう!
といったスタンスで取り組むことにしました。
進め方
SRE内での方針決め
プロダクト運用成熟度モデル
自体は自分がたたき台を作ったうえでSRE内で議論を通して大枠を決めました。一度決まった項目が永久に変わらないというわけではないので、完璧なものを目指すよりも実際に走り始められる形に収めることをゴールとしました。
既存施策との方向性を確認
この取り組みが組織内の他チームの施策と重複しないかを確認しました。SREはProduct Successという組織に属しており、この組織にはQA、DevEx、ISなどの他チームも存在し、それぞれが組織横断的に活動しています。既存の施策との整合性を保ちながら実施するため、導入前に各チームとの認識合わせを行いました。
目的は大きな組織の中で全体の方向性を合わせながら適切な改善施策を実行することであるため、この施策が既存の他の施策とコンフリクトなどしてプロダクト開発チームに混乱を招かないように下準備をしました。
プロダクトチームとのヒアリング会を実施
プロダクトチームにはSREから個別に声をかけて会を設けました。
SlackのHuddleを使いながらワイワイ進めました。
プロダクトによっては構成チームが非常に多い(合計8チーム、60名以上)ため、Miroを使いながらチーム毎に意見を広く出してもらうようにしました。このケースでは項目を一つずつ見ていくのは現実的ではないため、既存の施策に対する回答についての意見や改善として出来そうなことを挙げてもらう会としました。
会を通して出た改善できそうなポイント一例
各プロダクトチームから様々な意見・フィードバックを頂きました。以下はその一例です。
- Datadogの立ち位置とオーナーシップが分かりにくく、プロダクト開発チームが触る際に躊躇する
- プロダクト運用ではDatadogとSentryの両方を使用しているものの、アプリケーションエラーはSentryで捕捉しているため、Datadogを活用する具体的なメリットやユースケースが不明確である
- 顧客問い合わせの際に活用するユーザーログを長年蓄積していて扱いに困っている
- 検証環境への本番マスクデータ投入を手軽にできるようになると各プロジェクトのQAが効率化できる
- ユーザー影響やそれに伴う調整を最小限にするために、特定のURLベースでシステムメンテナンスを実行できるようになると嬉しい
一連の取り組みからの学び
「誰か一緒にやりませんか?」ではなく、「一緒にやりましょう!」のスタンスが大事
SREとして初めての取り組みだったため、最初は「何かお困りのことはありませんか?」や「一緒に取り組みたいのですが、ご興味のある方はいらっしゃいますか?」といったやや受動的な姿勢で進めようとしました。
しかし、プロダクトチーム内の個人レベルでは興味を持っていただくことが多かったのですが、プロダクト単位の大きな話題となると関係する人も多く様々な調整なども必要になるため、気軽に手を挙げづらい雰囲気がありました。
一般的に、ものごとを小さく始めるという意味で「まずは広く声をかけて、反応のあったチームと実験的に進める」というアプローチは悪く無いと思います。ただし、トピックによっては「誰か」という漠然とした呼びかけではなく、「あなたと一緒に」という具体的なアプローチが効果的だと学びました。
チームを越えた共通認識の重要性
グロービスのSREでは プロダクト開発チームが自らDevOps的な開発生産性向上と信頼性の維持を行える状態
を目指しており、各プロダクトチームへの段階的な移譲を基本方針としています。ただし、取り組みの意図や責任分界点をすべて明確に定めることは現実的ではありません。そのため、プロダクトチームとSREの継続的な対話を通じて、運用に関する共通認識を築くことが重要です。
今回の会を通して、プロダクト開発チームと運用に関連して幅広く認識を確認できる場となり、こういったアプローチも意味があるなと感じました。
今後について
組織全体のプロダクト運用水準を向上させるため、第一段階としてプロダクト運用成熟度モデルに基づき、各プロダクトチームと運用の現状について認識を共有しました。次のステップとして、この取り組みを持続的で意義あるものとするため、施策をどのように組織に組み込んでサイクルを確立していくのが良いかを模索していきたいと考えています。
Discussion