Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
freee請求書のSLO違反改善活動について / SLO violation remediat...
Search
freee
PRO
June 03, 2025
1
650
freee請求書のSLO違反改善活動について / SLO violation remediation activities for freee invoices
freee
PRO
June 03, 2025
Tweet
Share
More Decks by freee
See All by freee
20251115_btconJP_フリー社における生成AI活用の試行錯誤とこれから
freee
PRO
0
25
dbt platform導入前の不安を解消する───リアルな一ヶ月検証記/Addressing Concerns Before Implementing the dbt Platform: A Real-World One-Month Trial
freee
PRO
0
460
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
PRO
4
1.1k
10分でわかるfreeeのPdM
freee
PRO
28
25k
AI時代の開発組織デザイン
freee
PRO
0
72
支出管理船団 エンジニア向け会社説明用資料/Company_Presentation_Materials_for_Fleet_Engineers_in_Expenditure_Management.pdf
freee
PRO
0
150
[2025/09/12更新] freeeのAIに関する取り組み
freee
PRO
2
930
開発組織発 AI駆動経営
freee
PRO
0
430
「SaaS × AI Agentの未来」freee が AWS で築く AI Agent 基盤
freee
PRO
0
240
Featured
See All Featured
The browser strikes back
jonoalderson
0
300
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
1
340
Game over? The fight for quality and originality in the time of robots
wayneb77
1
74
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
58
41k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Six Lessons from altMBA
skipperchong
29
4.1k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
For a Future-Friendly Web
brad_frost
180
10k
Leo the Paperboy
mayatellez
1
1.3k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
47
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
59
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
37
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定義はいいぞ