Why We Moved Away from Swarm
Docker Swarm served us well, but we hit its ceiling: no native HPA, limited observability hooks, and no ecosystem for GitOps tooling.
Migration Phases
Phase 1 — Containerize & Validate
Every service already had a Dockerfile. We focused on:
Phase 2 — EKS Cluster Setup
eksctl create cluster \
--name prod-cluster \
--version 1.29 \
--nodegroup-name standard \
--node-type t3.medium \
--nodes-min 2 --nodes-max 10 \
--managed
Phase 3 — Helm Charts
We wrote Helm charts for each service, parameterized by environment. This made staging → prod promotion a one-liner.