こんにちは!今回は自社の株式会社ウィルゲートで2021年にSREチームの立ち上げをしてから2年経ったので立ち上げの背景から何をしてきたか、今のSREチームはどうなのかを振り返りたいと思います。
この記事は SRE Advent Calendar 2023 の 12日目の記事です。
なお、この記事はPHPカンファレンス北海道2024に出したプロポーザルのネタの供養でもあります。
また、このプロポーザルをきっかけにツナギメエフエムというpodcastにゲストとして招待されて話したりもしましたので、もしよければ聞いてください。
SREチームの立ち上げの背景
まず立ち上げの背景からですが、株式会社ウィルゲートでは2021年当時は開発チーム約15人程度で4~5程度の大小ある自社プロダクトの開発を行っていました。 普段の開発においては、プロダクトごとに機能開発や保守開発や運用を担う開発チームとインフラ全般の保守運用をまるっと担うインフラチームで構成されていました。 そんな中で、いくつかの問題が上がってきました。
- リリースサイクルが長い
- トイルの撲滅する動きが優先できていない
- SLI/SLOを経済的合理性に沿って定められていない
- 定期的に開発していくための土台がメンテナンスされていない
- インフラとアプリケーション開発の両方ができる人材がいない結果、領域の間にある問題が解消できない
こういった問題を改善するために、インフラチーム、開発チームとは別にSREチームを2021年に立ち上げました。
立ち上げ当初の活動
SREチームを組成するに当たって最初に行ったのはSREチームの役割を決めるところと人員を選抜するところからでした。
まず役割ですが、各プロダクトのユーザのニーズやビジネスモデルを一緒に理解するところからはじめ、それに合わせてSLI/SLOを事業部一緒になって考えるところからはじめました。
また、人員についてですがSREチームでは領域の垣根を超えてサービスの信頼性を向上するために幅広くやれる高いスキルとマインドが求められるところから、開発チームの中でもインフラを積極的に学び意欲があるメンバーがいたので、そのメンバーを中心にSREチームを立ち上げました。 定めたSLI/SLOを元に各プロダクトごとに開発チームと一緒にどういった改善をしていくかを考え、SREチームはそれを実現するためのサポートを行うという形で活動をしていきました。
実際に行ってきた活動
SREチームが立ち上がってから実際にどういった活動・施策をしてきたかを簡単に紹介したいと思います。 実質1.3人月くらいのリソースで各プロダクト開発チームとインフラチームに働きかけながら地道に各プロダクトごとにスケジュールや体制を決めながら下記施策を行ってきました。
- 未使用テーブルや計算ロジックの修正によるRDSのコスト削減
- Datadogの導入
- バッチ処理のFargate並列化
- Fargateのコスト最適化
- 外部サービスの使用箇所と料金の可視化
- 依存ライブラリのメンテナンス
- MySQL on EC2からRDS、RDSからAmazon Auroraへの移行
- 不要なAPIや画面、ライブラリの削除
- Dockerイメージのメンテナンス及びホスティングサービスのECRへの移行
- BitbucketからGitHubへの移行
- MySQL5.7からMySQL8.0への移行
- フロントエンドビルド環境をWebpackからViteへの移行
- E2Eテストの導入
- Larastan/PHPStanの導入と出ている警告の修正
- 重いエンドポイントの修正
- CI/CDの整備
- 頻出エラーやワーニングの修正及び出力条件の調整
本質的にはSRE活動というよりは地道な改善活動という感じですが、これらの活動を実施することによってよりよい開発環境を実感してもらうことができました。
このおかげで、ただサービスに必要な機能を開発するだけではなく、サービスの改善をしやすくするための活動(いわゆる木こりのジレンマにおける斧を研ぐという活動)も大事だということを開発チームに理解してもらうことができました。
現在のSREチーム
2023年12月 現在SREチームは技術的負債として残っているPHPのEOL対応として各プロダクトのバージョンアップを並行して主導しています。 (もともと細かい技術負債の返済やライブラリのメンテナンス、GitHub移行などしてきたのもこのPHPバージョンアップの対応のための布石でもありました。) これが実施できるのもSREとしての動きがSREチームだけでなく、各プロダクトの開発チームにおいても積極的にされるようになり、SREチームに余力が生まれてきている証拠でもあります。
そして、PHPのEOL対応が終われば、いよいよより本格的にSREとしてプロダクト横断でのサービスの信頼性を向上させるための活動に専念できるようになります。 また、その際には社内事例やノウハウをSRE系のカンファレンスなどで発表できればと思いますので、その際にはよろしくお願いします。
それでは、残りの SRE Advent Calendar 2023 の記事もお楽しみに