2.4K Views
April 25, 25
スライド概要
UV Study: Platform Engineeringの始め方の登壇用資料です。
https://uniquevision.connpass.com/event/350834/
東京都内でエンジニアをしています
UV Study: Platform Engineeringの始め方 共通テンプレートから始まる PLATFORM ENGINEERING 上田しょういつ / @HedgehogPython
Agenda 1.自己紹介 2.プロダクト紹介 3.プラットフォーム開発の背景 4.標準化による認知負荷軽減
01 自己紹介 Ueda Syoitu ハリネズミ・aki.ts (株)Nint・ユニットリーダー @HedgehogPython aws certified Cloud Practitioner FOUNDATIONAL aws certified Solutions Architect ASSOCIATE aws community builders
02 プロダクト紹介 ECデータを提供するサービスです(コア) そのデータを中心に色んなプロダクトを展開してます(サブ)
03 プラットフォーム開発の背景 その結果開発部の人員がフロントエンド寄りのエンジニア とデザイナーだけになりました。
03 プラットフォーム開発の背景 一気に認知負荷が高くなりました PHPか、ちょっと 苦手だな リリースした くないな インフラ構成はどう なっていますか?
04 認知負荷軽減 プラットフォームエンジニアリングの 思想に基づき、開発者の認知負荷を下 げるための取り組みを行いました。
04 認知負荷軽減 開発言語の統一- TypeScript • フロントと親和性の高いメンバーが多い • フロントとバックエンド両方の開発ができる • 生成AIとの親和性が高い
04 認知負荷軽減 インフラ基盤の統一-AWS • データ分析系のサービスはGCPを 継続利用しつつ • その他のリソースは原則として AWSを利用する
04 認知負荷軽減 開発ライブラリの標準化 • Linter/Formatterの統一(Biome) • パッケージ管理、テストライブラリの 統一(Bun)
04 認知負荷軽減 共通テンプレートリポジトリの完成 1 .github 2 apps 3 - api 4 - app 5 - iac 6 packages 7 - db 8 - logger
04 認知負荷軽減 GitHub ActionsでCICDを構築 1 .github 2 apps 3 - api 4 - app 5 - iac 6 packages 7 - db 8 - logger • CDKのデプロイフロー • PR Agent • Bun Test
04 認知負荷軽減 互いに独立し、最低限の機能が実装されたAPIサーバー、クライアント それら必要なインフラリソースをデプロイするためのIaC Bun Workspacesで共通依存関係を管理する 1 .github 2 apps 3 - api 4 - app 5 - iac 6 packages 7 - db 8 - logger API サーバー (Hono) クライアント (Next.js) IaC (CDK)
04 認知負荷軽減 インフラ構成図 AWS Cloud Region Availability Zone Public subnet Private subnet Nat Instance Fargate Task Container Aurora users alb Availability Zone Cognito Public subnet Private subnet Task Container Aurora Bastion Instance Agent Amazon Bedrock Knowledge Base Amazon OpenSearch Service s3 Action group Amazon Lambda Amazon Lambda Amazon Lambda waf ecr ecs
04 認知負荷軽減 NintAI 2024年12月25日にリリース、 自然言語で商品検索やデータ分 析を行える AIチャットbot 2025年3月にリリース、問合せセ ンターの内製化。 テンプレートの一部利用 EC業界特化HR 現在開発中
04 認知負荷軽減 コーディングエージェント用のドキュメント用意する 1 # Project Brief 2 3 ## Tech Stack 4 - Next.js 15+ with App Router 5 - Tailwind CSS for styling 6 - HeroUI React UI library 7 - PostgreSQL (Local: Docker, Remote: AWS Aurora PostgreSQL) 8 - Next.js Server Actions for direct DB interaction 9 - GitHub Actions for deployment 10 - GitHub for version control 11 - Auth library NextAuth.js 12 - Authentication provider Cognito 13 - runtime Bun 14 15 ## Project Structure 16 /apps 17 /apps 18 /app # Next.js project User-facing application (currently active) 19 /api # API server (currently not in use) 20 /iac # AWS CDK code 21 /packages # We have placed common packages within it 22 /db # We use Drizzle for communication with PostgreSQL 24 ...
04 認知負荷軽減 テンプレートの鮮度維持 プロジェクトの依存関係の 更新を自動化してくれるツールです。 UPDATE テンプレートをベースに開発されたプロダクトで改善が ある場合、その改良点をテンプレート自体に反映させる
04 認知負荷軽減 k8s採用しなかった理由 人が足りない 開発チームの人数が15名以下の場合 基本お勧めできません
04 認知負荷軽減 ツールや環境をデリバリー する余裕がない時、 慣れた作り置きがあるだけ でもだいぶ変わります
THANK YOU ご清聴、ありがとうございました。