アソビューの Embedded SRE の取り組みについて

アソビュー! Advent Calendar 2022 の18日目です。

エンジニアの村松です。昨日、ゴルフのラウンドに行ってきました。とても楽しかったのですがスコアはイマイチでした。やっぱり寒いときは体が回らないんですね。体が回らないとどうしても手でスイングしてしまいがち。そのせいでクラブがアウトサイドインの軌道になりカット気味に入ることによってサイドスピンが多くなり飛距離が出なく...、あ、興味ないですか、そうですか...。

今回はアソビューの Embedded SRE の取り組みについて紹介します。

背景

アソビューが提供するサービスはマイクロサービスとして構築されています。それらを支える多様なインフラや開発環境を運用/改善するため、2018年頃に SRE チームが作られました。

アソビューの SRE チームについては当アドベントカレンダーの12日目で紹介されています。ぜひご覧ください!

tech.asoview.co.jp

課題

プロダクトチームによるスピード感を重視した機能改善リリースによってアソビューの事業は大きく成長しています。また、事業の成長に合わせて開発組織も急拡大しています。

tech.asoview.co.jp

しかし、事業の成長や開発組織の拡大に対して、限られたメンバーで構成された SRE チームが追い付いていない課題がありました。具体的には次の通りです。

  • 多様なインフラや開発環境に関する問い合わせや依頼が SRE チームに集中する
  • SRE のプラクティスやインフラ/ツールのノウハウがプロダクトチームに浸透していない
  • 各プロダクトチームが抱える課題を SRE チームが把握できない

これらの課題に対して、アソビューでは2022年2月頃から Embedded SRE の取り組みを始めました。

Embedded SRE とは

一般的には専任の SRE メンバーがプロダクトチームに参加するケースが多いと思いますが、アソビューの Embedded SRE では、プロダクトチームに在籍するメンバーが SRE の役割を持ち、SRE チームのメンバーのサポートを得ながらプロダクトチームの課題解決や SRE のプラクティス浸透などを担います。

Embedded SRE のメンバーは、自身が開発を担当するサービスのコンテキストの理解やドメイン知識を通して、よりプロダクトの状況に合わせた施策を推進できます。

また、社内では SRE 領域に挑戦したい人が増えてきており、アソビューが目指す「フルサイクルエンジニア」を実現するためにも、プロダクトチームが自分たちで課題を解決できるようにすることや様々な領域へのチャレンジ機会の構築なども Embedded SRE の目的としています。

どのような取り組みか

これまでの取り組みの一例を紹介します。

プロダクトチームからの問い合わせ対応

アソビューでは、多様なインフラや開発環境を支えるために、(外部から見ると) 複雑な CI/CD や内製した開発ツールが存在します。一方で、これらのトラブルシューティングが発生するたびに SRE チームに問い合わせが発生する状況でした。

Embedded SRE では、プロダクトチームからの問い合わせの一次窓口を担って、できるだけプロダクトチーム内での解決を図ります。そのために、Embedded SRE のメンバーは CI/CD や開発ツールについて理解を深める必要がありましたが、これにより、SRE チームの負荷軽減だけでなく、プロダクトチームの開発効率向上やプロダクトチーム自体の強化に繋がりました。

SLO ダッシュボードの構築/運用

安定したサービスをユーザーに届けるための施策として SLO/SLI の運用があります。継続的にスピード感を持って機能改善をしていると、一時的にシステムエラーが増えることがあります。これまで、このような状況に対して保守/運用と機能開発のどちらを優先するのか、判断基準が曖昧でした。SLO を設定して日常的にモニタリングすることで、プロダクトチームやプロダクトマネージャーが SLO に基づいて優先度が判断できるようにする必要がありました。

そこで、Embedded SRE のメンバーが中心となり、Datadog 上に SLO ダッシュボードを構築しました。この SLO ダッシュボードを Embedded SRE のメンバーとプロダクトチームが定期的にモニタリングすることで、エラーバジェットが枯渇している場合にはプロダクトチームやプロダクトマネージャーで優先度判断できるフローを構築できました。

もちろん、SLO ダッシュボードは一度作ったら終わりではなく、継続的にアップデートする必要があります。きちんとメンテナンスされるように Embedded SRE のメンバーが中心となって運用しています。

負荷テストのためのインフラ構築

アソビューでは、GW や夏休みなどの繁忙期のタイミングに合わせて負荷テストを実施しています。

tech.asoview.co.jp

負荷テストはテスト環境を利用して実施しているのですが、インフラやアプリケーションは本番環境相当のスペックに合わせて実施しています。プロダクトチームでは特にインフラ関連のノウハウが不足しており、これまでは SRE チームのメンバーに作業依頼することがほとんどでした。マイクロサービスとして構築されたアプリケーションやインフラのスケールアウト/スケールアップ、負荷テスト終了後のスケールイン/スケールダウンの作業はなかなか大変です...。

そこで、これらの作業を Embedded SRE のメンバーで実施するようにしました。SRE チームの負荷軽減だけでなく、Embedded SRE メンバーがインフラ関連のノウハウを習得できるメリットがあります。とは言ってもまだまだ SRE チームメンバーのサポートは必要な状態ではあるものの、今後は、サービスの状況に合わせたキャパシティプランニングをプロダクトチームだけで完結できるようになればと思っています。

開発体験 (DX) の向上

アソビューではスピード感を重視した機能改善リリースを実現している一方で、日々の開発に関して課題を抱えていることも事実です。開発組織全体に対して DX アンケートを実施したところ、ドキュメント不足やテスト環境/ローカル環境に関する課題、リリースや運用に関するルール整備など、大小様々な課題が挙げられました。

開発体験の向上は開発速度やプロダクト品質の向上に繋がります。現在、SRE チームや Embedded SRE のメンバーを中心に、これらの課題を分類して目標を定めて改善に取り組んでいるところです。

その他にも Embedded SRE のメンバーで取り組んだ改善活動のひとつが当アドベントカレンダーの6日目で紹介されています。こちらもぜひご覧ください!

tech.asoview.co.jp

今後

事業の成長に合わせてプロダクトや開発組織はますますスケールしていきます。スピードと信頼性を両立するために、モニタリング強化やインフラ構築、仕組み作りやナレッジの共有、プロダクトチームからの課題に対する施策の推進などが必要になります。

アソビューでは、今後も SRE チームと協力して Embedded SRE に取り組んでいきます。

まとめ

アソビューの Embedded SRE の取り組みについて紹介しました。

明日は、SRE メンバーの鈴木から「Aurora MySQL 8.0 と PostgreSQL 13 へのバージョンアップの話」について紹介します!タイトルを見るだけでワクワクが止まらないですね!!

アソビューでは「生きるに、遊びを。」をミッションに、一緒に働くメンバーを募集しています!ご興味がありましたらお気軽にご応募いただければと思います!

www.asoview.com