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
Backendはつらいよ - 複雑性をコントロールする技術/Backend_is_Hard_-...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hirai.kazushi
May 15, 2026
Technology
66
0
Share
Backendはつらいよ - 複雑性をコントロールする技術/Backend_is_Hard_-_Techniques_for_Controlling_Complexity.pdf
以下のイベントでの登壇資料です
Backendを語る会 in 福岡 #1
https://backend-fk.connpass.com/event/391337
hirai.kazushi
May 15, 2026
More Decks by hirai.kazushi
See All by hirai.kazushi
Feature Flagを用いたサーバーサイドリリースの実装と柔軟な運用について/implementation_and_operation_of_server_side_release_with_feature_flag
policemankh
1
1.1k
信頼性と柔軟性向上のためのマイクロサービスのリアーキテクティング/architecture-redesign-of-microservices-for-improved-reliability-and-flexibility
policemankh
0
640
How to manage increasingly complex microservices
policemankh
0
79
複雑になったマイクロサービスを どう管理するか/how-to-manage-increasingly-complex-microservices
policemankh
0
2.6k
非同期メッセージングサービスを使ったLINEメッセージ配信の改善/improve-oa-messaging-with-asynchronous-architecture
policemankh
0
470
Other Decks in Technology
See All in Technology
AI時代に改めて考える、ドメイン駆動設計 - モデリングが「AIへの共通言語」になる
littlehands
8
2.8k
oracle-to-databricks-migration-with-llm-and-dbt
casek
0
350
管理アカウント単一運用からAWS Organizationsに移行するの大変で滅
hiramax
0
300
まだ道半ば、AI-DLCを歩み始めている話
news_it_enj
2
210
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
0
570
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
340
プラットフォームエンジニア ワークショップ/ platform-workshop
databricksjapan
0
110
AI駆動開発でなんでもハンズオン環境をつくってみた
yoshimi0227
0
170
Strands Agents超入門
kintotechdev
1
130
layerx-fde-practices
cipepser
6
2.8k
【ハノーバーメッセ振り返りイベントat名古屋】データは集約からAI起点の収集に ~組織内・組織間でのデータ連携~
tanakaseiya
0
140
責任あるソフトウェアエンジニアリングの紹介4章・5章 / RSE_Ch4-5
ido_kara_deru
0
360
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.7k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
370
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
710
Mind Mapping
helmedeiros
PRO
1
210
The Language of Interfaces
destraynor
162
26k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
BACKEND はつらいよ 〜 複雑性をコントロールする技術 〜 LINEヤフー株式会社 平井 ⼀史
平井 ⼀史 (Hirai Kazushi) LINEヤフー株式会社 コンテンツ&メンバーシップドメイン所属 LINE STORE、LINEスタンプ関連を担当 興味:家族、マラソン、体を動かすこと バックエンドの複雑性と⽇々向き合っています
自己紹介
⼤規模プラットフォームの運⽤ LINEのエコシステムを⽀える主要なバックエンドシステムを担当 LINE STORE スタンプ‧着せかえ等、LINEの デジタルアイテムを販売する公式 オンラインストア。 収益基盤となるプラットフォー ム。 担当プロダクトとシステム規模
システム規模 数千万規模の⼤量データを扱う、 極めてスケーラブルなアーキテク チャ。 トラフィック 秒間数万リクエストの⾼負荷環境 下で、低遅延かつ⾼可⽤性を 維持。
Application Java / Kotlin Spring Boot Armeria Data
/ Cache MySQL / MongoDB Elasticsearch Redis / Kafka Infrastructure Verda (Private Cloud) Kubernetes / VM Microservices 技術スタック
実装のコモディティ化 CRUD処理程度であれば、AIが⼀瞬でコードを⽣ 成する時代。表⾯的な「実装」のハードルはかつ てなく下がっている。 バックエンドの本質 しかし、「つらさ」の本質はそこにない。真の仕 事は、AIには代替できない「複雑性の制御」にあ る。
AIがコードを書く時代の開発
バックエンドの「つらさ」の正体 スケール 膨⼤なトラフィックと増⼤するデータへの対応 運⽤ リリース後から始まる「終わりのない戦い」 時間 データ量増加、技術の陳腐化(EOL) 組織 プロダクト開発 vs
技術的負債 「これら4つの複雑性をコントロールすることこそが、 バックエンドエンジニアの真の職務である。」
スケールのつらさ:大量データの罠 Q. 1000万件のバッチ処理 1件の処理に10秒かかる場合、完了までにどのくらいが必要か? 1,000万件 × 10秒 = 約3年 24時間回し続けても終わらない...
並列度10でも約116⽇、1000は約28時間だが... 並列化だけでは解決しない 並列度を上げれば解決するように⾒えるが: CPUリソースの限界 外部DB/APIへの負荷増⼤ サーバー増設によるコストの壁
「1件を速くする」のが正攻法 ボトルネックの徹底追求 10s → 1s → 0.1s → 0.01sへと叩く。 クエリ最適化
インデックス追加、N+1問題の解消。 通信コスト削減 外部APIをローカル処理やキャッシュに寄せる。 基礎体⼒の向上 1件の速さがスケール戦略の「限界値」を決定する。 「1件の速さ」の積み重ねこそが、 巨⼤なスケールを⽀える唯⼀の道。
運用のつらさ: リリースの先にある本番 終わりのない運⽤戦 開発期間はライフサイクル全体のごくわずか。真の戦いはリ リースから始まる。⽪⾁にも障害の多くは「開発者の操作」か ら⽣まれる。 操作ミス、設定不備による障害 他プロダクトの予期せぬ仕様変更 リリース作業そのものが持つリスク 防御策
問題の早期発⾒:アラートの整備が不可⽋
緊急性のレベル分け ERROR: 即対応が必要なもの。オンコールエンジニアが⼀次 対応すべきもの。 WARN: 様⼦⾒。翌営業⽇に確認すべき、潜在的な問題の 兆候。 INFO: ログ保存のみ
RUNBOOKの整備 アラートに対する⼿順書。背景と対処⼿順を明確にして、開 発者のパニックを防ぎ、誰でも対応可能にする。 アラート通知にRUNBOOKへのリンクを設置すると初動対応 が迅速化。 アラートを形骸化させない 過剰なアラートは「オオカミ少年」状態を招き、重要な通知の軽視や無視に繋がる。
今⽇は動いても、未来は壊れる 時間はバックエンドにとって最も残酷な変数。 データの増⼤: ⾼速だったクエリが低速化。 技術の⾵化: フレームワークやミドルウェア、OSのEOL。 バージョンアップ: 破壊的変更に伴う⼤規模改修。 時間のつらさ:技術的負債
運⽤負荷の「構造的な」増⼤ マイクロサービス化による分割でスケーラビリティは向上し たが、代償として運⽤負荷が増加 管理すべきサーバやDB数の増加 EOL対応やパッチ適⽤の⼯数が増加。 ⽌められないサービスや個⼈情報を含むDBバージョンアッ プは常に⾼リスク。 マイクロサービスの代償
⼿順の⼀般化 ⾃動化の推進 運用負荷を手順・自動化・技術で抑え込む 職⼈芸を排し、⼿順書を整備。誰 でも対応可能な組織状態を構築。 ⼈による操作をなくして、ミスのリス クと作業⼯数を最⼩限に。再現性の
⾼い安全なプロセスの確⽴。 新技術によるリスク回避 新技術により、作業のリスクを回避また は最⼩化。DBバージョンアップなどを サービス無停⽌‧即時ロールバック可能 に。 e.g. Kafka Connect
「外部要因」という見えない壁 チームの意志とは無関係に、 サービス維持のために必須となる作業が発⽣ データ制約‧法規制 各国の法律や会社ルールの変更へ の対応。 セキュリティ要件 緊急度の⾼い最新の脆弱性 (CVE)への対応。
未来は、誰にも予測できない。 「予測」して備えることには限界がある。情勢やビジネス⽅針は突然変わる。 前提は常に崩れ去る。 防御策:いかに後で変えられるかを重視する 疎結合 コンポーネントを独⽴させ、変化へ の柔軟性を確保する。 e.g. イベント駆動アーキテクチャ
分割 影響範囲を極⼩化し、予期せぬ副作 ⽤を封じ込める。 e.g. マイクロサービス 抽象化 実装の詳細に依存させず、インター フェースで変化を吸収する。 e.g. クリーンアーキテクチャ
組織のつらさ:負債か、プロダクトか 相反する優先順位 「新機能を作りたい」ビジネス側と、「負債を返した い」開発側の対⽴。 「技術的負債の放置は、将来の成⻑を完全に⽌め る。これを組織として合意できるか。」 解決策:改善を専任とするチームを結成し、 組織として「負債返済」を仕組み化する。 ⼈的リソース確保が必要なため、組織への交渉と理解獲得が必要。
Backendはつらいよ だからこそ、エンジニアとしての価値がある。 ご清聴ありがとうございました。