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
hirai.kazushi
May 15, 2026
Technology
77
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
650
How to manage increasingly complex microservices
policemankh
0
84
複雑になったマイクロサービスを どう管理するか/how-to-manage-increasingly-complex-microservices
policemankh
0
2.7k
非同期メッセージングサービスを使ったLINEメッセージ配信の改善/improve-oa-messaging-with-asynchronous-architecture
policemankh
0
500
Other Decks in Technology
See All in Technology
知らん間に、回ってる
ming_ayami
0
380
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
450
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
290
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
260
product engineering with qa
nealle
0
160
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
150
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
600
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
250
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
770
貴方はどのエンジニアリングを磨くのか
hatyibei
0
110
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.3k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Designing for humans not robots
tammielis
254
26k
How GitHub (no longer) Works
holman
316
150k
Everyday Curiosity
cassininazir
0
250
30 Presentation Tips
portentint
PRO
1
340
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Building an army of robots
kneath
306
46k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
560
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.5k
Google's AI Overviews - The New Search
badams
0
1.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
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はつらいよ だからこそ、エンジニアとしての価値がある。 ご清聴ありがとうございました。