Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
大規模Webアプリケーションプラットフォームを開発して軌道に乗るまでにやったこと / How ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hhiroshell
December 06, 2023
Technology
2.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大規模Webアプリケーションプラットフォームを開発して軌道に乗るまでにやったこと / How to Put Platforms on Track
hhiroshell
December 06, 2023
More Decks by hhiroshell
See All by hhiroshell
Maximizing Launch Reliability: Controlled Lift-off for Reliable Application Startup on Kubernetes
hhiroshell
0
120
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
300
Platform Engineering from the CNCF Perspective
hhiroshell
0
100
Maximizing the Launch Reliability: Ensuring Stable Application Lift-off and Orbit on Kubernetes
hhiroshell
0
150
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
450
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
5
960
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
3
2k
Architecting Kubernetes-Based Internal Developer Platforms: Essential Patterns and Practices
hhiroshell
0
360
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
330
Other Decks in Technology
See All in Technology
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
400
Browser Spec: Testing Hotwire with Ruby
takahashim
1
150
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
280
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
160
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
190
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
160
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
100
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
210
LLM-as-a-Judgeは本当に信頼できるのか――評価器を評価する話
taka_aki
2
1k
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
170
~最速でビジネスインパクトを創出する~ Sansanのデータ基盤と活用事例
sansantech
PRO
0
110
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Git: the NoSQL Database
bkeepers
PRO
433
67k
How GitHub (no longer) Works
holman
316
150k
Design in an AI World
tapps
1
360
Un-Boring Meetings
codingconduct
0
460
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Transcript
Platform Engineering Meetup ⼤規模Webアプリケーションプラットフォームを 開発して軌道に乗るまでにやったこと @hhiroshell 1
Platform Engineering Meetup 【PR】⾃作キーボードはいいぞ • ⾃キ専⾨店「遊舎⼯房」へGo! 2 ←遊舎⼯房さんの店舗はこちら ↓@hhiroshellのキーボード #crkbd
⾃⼰紹介 @hhiroshell 早川 博 (はやかわ ひろし) • Cloud Nativeなインフラを開発 するエンジニア。 LINEヤフー 所属
Platform Engineering Meetup 【PR】本を書きました • 「Kubernetesマイクロサービス開発の実践」 – Kubernetesでアプリケーションを実⾏するサービ ス開発者向け –
“マイクロサービス”と銘打っていますが、コント ローラーやサービスメッシュでクラスタをもりも りにするよりも、Kubernetesの仕組みを理解して 使いこなすことにフォーカスしてます 3
Platform Engineering Meetup ⽬次 1. どんなプラットフォームを提供しているの? 2. 新規⽴ち上げから軌道に乗るまでにやったこと 3. まとめ
4
Platform Engineering Meetup ⽬次 1. どんなプラットフォームを提供しているの? 2. 新規⽴ち上げから軌道に乗るまでにやったこと 3. まとめ
5
Platform Engineering Meetup プラットフォームの概要 1/2 • Webアプリケーションの実⾏基盤 – 簡単なコマンドを実⾏ or
マニフェストを適⽤するだけでアプリが起動し、エ ンドポイントが公開される 6 $ 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! ※⼀部実際のものとは異なる箇所があります
Platform Engineering Meetup プラットフォームの概要 2/2 • ヤフーのプライベートクラウドにある多数の他サービスと連携し、 様々な機能を提供 – クラウドコンソールからのNamespace作成
– オブザーバビリティ系のサービスにテレメトリを⾃動送信 – 認証認可によるAPIの保護、ワークロードアイデンティティの⾃動挿⼊ – シークレットマネージャーと連携して機密情報をアプリに設定 • マルチテナント&スケーラビリティ – 複数のKubernetesクラスター組み合わせて論理的にひとつのクラスターを構成 – ヤフーが抱える多数のサービスを少数のクラスタで実⾏可能 7
Platform Engineering Meetup 8 • コンソールからのNamespace作成 ※画像はイメージです
Platform Engineering Meetup 9 • コンソールからのNamespace作成 ※画像はイメージです 4VQFS"XFTPNF1SJWBUF$MPVE$POTPMF NZQSPKFDU Namespace新規作成
Namespace名:
Platform Engineering Meetup 10 apiVersion: paas.yahoo.co.jp/v1 kind: App metadata: name:
hello-world namespace: my-project spec: service: autoscale: maxReplicas: 10 minReplicas: 2 template: spec: containers: - name: nginx image: registry.example.com/hello-world:latest ports: - containerPort: 8080 • アプリケーションを実⾏するための最低限のマニフェスト ※⼀部実際のものとは異なる箇所があります
Platform Engineering Meetup どのくらい使われているか • テナント数:数百 • アプリケーション数:約1万 • Pod数:数万
11
Platform Engineering Meetup 参考リンク • Kubernetesとカスタムコントローラーを活⽤したプラットフォーム開発・運⽤の 勘所 – https://www.docswell.com/s/ydnjp/KW1E1D-2023-02-13-111059 •
より安全なKubernetes Secrets管理のためのエコシステムの開発 – https://techblog.yahoo.co.jp/entry/2023021630413822/ – https://youtu.be/JQjL0-c1A-M • 価値提供のリードタイムを短くするための戦術としてのチーム替え「流動チー ム体制」に取り組んでいたら実はLeSSでのモブプロだったお話 – https://confengine.com/conferences/regional-scrum-gathering-tokyo-2024/proposal/19113/less 12
Platform Engineering Meetup ⽬次 1. どんなプラットフォームを提供しているの? 2. 新規⽴ち上げから軌道に乗るまでにやったこと 3. まとめ
13
Platform Engineering Meetup 14 取り組んだこと パイロット 提供 GA 導⼊期 成⻑期
成熟期 イマココ 仕様検討 ※ これとは別に開発活動ももちろん⾏っています
Platform Engineering Meetup 15 取り組んだこと パイロット 提供 GA 導⼊期 成⻑期
成熟期 イマココ 仕様検討 開発者への情報提供とサポート ※ これとは別に開発活動ももちろん⾏っています
Platform Engineering Meetup 16 取り組んだこと パイロット 提供 GA 導⼊期 成⻑期
成熟期 イマココ 仕様検討 開発者への情報提供とサポート 普及活動 ※ これとは別に開発活動ももちろん⾏っています
Platform Engineering Meetup 17 取り組んだこと パイロット 提供 GA 導⼊期 成⻑期
成熟期 イマココ 仕様検討 開発者への情報提供とサポート 普及活動
Platform Engineering Meetup 仕様検討 • ユーザー調査 – これから開発するプラットフォームに対するユーザーのニーズを調査したり、 プラットフォーム開発者間でのイメージを合わせる –
ユーザーストーリーマッピングの作成と、アンケート やインタビューによる ヒアリングを実施 • プロダクト調査 – 世の中にある競合サービスや、類似の既存のプラットフォームを調査し、こ れから開発するプラットフォームで必要/不要となるであろう機能の当たりを 付ける 18
Platform Engineering Meetup ユーザーストーリーマッピング • ⽬的 – ユーザー(開発者)の時系列の⾏動と、それに対する利⽤者/運⽤者視点のス トーリーを網羅的に洗い出す(→ 仮説の設定)
– 特定された機能群に対して実現の優先度を決定する 19 開発者の行動、そのとき感じ ていること、何に意識が向い ているかなど この場合、時系列をアプリ開 発のフェーズで表現
Platform Engineering Meetup ユーザーアンケートとユーザーインタビュー • ⽬的 – ユーザーストーリーマッピングで仮定した利⽤者の⾏動が正しいかどうかを 確認する(→ 仮説の検証)
– 既存の業務フローでのペインポイントや、既存プラットフォームに対する不 満点を確認し、機能提供の優先度に反映する • アンケートとインタビューは2段階 – ユーザーアンケートでインタビューに協⼒いただけると回答があった利⽤者 に対し、インタビューを実施 – インタビューは、オープンな質問をきっかけにした議論や、既存システムの アーキテクチャの詳細を聞くなど、広く深く利⽤者を理解できる機会になる 20
Platform Engineering Meetup 21 取り組んだこと パイロット 提供 GA 導⼊期 成⻑期
成熟期 イマココ 仕様検討 開発者への情報提供とサポート 普及活動
Platform Engineering Meetup 開発者への情報提供とサポート • ドキュメンテーション – 利⽤者にプラットフォームの使い⽅をガイドするドキュメントを提供 • サポート窓⼝開設・問い合わせ対応
– トラブルシュートや使い⽅に関する個々の相談を持ち込む窓⼝ • 個別案件の設定と対応 – パイロット(先⾏利⽤)ユーザーや特殊要件の対応が必要なユーザーに対し、 専⽤のチャネルを設けて⼿圧いサポートを⾏う 22
Platform Engineering Meetup ドキュメンテーション • ⽬的 – 利⽤者がプラットフォームをセルフサービスで利⽤可能にする – 既知の問題や特定機能のサポート状況を知らせるなど、利⽤者へのコミュニ
ケーションパスの⼀つとして利⽤する • ⾯倒かもしれないが、とても⼤事…。 – 無⽤な問い合わせを減らすことにもつながる 23
Platform Engineering Meetup ドキュメンテーションで意識していること • コンテンツ決め – 初期のコンテンツはユーザーストーリーマッピングを元に考える – チートシートは結構読まれる
– トラブルシュートのガイドは問い合わせの削減に効く • ドキュメントの書き⽅ – 読者の⽴場を意識する(例: 開発者向けか、そのマネージャー向けか) – できることではなく、読者がやりたいことを起点に – フィードバックが欲しい場合は実装よりドキュメント先に書くことも 24
Platform Engineering Meetup 個別案件の設定と対応 • ⽬的 – 特殊な要件があるなどして、継続的かつ⼿厚いサポートを必要とするプロ ジェクトに対し、円滑なプラットフォーム利⽤のお⼿伝いをする •
例:超⼤規模アプリケーションの実⾏ – 同種の要件があるプロダクトを受け⼊れるためのノウハウを獲得する – プラットフォームの利⽤実績の獲得 • 専⽤のチャネルで密にやり取り – ちょっとした相談にも乗りやすい環境を⽤意することで、サポート窓⼝では 気づけない問題を発⾒することも 25
Platform Engineering Meetup 26 取り組んだこと パイロット 提供 GA 導⼊期 成⻑期
成熟期 イマココ 仕様検討 開発者への情報提供とサポート 普及活動
Platform Engineering Meetup 普及活動 • ハンズオンセッション – プラットフォームを触り始めるきっかけを作る • よろず相談会
– プラットフォームを使う上での種々の相談を受け付ける • 事例セッション – プラットフォームを使ってくれた開発に発表してもらう 27 (いずれもTGConという社内イベントの中のコンテンツとして実施)
Platform Engineering Meetup TGConとは • プラットフォームやそれに関連する技術を取り扱う社内技術カン ファレンス – 新機能の発表、事例セッション、ハンズオン...etc 28
Platform Engineering Meetup ハンズオンセッション • ⽬的 – ユーザーがプラットフォームを使い始めるきっかけを作る – 開発部⾨の各チームにおいて「このプラットフォームに詳しい⼈」になって
もらう • ユースケースや習熟度毎のハンズオンを提供 – 新規アプリケーションの開発を始めるケース – 他のコンピューティングプラットフォームとの使い分け 29
Platform Engineering Meetup よろず相談会 • ⽬的 – ディスカッションを通じて開発チームのプロジェクトのアーキテクチャや課 題を深く理解した上で、最適な使い⽅をガイドする –
問い合わせフォームで聞くことでもないような質問を投げかけられる場を設 ける – プラットフォームに対する潜在的な受容を発⾒する • オンラインのバーチャルオフィス ツールで、⼊退場⾃由で相談を 受け付ける 30
Platform Engineering Meetup まとめ • LINEヤフーでは開発者向けに様々なプラットフォームを提供 • Webアプリケーションの実⾏基盤となるプラットフォームを新規に 開発し提供中 •
新しいプラットフォームを使ってもらうために、種々の取り組みを おこなった – 仕様策定のためのユーザー調査、プロダクト調査 – 開発者への情報提供とサポート(ドキュメント、個別案件対応...etc) – 普及活動(ハンズオン、よろず相談会 ...etc) • 個々の取り組みは⼀般に知られたもの。これらを地道に続けること が⼤切…。 31