Skip to content

Comment on How we reduced deployment times by 95%parent

Comments

ECS can be good for really small things but, even when I worked in public radio, we discovered that ECS is pretty hot garbage without writing a bunch of stuff to deal with its quirks. Scaling worked kinda wonky, and ECS has its own jargon for terminology that already exists with Docker in general, making it unnecessarily confusing. Why they call a container a "task" when the term "container" already exists is beyond me. We ended up using Rancher to manage Kubernetes.

ECS tasks are not containers. Tasks are a collection of one or more containers. They're the equivalent of a Pod in Kubernetes.

In Docker terminology, that would be a service?

In Kubernetes and ECS, a Service is already used to name the abstraction that represents a collection of Pods/Tasks.

(Actually K8s collection of Pods is usually a ReplicaSet, fronted by Deployment, from the perspective of making sure they run. The Deployment is related to a Service by labels and selectors, K8s service only decides what pods it will route traffic to. An ECS service is more like a Kubernetes deployment, and I guess what Kubernetes calls a Service, basically a load balancer, is just called a load balancer, and I guess you manage the ALB's configuration together somehow for your service group, manually or somehow other, or you can just create a new ELB each time, and pay again ...)

I had never heard of a Docker Service, but from the looks of it, the Deployment (or Task), Service, ReplicaSet and Pods are all rolled into one single abstraction, the "Service" in Docker Compose.

Ah, gotcha.

We use ECS via Fargate and I'm mostly happy. Deployments are pretty slow, but that's our only qualm. We PoCed EKS, but it has no integration with CloudWatch or IAM for all intents and purposes. They had roadmap items to address those things, but you absolutely have to reinvent a lot of wheels with Kubernetes compared to the things you get for free with ECS/Fargate.

Why they call a container a "task" when the term "container" already exists

Likely for the same reason they call it ECS and not EDS. Making everything docker-specific could be a bad idea is more container tech becomes popular and they want to allow you to start Frobnicator tasks as well as Docker tasks on the same platform.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.