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. 成⻑痛に⽴ち向かう Bill One
    SRE のミッションと取り組み
    2023-03-09

    View Slide

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

    View Slide

  3. Bill One のご紹介
    01
    03
    02 Bill One SRE のビジョンとミッション
    SRE プラクティスの実践
    04 その他の取り組み
    05 まとめ

    View Slide

  4. Bill One のご紹介
    01

    View Slide

  5. Bill One プロダクトの紹介
    Bill Oneは、Sansan株式会社が提供するインボイス管理サービスです。
    郵送やメールといったさまざまな⽅法・形式で届く請求書をオンラインで⼀括受領し、素早く正確にデータ化。請求書をク
    ラウド上で⼀元管理することで、アナログで⾮効率な請求書業務をデジタル化します。インボイス制度や電⼦帳簿保存法に
    も対応し、⽉次決算業務を効率化することで、企業経営における意思決定のスピードを加速します。
    ※⽉次決算業務
    毎⽉の営業成績、財政状況を明らかにするために⾏われる業務。経理担当者が⾏う業務で、毎⽉の数字の締め処理作業として発⽣します。

    View Slide

  6. 急成⻑中のプロダクト
    Sansan株式会社 2023年5⽉期 第2四半期 決算説明資料より引⽤

    View Slide

  7. スケーラブルな開発組織
    急成⻑に伴った組織規模拡⼤のためにシステム同様組織のスケーラビリティが重要となる
    可能な限りの権限が委譲され、上⻑がボトルネックにならないスケーラブルな組織を⽬指している
    グループリーダ
    権限委譲しない組織
    全部
    決めたい!!
    忙しい、、承認待って
    これ以上チームは
    増やせない、、
    承認伺い
    権限委譲する組織
    ええやん
    相談
    相談を重ねて
    ⾃らが
    最終判断をする グループリーダ
    チーム チーム チーム チーム チーム チーム チーム チーム

    View Slide

  8. プロダクト開発チーム
    4 ⼈前後のチームが 12 個存在
    SRE
    機能開発
    グローバル対応 機能開発
    機能開発
    機能開発
    グローバル対応
    グローバル対応 機能開発
    機能開発
    機能開発
    機能開発

    View Slide

  9. 横串チーム
    運⽤改善推進
    IaC (Infrastructure as Code) 改善
    押忍 (Auth)
    オンボーディング...etc
    フロントエンド
    エラー改善
    開発組織横断の課題を解決する有志メンバによるチーム、任意結成・任意解散

    View Slide

  10. マイクロサービスを採⽤
    サービス
    機能開発チーム 機能開発チーム
    サービス
    機能開発チーム
    サービス
    機能開発チーム
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    主要マイクロサービスが 6 個存在し、各マイクロサービスを 1~2 の機能開発チームで担当する

    View Slide

  11. アーキテクチャ

    View Slide

  12. Bill One SRE の
    ビジョンとミッション
    02

    View Slide

  13. Bill One SRE チームのビジョンとミッション
    ミッション
    開発チームが⾃律的に動ける仕組みを整えつつ、
    信頼性と開発効率の向上をリードする
    ビジョン
    ⾃律的に⾼い信頼性を維持できる
    開発チームを⽀えるための触媒となる

    View Slide

  14. 開発組織のスケーラビリティの維持
    Bill One の成⻑のためにも SRE チームがボトルネックになり、
    開発組織のスケーラビリティを低下させてはいけない
    SRE チーム
    スケーラビリティを阻害する例
    インフラ全部やる!
    信頼性向上全部やる!
    なんでもやる!!
    忙しすぎ、、これ以上は
    対応できない、、、
    環境構築
    依頼
    チーム チーム チーム
    変更依頼 性能問題
    調査依頼

    View Slide

  15. ビジョン
    ⾃律的に⾼い信頼性を維持できる開発チームを⽀えるための触媒となる
    ※ 触媒とは化学反応の反応速度を速める物質で、⾃⾝は反応の前後で変化しないものをいう
    サービス
    機能開発チーム 機能開発チーム
    サービス
    機能開発チーム
    サービス
    機能開発チーム
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上

    View Slide

  16. ビジョン
    ⾃律的に⾼い信頼性を維持できる開発チームを⽀えるための触媒となる
    ※ 触媒とは化学反応の反応速度を速める物質で、⾃⾝は反応の前後で変化しないものをいう
    SRE チーム
    サービス
    機能開発チーム 機能開発チーム
    サービス
    機能開発チーム
    サービス
    機能開発チーム
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    なんかめっちゃ
    信頼性維持しやすい!

    View Slide

  17. ミッション
    開発チームが⾃律的に動ける仕組みを整えつつ、信頼性と開発効率の向
    上をリードする

    SRE チームメンバの専⾨性が必要なタスクは SRE が主導する

    並⾏してそれらを機能開発チームに委譲する仕組みづくりを検討・推進する
    SRE チーム
    サービス
    機能開発チーム 機能開発チーム
    サービス
    機能開発チーム
    サービス
    機能開発チーム
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    開発・運⽤
    信頼性向上
    信頼性向上
    促進

    View Slide

  18. SRE プラクティスの実践
    03

    View Slide

  19. SRE プラクティス実践例のご紹介
    SLI / SLO トイル削減 可観測性向上

    View Slide

  20. SLI / SLO

    ユーザリクエストのレスポンスレイテンシ
    とエラー率を SLI としている

    SLI が急激に低下した場合にバーンレートを
    活⽤し、アラートを発報

    SLO は定義しているがエラーバジェットに
    よる意思決定は実施していない
    Users Bill One
    サービス
    サービス
    ・・・
    SLO
    レイテンシ 99%tile が 1000ms 以下
    エラー率 0.1% 以下

    View Slide

  21. トイルの削減

    各メンバが個⼈・または横串チームなどで
    ⾃律的に削減活動を実施
    例) 運⽤改善横串チームでは運⽤作業におけ
    るトイルの収集、タスク化、優先度付け、
    各チームへの実装依頼などを実施

    SRE チームとしての施策は特になく、組織
    全体でトイル削減を実施できている
    解消 解消
    解消
    解消

    View Slide

  22. 可観測性向上

    アプリおよびインフラのログをトレースに
    紐付け、ユーザの 1 リクエストに関する各
    コンポーネントのログを抽出可能

    性能問題など細かい挙動の把握が必要な際
    に課題を感じており、スパンの活⽤余地が
    ある
    トレース ID によるログ抽出

    View Slide

  23. その他の取り組み
    04

    View Slide

  24. その他の取り組み例

    開発者の⾃律的な信頼性向上の⽂化づくり

    SRE のビジョン・ミッションの定義、
    開発組織全体への共有

    ポストモーテムの推進

    機能開発チームと週次でメトリクス確
    認を開始

    インフラの課題解決を SRE の⽀援を
    前提に適宜機能開発チームに依頼

    性能改善

    負荷試験による性能劣化原因の特定、
    解消による信頼性向上(詳細後述)

    SRE チームで週次のメトリクス確認、
    懸念点を機能開発チームと解消

    可観測性向上

    分散トレーシングの活⽤、改善

    サービスダッシュボードの作成

    View Slide

  25. プロダクトの成⻑痛
    成⻑に伴い負荷量が増え、⾼負荷時に性能劣化が発⽣
    Bill One
    サービス
    サービス
    ・・・

    View Slide

  26. ユーザリクエストのレイテンシ SLI が急激に低
    下したことをアラートにより検知
    原因が特定できず、試⾏錯誤の中で実施した
    DB のスペックアップにより解消
    ⾼負荷時の性能劣化
    Bill One
    Users
    Bill One
    Users

    View Slide

  27. 負荷試験による性能劣化原因の特定・解消

    負荷試験による原因調査を実施

    Google Cloud のサポートと連携し調査を進めることで以下が判明

    Cloud SQL の監査⽤クエリログの量が多いことが原因

    当原因は Google Cloud の提供するメトリクスやログでは特定できない

    別種の DB ログと組み合わせ、監査⽔準を維持しつつログ量を削減することで問題を解消
    Bill One
    サービス
    サービス
    ・・・
    GCE

    View Slide


  28. DB の CPU、メモリ、ネットワークトラフィックなどはメトリクス上枯渇していなかった

    アプリで記録される DB クエリのレイテンシが⻑い( 例 : 300ms )のに対して、Cloud SQL の
    ログに表⽰されるクエリレイテンシは⾮常に短かった( 例 : 1ms )

    アプリを重点的に調査したが問題を⾒つけられず、Cloud SQL の確認も実施

    Cloud SQL のログが⽋損していることを(たまたま)発⾒

    BigQuery で本番環境でも 30 秒以上ログが出⼒されない期間があることなどを確認

    その後サポートと連携し調査を進めることで原因を特定
    Google Cloud の提供するメトリクスやログから原因が特定できないこと
    困難だったこと

    View Slide

  29. まとめ
    05

    View Slide

  30. まとめ
    Bill One のご紹介

    Bill One は機能開発チームとは別に有志メンバによる横串チームがある

    マイクロサービスアーキテクチャを採⽤している
    ビジョン・ミッション

    ビジョン

    ⾃律的に⾼い信頼性を維持できる開発チームを⽀えるための触媒となる

    ミッション

    開発チームが⾃律的に動ける仕組みを整えつつ、信頼性と開発効率の向上をリードする
    取り組み例

    SRE チームでは SLI/SLO の定義、可観測性向上などに取り組んでいる

    トイル削減は組織全体で実施できている

    負荷試験により成⻑痛(性能問題)を解消できた

    View Slide

  31. Bill One の SRE
    募集中です!!

    View Slide

  32. View Slide