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
92
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
270
Platform Engineering from the CNCF Perspective
hhiroshell
0
93
Maximizing the Launch Reliability: Ensuring Stable Application Lift-off and Orbit on Kubernetes
hhiroshell
0
130
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
410
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
5
940
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
3
1.9k
Architecting Kubernetes-Based Internal Developer Platforms: Essential Patterns and Practices
hhiroshell
0
340
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
320
Other Decks in Technology
See All in Technology
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
180
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
210
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
180
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
170
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
640
HHKBエバンジェリストになる方法
941
0
110
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
2
490
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.7k
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
31
27k
Genieを崇めよ
kameitomohiro
0
160
Claude Code本って、 読む必要あるの?
oikon48
2
470
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Designing for Performance
lara
611
70k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
290
Designing Experiences People Love
moore
143
24k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
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