Upgrade to Pro — share decks privately, control downloads, hide ads and more …

成長痛に立ち向かうBill One SREのミッションと取り組み

paper2
March 09, 2023

成長痛に立ち向かうBill One SREのミッションと取り組み

急成長を支える開発組織の紹介を交えながら、Bill One の SRE チームが掲げるミッション、開発組織全体での信頼性担保の取り組みやその成果についてお話しします。

paper2

March 09, 2023
Tweet

More Decks by paper2

Other Decks in Programming

Transcript

  1. スピーカー紹介 Sansan 株式会社で Bill One プロダクトの SRE チームに 2022 年

    8 ⽉から所属。前職は SIer 企業でコンテナ技術や SRE の普及活動、AWS・Azure での Kubernetes サービスの 設計・構築に従事。現職では SRE のミッション定義や信頼 性向上の⽂化づくり、負荷試験による性能改善、 IaC 化など を推進。最近は Google Cloud ⼀筋。趣味は家族。 Twitter: @paper2parasol Kamitsukasa Yohei Sansan株式会社
  2. Bill One のご紹介 01 03 02 Bill One SRE のビジョンとミッション

    SRE プラクティスの実践 04 その他の取り組み 05 まとめ
  3. プロダクト開発チーム 4 ⼈前後のチームが 12 個存在 SRE 機能開発 グローバル対応 機能開発 機能開発

    機能開発 グローバル対応 グローバル対応 機能開発 機能開発 機能開発 機能開発
  4. 横串チーム 運⽤改善推進 IaC (Infrastructure as Code) 改善 押忍 (Auth) オンボーディング...etc

    フロントエンド エラー改善 開発組織横断の課題を解決する有志メンバによるチーム、任意結成・任意解散
  5. マイクロサービスを採⽤ サービス 機能開発チーム 機能開発チーム サービス 機能開発チーム サービス 機能開発チーム 開発・運⽤ 信頼性向上

    開発・運⽤ 信頼性向上 開発・運⽤ 信頼性向上 主要マイクロサービスが 6 個存在し、各マイクロサービスを 1~2 の機能開発チームで担当する
  6. 開発組織のスケーラビリティの維持 Bill One の成⻑のためにも SRE チームがボトルネックになり、 開発組織のスケーラビリティを低下させてはいけない SRE チーム スケーラビリティを阻害する例

    インフラ全部やる! 信頼性向上全部やる! なんでもやる!! 忙しすぎ、、これ以上は 対応できない、、、 環境構築 依頼 チーム チーム チーム 変更依頼 性能問題 調査依頼
  7. ミッション 開発チームが⾃律的に動ける仕組みを整えつつ、信頼性と開発効率の向 上をリードする • SRE チームメンバの専⾨性が必要なタスクは SRE が主導する • 並⾏してそれらを機能開発チームに委譲する仕組みづくりを検討・推進する

    SRE チーム サービス 機能開発チーム 機能開発チーム サービス 機能開発チーム サービス 機能開発チーム 開発・運⽤ 信頼性向上 開発・運⽤ 信頼性向上 開発・運⽤ 信頼性向上 信頼性向上 促進
  8. SLI / SLO • ユーザリクエストのレスポンスレイテンシ とエラー率を SLI としている • SLI

    が急激に低下した場合にバーンレートを 活⽤し、アラートを発報 • SLO は定義しているがエラーバジェットに よる意思決定は実施していない Users Bill One サービス サービス ・・・ SLO レイテンシ 99%tile が 1000ms 以下 エラー率 0.1% 以下
  9. その他の取り組み例 • 開発者の⾃律的な信頼性向上の⽂化づくり ◦ SRE のビジョン・ミッションの定義、 開発組織全体への共有 ◦ ポストモーテムの推進 ◦

    機能開発チームと週次でメトリクス確 認を開始 ◦ インフラの課題解決を SRE の⽀援を 前提に適宜機能開発チームに依頼 • 性能改善 ◦ 負荷試験による性能劣化原因の特定、 解消による信頼性向上(詳細後述) ◦ SRE チームで週次のメトリクス確認、 懸念点を機能開発チームと解消 • 可観測性向上 ◦ 分散トレーシングの活⽤、改善 ◦ サービスダッシュボードの作成
  10. 負荷試験による性能劣化原因の特定・解消 • 負荷試験による原因調査を実施 • Google Cloud のサポートと連携し調査を進めることで以下が判明 ◦ Cloud SQL

    の監査⽤クエリログの量が多いことが原因 ◦ 当原因は Google Cloud の提供するメトリクスやログでは特定できない • 別種の DB ログと組み合わせ、監査⽔準を維持しつつログ量を削減することで問題を解消 Bill One サービス サービス ・・・ GCE
  11. • DB の CPU、メモリ、ネットワークトラフィックなどはメトリクス上枯渇していなかった • アプリで記録される DB クエリのレイテンシが⻑い( 例 :

    300ms )のに対して、Cloud SQL の ログに表⽰されるクエリレイテンシは⾮常に短かった( 例 : 1ms ) • アプリを重点的に調査したが問題を⾒つけられず、Cloud SQL の確認も実施 • Cloud SQL のログが⽋損していることを(たまたま)発⾒ ◦ BigQuery で本番環境でも 30 秒以上ログが出⼒されない期間があることなどを確認 • その後サポートと連携し調査を進めることで原因を特定 Google Cloud の提供するメトリクスやログから原因が特定できないこと 困難だったこと
  12. まとめ Bill One のご紹介 • Bill One は機能開発チームとは別に有志メンバによる横串チームがある • マイクロサービスアーキテクチャを採⽤している

    ビジョン・ミッション • ビジョン ◦ ⾃律的に⾼い信頼性を維持できる開発チームを⽀えるための触媒となる • ミッション ◦ 開発チームが⾃律的に動ける仕組みを整えつつ、信頼性と開発効率の向上をリードする 取り組み例 • SRE チームでは SLI/SLO の定義、可観測性向上などに取り組んでいる • トイル削減は組織全体で実施できている • 負荷試験により成⻑痛(性能問題)を解消できた