$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
freee請求書のSLO違反改善活動について / SLO violation remediat...
Search
freee
June 03, 2025
1
570
freee請求書のSLO違反改善活動について / SLO violation remediation activities for freee invoices
freee
June 03, 2025
Tweet
Share
More Decks by freee
See All by freee
dbt platform導入前の不安を解消する───リアルな一ヶ月検証記/Addressing Concerns Before Implementing the dbt Platform: A Real-World One-Month Trial
freee
0
52
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
4
1k
10分でわかるfreeeのPdM
freee
28
25k
AI時代の開発組織デザイン
freee
0
55
支出管理船団 エンジニア向け会社説明用資料/Company_Presentation_Materials_for_Fleet_Engineers_in_Expenditure_Management.pdf
freee
0
140
[2025/09/12更新] freeeのAIに関する取り組み
freee
2
860
開発組織発 AI駆動経営
freee
0
360
「SaaS × AI Agentの未来」freee が AWS で築く AI Agent 基盤
freee
0
210
freee が目指す生成 AI 時代に向けた次世代データ プラットフォームとガバナンスとは / freee's Next-Generation Data Platform and Governance for the Coming Age of Generative AI
freee
1
630
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
GitHub's CSS Performance
jonrohan
1032
470k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Site-Speed That Sticks
csswizardry
13
990
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
How GitHub (no longer) Works
holman
316
140k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Thoughts on Productivity
jonyablonski
73
5k
Transcript
freee請求書のSLO違反改善活動について 2025/05/29
2 kochan 経歴 • ⼊社:2024/4 ◦ 24卒で⼊社 2024年7⽉から請求書に配属された •
関⻄ネスト配属 • 趣味 ◦ お菓⼦作り • freee-developers-hub編集部に関わっています • 最近髪のダメージが酷くて悩んでいる freee請求書 エンジニア 川本 孝太朗
3 01 SLOとは 02 請求書でのSLO設定 03 改善活動について 04 まとめ Contents
4 01 SLOとは 02 請求書でのSLO設定 03 改善活動について 04 まとめ Contents
5 SLOとは • SLOとは? ◦ SLO(Service Level Objective)は、システムやサービスの提供における 具体的な⽬標値を定めたもの ◦
SLOでは、サービスレベルという形でサービスの品質を計測できるようにする
6 SLOとは • なぜSLOを設定するのか? ◦ プロダクトの品質の明⽂化 ◦ ユーザ⽬線の品質指標 ◦ ⼒をいれるところ、抜くところが明確になる
7 SLOとは • なぜSLOを設定するのか(おまけ) ◦ 進化的アーキテクチャの適応度関数の⽂脈 ◦ アーキテクチャを継続的に進化させていくにあたって アーキテクチャの満たすべき客観的指標を定めている ◦
新機能開発と品質担保のいい感じのバランスをとりやすくなる ref: https://www.oreilly.co.jp/books/9784873118567/
8 01 SLOとは 02 請求書でのSLO設定 03 改善活動について 04 まとめ Contents
9 ⼀括送付のパフォーマンスやインポートによる⼀括作成のパフォーマンスなど ◦ バリデーションなどの同期処理はp99.5で3sという⾼めの⽬標設定 ◦ ⼀⽅で⾮同期処理に関してはある程度遅くても業務を阻害しないのでp99.5で300sの設定 これらの指標はプロダクトマネージャーと協⼒してユーザー体験に基づいて決定した freee請求書でのSLO定義の例
10 ⼀括送付のバリデーションを⾏うエンドポイントが⼤きくユーザー体験を毀損している ◦ バリデーションは同期処理。3sという⽬標に対して30sぐらいかかっていた SLOを定義してわかったこと
11 01 SLOとは 02 請求書でのSLO設定 03 改善活動について 04 まとめ Contents
12 ◦ 3sという⽬標に対して30sぐらいかかっている ▪ N+1がひどい ▪ PDF⽣成処理が重い(1件500msぐらいかかっている) 原因調査 PDF⽣成処理
13 ⼀括送付の事前バリデーション処理 ⼀括送付 Validation Request freee請求書 郵送にかかる料⾦を表⽰ 料⾦は帳票のページ数に よって決定 基盤サービス
帳票⽣成リクエスト … ここが遅い
14 難しいポイント ◦ PDF⽣成処理が重いためN+1を解消しても3sというSLOは満たせない ◦ メインの開発案件ではないため⼯数最⼩で進めたい 対策⽅針を考える
15 帳票作成‧更新時にPDFを⽣成してページ数だけ保存する ◦ エンジニアの⼯数はそんなにかからない ▪ ページ数を保存するテーブルの追加 ▪ ページ数を保存/参照する処理の実装 ◦ 既存のデータを変更しないためユーザーに⾒える仕様変更はない
▪ 仕様変更に関わるユーザー影響調査が不要 この⽅針でプロダクトマネージャーと仕様合意 対策案:ページ数計算を事前に⾏う
16 作成‧更新でPDF⽣成なんて重い処理をやって⼤丈夫? エンジニアと設計を相談した時に出てきた議論 ◦ 作成‧更新の際にPDF⽣成をするならインポートのパフォーマンスが悪化するのでは? ▪ 確かにCSVインポートなど⼀括で帳票作成する処理が遅くなる
17 作成‧更新でPDF⽣成なんて重い処理をやって⼤丈夫? エンジニアと設計を相談した時に出てきた議論 ◦ 作成‧更新の際にPDF⽣成をするならインポートのパフォーマンスが悪化するのでは? ▪ 確かにCSVインポートなど⼀括で帳票作成する処理が遅くなる ◦ しかし⼤きな問題はない ▪
インポートのSLO定義はp99.5で300sなので、PDF⽣成処理を作成側に寄せてもSLOを違反しない
18 今まで一番酷かったケースは 30倍高速化 ◦ リリース前の酷かったケースと件数同じ ◦ リリース前は29.7sだったのが0.9sに 結果
19 SLOも改善傾向 完全解消とまではいかないが、大幅に改善 • 今までのひどい処理に埋もれていた部分がボトルネックに。それも近日中に修正予定 インポート系もほぼ悪化していない
20 01 SLOとは 02 請求書でのSLO設定 03 改善活動について 04 まとめ Contents
21 • サービスの品質がユーザー体験を満たしているかどうかがわかる • パフォーマンスの変化がユーザー体験にどんな影響を与えるのかを定量的に議論することができる ◦ 定量的な指標があることでスムーズに合意を得られる 結論:SLO定義はいいぞ