

推しアイデア
リアルタイム通信のサーバーをPub/Subを用いた、水平オートスケーリングを行い、同接99人に耐えうる?構成で作成しました!


作った背景
やまとくんを追い出すため


推し技術
Kubernetes, Pub/Sub, Websocket, PipCD, Redis, MySQL, Echo, Next.js, TtailwindCSS, GitHub Actions, Blender
アプリ
使用技術
フロントエンド
- Next.js ( v15 )
- TailwindCSS
- TypeScript
- Blender
バックエンド
- Golang
- github.com/labstack/echo
- github.com/redis/go-redis
- github.com/gorilla/websocket
- cloud.google.com/go/cloudsqlconn
- github.com/uptrace/bun
DB
インフラ
- GCP
- Kubernetes
- GitHub Actions
- PipeCD
シーケンス図
*検討段階のものであり、実際とは異なる部分があります
インフラ構成図

工夫点
- CI/CDを用いた自動デプロイ
- terraformを用いたIAC
- マイグレーションの自動化
- Redis Pub/Subを用いた水平オートスケーリング
- Redis Pub/SubとRedisによる高速なサーバー間状態共有の実現
- スキーマ定義
- 排他的処理による競合の排除
- PRとレビューを行った!
- 寝ずに頑張った!!
リポジトリ