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.6k
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
200
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
250
Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
11
4.1k
Platform EngineeringにおけるKubernetesの活用法とLINEヤフーにおける事例のご紹介 / Platform Engineering and Kubernetes Findy Lunch LT Edition
hhiroshell
7
2.2k
大規模Webアプリケーションプラットフォームを開発して軌道に乗るまでにやったこと / How to Put Platforms on Track
hhiroshell
2
2.6k
Kubernetesとカスタムコントローラーを活用したプラットフォーム開発・運用の勘所 / Platform Engineering and Kubernetes
hhiroshell
1
1.4k
Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
3
740
Cloud Native Developers JP (cndjp) のご紹介 / about cndjp
hhiroshell
0
260
KustomizeのHash Suffixがあってもいい感じにdiffが見られるkubectlプラグインを作った話 / about kubectl realname-diff
hhiroshell
0
2k
Other Decks in Technology
See All in Technology
NW運用の工夫と発明
recuraki
1
650
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.5k
AIの電力問題を概観する
rmaruy
1
210
FastMCPでSQLをチェックしてくれるMCPサーバーを自作してCursorから動かしてみた
nayuts
1
190
Roo Codeにすべてを委ねるためのルール運用
pharma_x_tech
1
210
カンファレンスのつくりかた / The Conference Code: What Makes It All Work
tomzoh
8
910
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.2k
AIエージェントデザインパターンの選び方
almondo_event
0
130
Introduction to Bill One Development Engineer
sansan33
PRO
0
240
ゴリラ.vim #36 ~ Vim x SNS ~ スポンサーセッション
yasunori0418
1
310
Oracle Database オプティマイザ・ヒントの活用
oracle4engineer
PRO
1
140
Rebase エンジニアリング組織の現状とこれから
rebase_engineering
0
140
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.3k
Scaling GitHub
holman
459
140k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Optimizing for Happiness
mojombo
378
70k
Writing Fast Ruby
sferik
628
61k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
Become a Pro
speakerdeck
PRO
28
5.4k
The Language of Interfaces
destraynor
158
25k
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