Slide 1

Slide 1 text

成⻑痛に⽴ち向かう Bill One SRE のミッションと取り組み 2023-03-09

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Bill One のご紹介 01

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

アーキテクチャ

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

ミッション 開発チームが⾃律的に動ける仕組みを整えつつ、信頼性と開発効率の向 上をリードする ● SRE チームメンバの専⾨性が必要なタスクは SRE が主導する ● 並⾏してそれらを機能開発チームに委譲する仕組みづくりを検討・推進する SRE チーム サービス 機能開発チーム 機能開発チーム サービス 機能開発チーム サービス 機能開発チーム 開発・運⽤ 信頼性向上 開発・運⽤ 信頼性向上 開発・運⽤ 信頼性向上 信頼性向上 促進

Slide 18

Slide 18 text

SRE プラクティスの実践 03

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

SLI / SLO ● ユーザリクエストのレスポンスレイテンシ とエラー率を SLI としている ● SLI が急激に低下した場合にバーンレートを 活⽤し、アラートを発報 ● SLO は定義しているがエラーバジェットに よる意思決定は実施していない Users Bill One サービス サービス ・・・ SLO レイテンシ 99%tile が 1000ms 以下 エラー率 0.1% 以下

Slide 21

Slide 21 text

トイルの削減 ● 各メンバが個⼈・または横串チームなどで ⾃律的に削減活動を実施 例) 運⽤改善横串チームでは運⽤作業におけ るトイルの収集、タスク化、優先度付け、 各チームへの実装依頼などを実施 ● SRE チームとしての施策は特になく、組織 全体でトイル削減を実施できている 解消 解消 解消 解消

Slide 22

Slide 22 text

可観測性向上 ● アプリおよびインフラのログをトレースに 紐付け、ユーザの 1 リクエストに関する各 コンポーネントのログを抽出可能 ● 性能問題など細かい挙動の把握が必要な際 に課題を感じており、スパンの活⽤余地が ある トレース ID によるログ抽出

Slide 23

Slide 23 text

その他の取り組み 04

Slide 24

Slide 24 text

その他の取り組み例 ● 開発者の⾃律的な信頼性向上の⽂化づくり ○ SRE のビジョン・ミッションの定義、 開発組織全体への共有 ○ ポストモーテムの推進 ○ 機能開発チームと週次でメトリクス確 認を開始 ○ インフラの課題解決を SRE の⽀援を 前提に適宜機能開発チームに依頼 ● 性能改善 ○ 負荷試験による性能劣化原因の特定、 解消による信頼性向上(詳細後述) ○ SRE チームで週次のメトリクス確認、 懸念点を機能開発チームと解消 ● 可観測性向上 ○ 分散トレーシングの活⽤、改善 ○ サービスダッシュボードの作成

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

負荷試験による性能劣化原因の特定・解消 ● 負荷試験による原因調査を実施 ● Google Cloud のサポートと連携し調査を進めることで以下が判明 ○ Cloud SQL の監査⽤クエリログの量が多いことが原因 ○ 当原因は Google Cloud の提供するメトリクスやログでは特定できない ● 別種の DB ログと組み合わせ、監査⽔準を維持しつつログ量を削減することで問題を解消 Bill One サービス サービス ・・・ GCE

Slide 28

Slide 28 text

● DB の CPU、メモリ、ネットワークトラフィックなどはメトリクス上枯渇していなかった ● アプリで記録される DB クエリのレイテンシが⻑い( 例 : 300ms )のに対して、Cloud SQL の ログに表⽰されるクエリレイテンシは⾮常に短かった( 例 : 1ms ) ● アプリを重点的に調査したが問題を⾒つけられず、Cloud SQL の確認も実施 ● Cloud SQL のログが⽋損していることを(たまたま)発⾒ ○ BigQuery で本番環境でも 30 秒以上ログが出⼒されない期間があることなどを確認 ● その後サポートと連携し調査を進めることで原因を特定 Google Cloud の提供するメトリクスやログから原因が特定できないこと 困難だったこと

Slide 29

Slide 29 text

まとめ 05

Slide 30

Slide 30 text

まとめ Bill One のご紹介 ● Bill One は機能開発チームとは別に有志メンバによる横串チームがある ● マイクロサービスアーキテクチャを採⽤している ビジョン・ミッション ● ビジョン ○ ⾃律的に⾼い信頼性を維持できる開発チームを⽀えるための触媒となる ● ミッション ○ 開発チームが⾃律的に動ける仕組みを整えつつ、信頼性と開発効率の向上をリードする 取り組み例 ● SRE チームでは SLI/SLO の定義、可観測性向上などに取り組んでいる ● トイル削減は組織全体で実施できている ● 負荷試験により成⻑痛(性能問題)を解消できた

Slide 31

Slide 31 text

Bill One の SRE 募集中です!!

Slide 32

Slide 32 text

No content