Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges...

hhiroshell
November 29, 2024

LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation

hhiroshell

November 29, 2024
Tweet

More Decks by hhiroshell

Other Decks in Technology

Transcript

  1. © LY Corporation 2 自己紹介 • LINEヤフー株式会社 • 社内向けプラットフォームの開発運用 •

    Java言語サポート • オープンソース プログラム オフィス(OSPO) • CNCF TAG App Delivery • プラットフォームエンジニアリング 分野でのコントリビューション • Kubernetes本 • 自作キーボード Hiroshi Hayakawa @hhiroshell
  2. © 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! ※一部実際のものとは異なる箇所があります
  3. © LY Corporation 4 LY PaaSが提供する様々な機能 • クラウドコンソールからセルフ サービスでの利用開始 •

    テレメトリ情報の自動送信 • ワークロードアイデンティティ と認証認可によるエンドポイント セキュリティ • シークレットマネージャーと 連携した機密情報の自動設定
  4. © LY Corporation 6 LY PaaSの歴史 開発期 導入期 成長期 成熟期

    660 Tenants 26,000 Applications 100,000 Pods Application数 パイロット提供 GA 約5年 旧プラットフォーム からの流入
  5. © LY Corporation 7 LY PaaSの様々な課題 開発期 導入期 成長期 成熟期

    Application数 パイロット提供 GA 約5年 旧プラットフォーム からの流入 アプリケーション数が急増しても安定的に 実行したい 円滑に移行を行い旧プラットフォーム の利用をゼロにしたい 様々なユーザーのユースケースに応えたい 660 Tenants 26,000 Applications 100,000 Pods
  6. © LY Corporation 9 LY PaaSの様々な課題 開発期 導入期 成長期 成熟期

    Application数 パイロット提供 GA 約5年 旧プラットフォーム からの流入 アプリケーション数が急増しても安定的に 実行したい 円滑に移行を行い旧プラットフォーム の利用をゼロにしたい 様々なユーザーのユースケースに応えたい 660 Tenants 26,000 Applications 100,000 Pods
  7. © LY Corporation 10 スケールアウト・ファースト • LY PaaSでは、スケールアウトできないところがことごとく大規模化のボト ルネックとなった •

    スケールアウトを設計時点で組み込んでおくのが理想。難しければ後から作 り変えが可能か確認しておく スケールアウト戦略をとれない箇所をできるだけ排除するよう にプラットフォームを設計・実装すること
  8. © LY Corporation 12 参考:Kubernetesのスケーラビリティ • Kubernetesではサポートされる最大 Node数、Pod数などが公開されている が、これらのパラメータを同時に上限 まで満たせるわけではない

    • 参考: Kubernetes Scalability thresholds • プラットフォームを構成するための システムコンポーネントをクラスタに 追加すると、それらもボトルネックに なり得る 出典: Kubernetes Scalability: A multi-dimensional analysis
  9. © 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
  10. © LY Corporation 14 メトリクスパイプラインのスケールアウト kube-state-metrics telegraf telegraf telegraf Node

    Node Node kube-api-server Kubernetes MQ プラットフォーム メトリクス バックエンド • 一つのExporterのメトリクス量が多すぎる場合は、複数のエージェントで手 分けして転送
  11. © LY Corporation 15 Platform as a Product • ユーザーが求める価値にもとづいた投資判断、プロダクトマネジメントロー

    ルの設置、Day1からDay2に至るまでのユーザー体験のケアなどの振る舞いが プラットフォームチームに生まれる • LY PaaSでは、ユーザーが求めるユースケースの分析、旧プラットフォーム からの移行の手厚いサポートなどのアクションにつながった 社内プラットフォームを顧客向けのプロダクトのように扱う プラットフォームチームのマインドセット
  12. © LY Corporation 18 仮説検証 ユーザーストーリーをもとに 作成したユースケース仮説 ユーザー アンケート ユーザー

    インタビュー TVP* 開発 パイロット ユーザーへの 提供 * TVP: Thinnest Viable Platform
  13. © LY Corporation 20 プラットフォーム移行のセルフサービス化 マニフェスト変換ツール • マニフェストを新フォーマッ トに自動変換 移行手順ドキュメント

    • 移行に特化したドキュメント の提供 移行のスキル支援 • 移行に特化したハンズオン セッションの提供
  14. © LY Corporation 21 エッジなユースケース向けの移行支援 移行における 課題の発見 解決策の 検討 解決策の

    実施 • オフィスアワーの開催 • ユーザーフォーラムから の問い合わせ • コンサルティング • アプリケーションのアーキテク チャ変更 • プラットフォームへの機能追加 • 他プラットフォームへの移行
  15. © LY Corporation 22 まとめ • LINEヤフーでは社内向けに大規模なWebアプリケーションプラットフォーム を提供 • スケールアウト・ファーストで設計することにより、大量のアプリケーショ

    ンを安定して実行にできるプラットフォームに成長できた • Platform as a Productのマインドセットにより、多くの利用者のユースケー スをカバーしつつ、旧プラットフォームからの移行もサポートできた
  16. © LY Corporation 23 Cloud Native Platform Engineering • Cloud

    Nativeのテクノロジーはプラットフォームのための欠かせないビル ディングブロックです * CNCF graduated projects