ROBOT PAYMENT TECH-BLOG

株式会社ROBOT PAYMENTのテックブログです

請求管理ロボの2022年SLOを振り返って

請求管理ロボのエンジニアリングマネージャーの白坂です。本記事では請求管理ロボのSLOに対する取り組みと実際に運用を始めた際の気づきについてご紹介します。

SLIとSLO

SLI(Service Level Indicator)とはサービスの信頼性や可用性を測るための指標です。 SLO(Service Level Objectives)とはSLIの目標値で、当社では期待するユーザー体験を提供するための基準として設定しています。 SLOはSREチームが中心となり機能開発エンジニア、カスタマーサクセスやプロダクトマネジメントメンバーと一緒に運用を推進しています。

2022年のSLO

SLOの本格的な運用は2022年から開始しました。 ここで言う本格的な運用とは、SLIのダッシュボードを作成し定期的に以下のサイクルを繰り返すことを指しています。 1. SLOを満たしているかを確認する 2. 未達の原因となった現象を調査し以下のようなアプローチを検討する 1. パフォーマンスチューニングなどの対処をし、SLIを改善する 2. 目標とするユーザーの体験を阻害する実態がない場合はSLOを見直す

SLOの観点としては、はじめから多くのSLIや複雑なSLIを用意しても運用が煩雑になってしまうということもありレイテンシと可用性の2点で極力シンプルなSLIに絞りました。 実際に運用を始めるとレイテンシについて大きめの課題が浮かび上がってきました。

まずはじめに、レイテンシについては「ロードバランサーから計測したレスポンス時間の99パーセンタイル値」が一定を下回っていることを、公開API, 画面、特定画面それぞれでSLOを設定しました。 公開APIと画面では、ユーザーが異なることからSLOを分け、画面の中でも「ユーザー体験への影響が大きい一部機能」は優先するためにSLOを分けました。

運用して浮かび上がってきた改善余地

機能カットでレイテンシのSLOを掲げて運用したところ、SLOを満たしている場合でも期待するユーザー体験が提供できているのかという点について自信を持つことができませんでした。 当初設定した「レスポンス時間の99パーセンタイル値」については100リクエストがあったら1リクエストは無視するという考え方の指標です。これは1ユーザーが100回リクエストをして1回だけ目標値を下回るという状況なら課題とは考えていませんでしたが、100ユーザーいる中で1ユーザーが無視されていることと同等である可能性が合ったためです。 請求管理ロボはマルチテナントのサービスであり、テナントごとにデータ量に偏りがあります。データ量が多いテナントではレイテンシーが低下する傾向があり、そのテナントからのリクエストの多くが1%に内包されてしまっているという点に対する対策が必要になりました。

2023年の方針

対策として、SLIとしては複雑になってしまうもののレイテンシーは機能カットに加え「テナントごとにパーセンタイル値」を計測するようにしています。 運用前に計測を開始したところレイテンシーのばらつきが確認でき、狙い通り残り1%のリクエストに含まれていたテナントについてのユーザー体験の改善ができることを期待しています。



We are hiring!!

ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!

speakerdeck.com
www.robotpayment.co.jp
🎉twitter採用担当アカウント開設!🎉どんどん情報発信していきます!!