Moving a Monolith from AWS EC2 to K8
summary
Freshdesk moves a monolithic Rails app from AWS EC2/OpsWorks onto EKS Kubernetes, keeping Fusion Passenger processes inside multi-container pods and preserving HAProxy edge routing and shells for gradual traffic cutover. Deployment manifests use kustomize with a base-and-overrides tree; a custom scheduler (backported to Kubernetes 1.14) evens load across shells. Results: 600k RPM and ~1.5B requests/week, 6k+ containers, roll‑out in six months by four engineers, zero downtime, 60% cost savings in non‑prod and production deploys cut from four hours to 30 minutes.
AI-written summary · about
chapters (13)
- 0:00Introduction and background
- 3:47Why move to Kubernetes
- 7:22Requirements and operational needs
- 11:03Infrastructure and shell setup
- 16:24Pod architecture and hybrid model
- 19:12Performance and throughput balancing
- 21:01Monitoring and observability
- 22:49Learning from Kubernetes horror stories
- 23:30Gradual traffic migration process
- 24:57Developer experience and tools
- 25:59Cost savings and performance gains
- 26:41Global rollout summary
- 27:44Future plans and conclusion
related talks
44mMigrating a Monolith to Kubernetes
37mBalancing Power and Pain: Moving a Startup From a PaaS to Kubernetes
24mFrom Lift-and-Shift to K8s: A Two-Phase DevOps Modernization
31mMigrating a monolith to Cloud-Native (and the stumbling blocks)
32mOperating Rails in Kubernetes
26mMonolith-ifying perfectly good microservices
20mApplication Modernization: From Concept to Kubernetes
36mHow to run like a startup with enterprise Kubernetes
