ESC
Type to search guides, tutorials, and reference documentation.
Verified by Garnet Grid

Container Orchestration Beyond Kubernetes

Choose the right container orchestration. Covers Kubernetes vs ECS vs Nomad, when not to use K8s, Docker Compose for simple workloads, and right-sizing your orchestration choice.

Kubernetes won the orchestration war, but that doesn’t mean every application needs it. Running a three-service application on Kubernetes is like using a semi-truck to deliver a pizza. This guide helps you choose the right orchestration level for your actual needs.


Orchestration Spectrum

ScaleSolutionComplexityBest For
1-3 servicesDocker Compose + systemdMinimalPersonal projects, small teams
3-10 servicesECS / Cloud Run / Fly.ioLowStartups, small-medium apps
10-50 servicesECS / NomadMediumMedium companies, mixed workloads
50+ servicesKubernetesHighLarge organizations, platform teams

Decision Framework

Do you have > 50 microservices?
├── Yes → Kubernetes (you need the ecosystem)
└── No → Do you have a dedicated platform team?
    ├── Yes → Kubernetes or Nomad
    └── No → Do you need multi-cloud?
        ├── Yes → Kubernetes or Nomad
        └── No → Managed service (ECS, Cloud Run, Fly.io)

Platform Comparison

FeatureKubernetesECSNomadCloud Run
Learning curveSteepModerateModerateLow
Ops overheadHigh (managed K8s helps)Low (managed)MediumZero
Auto-scalingHPA, VPA, KEDABuilt-inBuilt-inBuilt-in
Service meshIstio, LinkerdApp MeshConsul ConnectBuilt-in
Multi-cloudYesAWS onlyYesGCP-focused
CostHigher (control plane + nodes)LowerVariablePay-per-request
EcosystemMassive (Helm, operators)ModerateGrowingLimited

When NOT to Use Kubernetes

SituationBetter AlternativeWhy
Solo developer or small teamDocker Compose, Cloud RunK8s operational overhead > benefit
Serverless workloadsLambda, Cloud FunctionsNo infrastructure to manage
Monolith applicationSingle EC2/VM, ECSOrchestration overhead for 1 service
GPU/ML workloads onlySageMaker, Vertex AIManaged ML platforms handle scaling
Static websitesS3 + CloudFront, VercelCDN, not containers

Anti-Patterns

Anti-PatternProblemFix
K8s for everythingMassive ops overhead for simple appsMatch orchestration to complexity
No resource limitsNoisy neighbors, resource exhaustionSet CPU/memory requests and limits
One cluster per serviceCluster sprawl, management nightmareNamespaces for isolation, fewer clusters
Manual scalingSlow response to traffic changesAuto-scaling (HPA, KEDA)
Ignoring managed optionsReinventing what cloud providers offerUse EKS/GKE/AKS, not self-managed K8s

Checklist

  • Workload assessed: number of services, team size, complexity
  • Orchestration platform chosen based on actual needs
  • Resource requests and limits configured for all containers
  • Auto-scaling configured (HPA, target tracking)
  • Health checks: liveness & readiness probes
  • Logging and monitoring integrated
  • CI/CD pipeline deploying to orchestration platform
  • Disaster recovery plan for platform failure

:::note[Source] This guide is derived from operational intelligence at Garnet Grid Consulting. For container orchestration consulting, visit garnetgrid.com. :::

Jakub Dimitri Rezayev
Jakub Dimitri Rezayev
Founder & Chief Architect • Garnet Grid Consulting

Jakub holds an M.S. in Customer Intelligence & Analytics and a B.S. in Finance & Computer Science from Pace University. With deep expertise spanning D365 F&O, Azure, Power BI, and AI/ML systems, he architects enterprise solutions that bridge legacy systems and modern technology — and has led multi-million dollar ERP implementations for Fortune 500 supply chains.

View Full Profile →