Solving Scalability by Converting a Monolith into Microservices
summary
Describes converting a monolithic app into targeted microservices running on Kubernetes in Google Cloud to improve scalability. Specific changes include extracting identity and data-sync into separate services, rewriting hot paths in .NET Core, adding Redis plus Cloud Storage caching, introducing cron-dispatcher-worker workloads, and keeping the primary RDBMS out of pods; results include starting 5,000 stores in 30 minutes, use of many per-component microdatabases, consideration of Cloud Spanner, and an operational cost around $500k/month.
AI-written summary · about
chapters (25)
- 0:00Introduction
- 1:24Talk goals
- 2:28Company and product
- 3:09Original architecture
- 5:58Monolith scaling issues
- 8:27Urgent client changes
- 9:10Docker and Kubernetes
- 10:35Containerizing monolith
- 11:19Extracting high-load services
- 13:27Database issues
- 14:10Microservice benefits
- 16:58Data sync optimization
- 18:01Async tasks in K8s
- 18:42Database hosting issues
- 19:23Cloud Spanner and micro-DB
- 20:47Splitting micro-databases
- 22:33Analytics with BigQuery
- 22:54Migration lessons
- 23:58Team training
- 24:20Documentation
- 25:04Service communication
- 25:47Versioning
- 27:31Monitoring and health checks
- 28:54Summary
- 30:19Q&A
related talks
57mSplitting Monolith Application to Microservices
54mFrom a distributed monolith to a microservices solution
57mMicroservices with Kubernetes
21mModernizing Monolithic Application: Isolation Before Independence
18mRe-Architecting Monoliths Into Kubernetes Microservices at Million-User Scale: Hard...
48mFrom Monolith to Micro-services with Kubernetes
32mSplitting the monolith
31mMonolith to Microservices: A Guide to Seamless Transitions
