Slide 1

Slide 1 text

© LY Corporation LINEヤフーにおける 超大規模プラットフォーム実現への 挑戦と学び LINEヤフー株式会社 SIグループ クラウド統括本部 早川 博

Slide 2

Slide 2 text

© LY Corporation 2 自己紹介 • LINEヤフー株式会社 • 社内向けプラットフォームの開発運用 • Java言語サポート • オープンソース プログラム オフィス(OSPO) • CNCF TAG App Delivery • プラットフォームエンジニアリング 分野でのコントリビューション • Kubernetes本 • 自作キーボード Hiroshi Hayakawa @hhiroshell

Slide 3

Slide 3 text

© 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! ※一部実際のものとは異なる箇所があります

Slide 4

Slide 4 text

© LY Corporation 4 LY PaaSが提供する様々な機能 • クラウドコンソールからセルフ サービスでの利用開始 • テレメトリ情報の自動送信 • ワークロードアイデンティティ と認証認可によるエンドポイント セキュリティ • シークレットマネージャーと 連携した機密情報の自動設定

Slide 5

Slide 5 text

© LY Corporation 5 LY PaaSにまつわる数字 Tenant 660 Application 26,000 Pod 100,000 Node 11,600 Request/s 900,000 max

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

© LY Corporation 8 課題解決の鍵 スケールアウト ファースト Platform as a Product

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

© LY Corporation 10 スケールアウト・ファースト • LY PaaSでは、スケールアウトできないところがことごとく大規模化のボト ルネックとなった • スケールアウトを設計時点で組み込んでおくのが理想。難しければ後から作 り変えが可能か確認しておく スケールアウト戦略をとれない箇所をできるだけ排除するよう にプラットフォームを設計・実装すること

Slide 11

Slide 11 text

© LY Corporation 11 クラスターのスケールアウト • 複数のKubernetesクラスター組み合わせてひとつのプラットフォームを構成 することで、Kubernetes単体のスケーラビリティの限界を解消 コントローラー 適切なクラスター でアプリを起動 エンドユーザー アプリにアクセス アプリをデプロイ 開発者 App スケールアウト

Slide 12

Slide 12 text

© LY Corporation 12 参考:Kubernetesのスケーラビリティ • Kubernetesではサポートされる最大 Node数、Pod数などが公開されている が、これらのパラメータを同時に上限 まで満たせるわけではない • 参考: Kubernetes Scalability thresholds • プラットフォームを構成するための システムコンポーネントをクラスタに 追加すると、それらもボトルネックに なり得る 出典: Kubernetes Scalability: A multi-dimensional analysis

Slide 13

Slide 13 text

© 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

Slide 14

Slide 14 text

© LY Corporation 14 メトリクスパイプラインのスケールアウト kube-state-metrics telegraf telegraf telegraf Node Node Node kube-api-server Kubernetes MQ プラットフォーム メトリクス バックエンド • 一つのExporterのメトリクス量が多すぎる場合は、複数のエージェントで手 分けして転送

Slide 15

Slide 15 text

© LY Corporation 15 Platform as a Product • ユーザーが求める価値にもとづいた投資判断、プロダクトマネジメントロー ルの設置、Day1からDay2に至るまでのユーザー体験のケアなどの振る舞いが プラットフォームチームに生まれる • LY PaaSでは、ユーザーが求めるユースケースの分析、旧プラットフォーム からの移行の手厚いサポートなどのアクションにつながった 社内プラットフォームを顧客向けのプロダクトのように扱う プラットフォームチームのマインドセット

Slide 16

Slide 16 text

© LY Corporation 16 多様なユーザーのユースケースとどう向き合うか 典型的なユースケースを見つけ出して、 セルフサービスで使えるように実装する プラットフォームのユースケース全体

Slide 17

Slide 17 text

© LY Corporation 17 ユーザーストーリーマッピング • ユーザーの時系列の行動と、それに対するユーザー/プラットフォームチーム 視点のストーリーを網羅的に洗い出す( 仮説の設定) • 特定された機能群に対して実現の優先度を決定する 行動 関心 意識 開発前 開発中 デプロイ 運用中 障害発生時

Slide 18

Slide 18 text

© LY Corporation 18 仮説検証 ユーザーストーリーをもとに 作成したユースケース仮説 ユーザー アンケート ユーザー インタビュー TVP* 開発 パイロット ユーザーへの 提供 * TVP: Thinnest Viable Platform

Slide 19

Slide 19 text

© LY Corporation 19 旧プラットフォームからの移行のサポート 典型的なユースケースに対して、 セルフサービスで移行できるようにする 旧プラットフォームのユースケース全体 エッジなユースケースに絞って 個別のサポートを提供

Slide 20

Slide 20 text

© LY Corporation 20 プラットフォーム移行のセルフサービス化 マニフェスト変換ツール • マニフェストを新フォーマッ トに自動変換 移行手順ドキュメント • 移行に特化したドキュメント の提供 移行のスキル支援 • 移行に特化したハンズオン セッションの提供

Slide 21

Slide 21 text

© LY Corporation 21 エッジなユースケース向けの移行支援 移行における 課題の発見 解決策の 検討 解決策の 実施 • オフィスアワーの開催 • ユーザーフォーラムから の問い合わせ • コンサルティング • アプリケーションのアーキテク チャ変更 • プラットフォームへの機能追加 • 他プラットフォームへの移行

Slide 22

Slide 22 text

© LY Corporation 22 まとめ • LINEヤフーでは社内向けに大規模なWebアプリケーションプラットフォーム を提供 • スケールアウト・ファーストで設計することにより、大量のアプリケーショ ンを安定して実行にできるプラットフォームに成長できた • Platform as a Productのマインドセットにより、多くの利用者のユースケー スをカバーしつつ、旧プラットフォームからの移行もサポートできた

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

© LY Corporation

Slide 25

Slide 25 text

© LY Corporation