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
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges...
Search
hhiroshell
November 29, 2024
Technology
3
1.4k
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
November 29, 2024
Tweet
Share
More Decks by hhiroshell
See All by hhiroshell
Architecting Kubernetes-Based Internal Developer Platforms: Essential Patterns and Practices
hhiroshell
0
120
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
220
Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
11
3.9k
Platform EngineeringにおけるKubernetesの活用法とLINEヤフーにおける事例のご紹介 / Platform Engineering and Kubernetes Findy Lunch LT Edition
hhiroshell
7
1.9k
大規模Webアプリケーションプラットフォームを開発して軌道に乗るまでにやったこと / How to Put Platforms on Track
hhiroshell
2
2.5k
Kubernetesとカスタムコントローラーを活用したプラットフォーム開発・運用の勘所 / Platform Engineering and Kubernetes
hhiroshell
1
1.3k
Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
3
700
Cloud Native Developers JP (cndjp) のご紹介 / about cndjp
hhiroshell
0
230
KustomizeのHash Suffixがあってもいい感じにdiffが見られるkubectlプラグインを作った話 / about kubectl realname-diff
hhiroshell
0
1.9k
Other Decks in Technology
See All in Technology
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
ソフトウェアエンジニアと仕事するときに知っておいたほうが良いこと / Key points for working with software engineers
pinkumohikan
1
130
あれは良かった、あれは苦労したB2B2C型SaaSの新規開発におけるCloud Spanner
hirohito1108
2
770
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
310
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
350
表現を育てる
kiyou77
1
220
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
160
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly
i35_267
1
520
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
510
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
270
分解して理解する Aspire
nenonaninu
2
490
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Unsuck your backbone
ammeep
669
57k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
630
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Become a Pro
speakerdeck
PRO
26
5.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
Making Projects Easy
brettharned
116
6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Code Reviewing Like a Champion
maltzj
521
39k
A designer walks into a library…
pauljervisheath
205
24k
Transcript
© LY Corporation LINEヤフーにおける 超大規模プラットフォーム実現への 挑戦と学び LINEヤフー株式会社 SIグループ クラウド統括本部 早川
博
© LY Corporation 2 自己紹介 • LINEヤフー株式会社 • 社内向けプラットフォームの開発運用 •
Java言語サポート • オープンソース プログラム オフィス(OSPO) • CNCF TAG App Delivery • プラットフォームエンジニアリング 分野でのコントリビューション • Kubernetes本 • 自作キーボード Hiroshi Hayakawa @hhiroshell
© LY Corporation 3 LY PaaSの概要 • KubernetesベースのWebアプリケーション実行基盤 • 簡単なコマンドを実行、またはマニフェストを適用するだけでアプリケー
ションが起動し、自動的にエンドポイントが公開される $ paasctl create app hello-world --image=example-registry/sample/helloworld-go:latest --port=8080 $ paasctl get app hello-world NAME ENDPOINT READY REASON AGE hello-world https://hello-world.sandbox.app.dev.yahoo.co.jp True 6m4s $ curl https://hello-world.sandbox.app.dev.yahoo.co.jp Hello World! ※一部実際のものとは異なる箇所があります
© LY Corporation 4 LY PaaSが提供する様々な機能 • クラウドコンソールからセルフ サービスでの利用開始 •
テレメトリ情報の自動送信 • ワークロードアイデンティティ と認証認可によるエンドポイント セキュリティ • シークレットマネージャーと 連携した機密情報の自動設定
© LY Corporation 5 LY PaaSにまつわる数字 Tenant 660 Application 26,000
Pod 100,000 Node 11,600 Request/s 900,000 max
© LY Corporation 6 LY PaaSの歴史 開発期 導入期 成長期 成熟期
660 Tenants 26,000 Applications 100,000 Pods Application数 パイロット提供 GA 約5年 旧プラットフォーム からの流入
© LY Corporation 7 LY PaaSの様々な課題 開発期 導入期 成長期 成熟期
Application数 パイロット提供 GA 約5年 旧プラットフォーム からの流入 アプリケーション数が急増しても安定的に 実行したい 円滑に移行を行い旧プラットフォーム の利用をゼロにしたい 様々なユーザーのユースケースに応えたい 660 Tenants 26,000 Applications 100,000 Pods
© LY Corporation 8 課題解決の鍵 スケールアウト ファースト Platform as a
Product
© LY Corporation 9 LY PaaSの様々な課題 開発期 導入期 成長期 成熟期
Application数 パイロット提供 GA 約5年 旧プラットフォーム からの流入 アプリケーション数が急増しても安定的に 実行したい 円滑に移行を行い旧プラットフォーム の利用をゼロにしたい 様々なユーザーのユースケースに応えたい 660 Tenants 26,000 Applications 100,000 Pods
© LY Corporation 10 スケールアウト・ファースト • LY PaaSでは、スケールアウトできないところがことごとく大規模化のボト ルネックとなった •
スケールアウトを設計時点で組み込んでおくのが理想。難しければ後から作 り変えが可能か確認しておく スケールアウト戦略をとれない箇所をできるだけ排除するよう にプラットフォームを設計・実装すること
© LY Corporation 11 クラスターのスケールアウト • 複数のKubernetesクラスター組み合わせてひとつのプラットフォームを構成 することで、Kubernetes単体のスケーラビリティの限界を解消 コントローラー 適切なクラスター
でアプリを起動 エンドユーザー アプリにアクセス アプリをデプロイ 開発者 App スケールアウト
© LY Corporation 12 参考:Kubernetesのスケーラビリティ • Kubernetesではサポートされる最大 Node数、Pod数などが公開されている が、これらのパラメータを同時に上限 まで満たせるわけではない
• 参考: Kubernetes Scalability thresholds • プラットフォームを構成するための システムコンポーネントをクラスタに 追加すると、それらもボトルネックに なり得る 出典: Kubernetes Scalability: A multi-dimensional analysis
© LY Corporation 13 メトリクスパイプラインのスケールアウト DaemonSet App A telegraf telegraf
telegraf Node Node Node App B App A App B App A App C Kubernetes MQ プラットフォーム メトリクス バックエンド • メトリクスエージェントをDaemonSetにすることで、クラスタの増強に合わ せて自然にスケールアウト メトリクス w/ Tenant Index
© LY Corporation 14 メトリクスパイプラインのスケールアウト kube-state-metrics telegraf telegraf telegraf Node
Node Node kube-api-server Kubernetes MQ プラットフォーム メトリクス バックエンド • 一つのExporterのメトリクス量が多すぎる場合は、複数のエージェントで手 分けして転送
© LY Corporation 15 Platform as a Product • ユーザーが求める価値にもとづいた投資判断、プロダクトマネジメントロー
ルの設置、Day1からDay2に至るまでのユーザー体験のケアなどの振る舞いが プラットフォームチームに生まれる • LY PaaSでは、ユーザーが求めるユースケースの分析、旧プラットフォーム からの移行の手厚いサポートなどのアクションにつながった 社内プラットフォームを顧客向けのプロダクトのように扱う プラットフォームチームのマインドセット
© LY Corporation 16 多様なユーザーのユースケースとどう向き合うか 典型的なユースケースを見つけ出して、 セルフサービスで使えるように実装する プラットフォームのユースケース全体
© LY Corporation 17 ユーザーストーリーマッピング • ユーザーの時系列の行動と、それに対するユーザー/プラットフォームチーム 視点のストーリーを網羅的に洗い出す( 仮説の設定) •
特定された機能群に対して実現の優先度を決定する 行動 関心 意識 開発前 開発中 デプロイ 運用中 障害発生時
© LY Corporation 18 仮説検証 ユーザーストーリーをもとに 作成したユースケース仮説 ユーザー アンケート ユーザー
インタビュー TVP* 開発 パイロット ユーザーへの 提供 * TVP: Thinnest Viable Platform
© LY Corporation 19 旧プラットフォームからの移行のサポート 典型的なユースケースに対して、 セルフサービスで移行できるようにする 旧プラットフォームのユースケース全体 エッジなユースケースに絞って 個別のサポートを提供
© LY Corporation 20 プラットフォーム移行のセルフサービス化 マニフェスト変換ツール • マニフェストを新フォーマッ トに自動変換 移行手順ドキュメント
• 移行に特化したドキュメント の提供 移行のスキル支援 • 移行に特化したハンズオン セッションの提供
© LY Corporation 21 エッジなユースケース向けの移行支援 移行における 課題の発見 解決策の 検討 解決策の
実施 • オフィスアワーの開催 • ユーザーフォーラムから の問い合わせ • コンサルティング • アプリケーションのアーキテク チャ変更 • プラットフォームへの機能追加 • 他プラットフォームへの移行
© LY Corporation 22 まとめ • LINEヤフーでは社内向けに大規模なWebアプリケーションプラットフォーム を提供 • スケールアウト・ファーストで設計することにより、大量のアプリケーショ
ンを安定して実行にできるプラットフォームに成長できた • Platform as a Productのマインドセットにより、多くの利用者のユースケー スをカバーしつつ、旧プラットフォームからの移行もサポートできた
© LY Corporation 23 Cloud Native Platform Engineering • Cloud
Nativeのテクノロジーはプラットフォームのための欠かせないビル ディングブロックです * CNCF graduated projects
© LY Corporation
© LY Corporation