見出し画像

Now in REALITY Tech #50 サクサク会結成

どうも、サーバエンジニアのうすぎぬです。今回はREALITYのWebAPIレイテンシの監視・改善のために結成された「サクサク会」についてつらつら書いていきます。Let's サクサク!

サクサク会とは

サクサク会はSRE活動のコンテキストが強いチームで、REALITYのWebAPIのレイテンシを継続的に監視・改善することを目的に作られました。また、中長期的にはサーバのパフォーマンスを改善する取り組みを実施するための指標の定義にもチャレンジします。

ちなみに、サクサク会というのはREALITYを「サクサク」動く軽快なアプリにしていこうという目標だったり、想いだったりが込められた名前になってます。早さは正義です。アプリがサクサク動いて困る人は誰もいません。でも取り組みがうまくいったらもうちょっとかっこいい名前をつけようと思ってます。

現在はREALITYのサーバチームの有志数名が参加し、2022年の8月末から活動しており、できたばかりのひよこチームですが早速成果が出始めています!具体的な成果については後ほど。

担当する領域

サクサク会ではWebAPIのレイテンシ改善を中心に以下5点に取り組みます

  • 継続的なレイテンシ及びサーバ負荷の監視

  • サーバアプリケーションロジックの最適化

  • DBパフォーマンスチューニング

  • Monitoring環境の整備

  • サーバ費用削減

主に利用するツールは以下の通りで、レイテンシ・サーバ負荷監視基盤の整理から実際のレイテンシ改善・パフォーマンスチューニング(アプリケーションレイヤーの実装)までを一気通貫で担当します。

  • Grafana Cloud

  • Google データポータル

  • Cloud Trace | Google Cloud

  • Cloud Monitoring | Google Cloud

  • Cloud Profiler | Google Cloud

  • Cloud Logging | Google Cloud

  • BigQuery | Google Cloud

モザイクばっかりなのでお見せしてもしょうがないですがイメージ図です。

Grafanaによるレイテンシ監視。
サクサク会のSLIに関連するサービス全体のレイテンシが確認される。
データポータルによるレイテンシ監視用のダッシュボード。
WebAPIのエンドポイントごとのレイテンシが確認される。

目標

サクサク会の結成に伴い、サクサク会の活動の指標となる目標としてWebAPIのレイテンシのSLOを設定しました。
(SRE活動の第一歩です。)

大人の事情で全てを紹介するのは厳しいのですが、具体的には以下のような目標を設定しています。

  • 全てのAPIについてLatencyの95%ileを原則1.0 sec以内に収める

今のところ、この数値を目標にタスクの切り出しなど行っていますが、改善が進めば、APIのユースケースやドメインの特徴を踏まえたSLIの設定をしたり、他の技術ドメインでの改善活動も視野に入れたいところであります。

活動事例・成果

出来たばかりのチームですが、続々と成果が出ています。例えば、

  • APIのレイテンシ改善

レイテンシ改善を施したWebAPIのCloudTraceによる分析レポート。
SQLチューニングや処理の最適化/並列化による改善。
改善による影響は逐一確認し、メンバーの健闘を称え合う。
  • サーバ負荷軽減

Grafana / prometheusを利用したmetrics監視。
MySQLインスタンスへの新規connection数を大幅に削減した様子。
  • アプリ挙動の高速化

配信開始処理の高速化の様子。右が改善後。
以前まで配信開始ボタンを押してからくるくるが数秒続いていた。

などなど。

サクサク会で改善できる箇所は無限に存在します。引き続きAPIのレイテンシ改善を続ける傍ら、分散トレーシング環境の整理やprometheusによるmetrics収集の環境整備など、Monitoring環境の構築も進めていきます。

(おまけで健闘を称えあっている図をぺたり。こんな雰囲気でやってます)

最後に

さて、今回はまだ組織されたばかりのサクサク会の取り組みを紹介しました。サクサク会ではREALITYのエンジニアリンググループが「サービスの安定性やパフォーマンスを考慮したサービス設計・実装」を行えるようになるような、SREの文化醸成ための第一歩としてレイテンシ改善に取り組みます。

この取り組みはREALITYがグローバルに拡大していくためにはエッセンシャルなものです。しかし、WantedlyでのSREの募集要項にもある通り、現状REALITYにはサービスの安定性やパフォーマンスにフォーカスした専門のチームや人材は存在せず(サクサク会はあくまで有志による活動)、専門のSREチームを組織しさらに信頼性の高いサービス構築を実現するためにはさらに多くのエンジニアの協力が必要になります。(2022/09時点)。是非、REALITYのSREに貢献したい!という方がいましたら、ご応募お待ちしております!