Over the past year, I’ve been asked a question somewhat frequently, and in a variety of differently articulated forms that all distill down to this: “So is ECS in maintenance mode now that Kubernetes won?”
There is so much wrong with that sentiment that I felt compelled to write about it this week and pick it apart like the remarkable bullshit onion that it is.
Has Kubernetes won?
That depends. It’s won some things! Enterprise mindshare, engineering adoration, some Gartner adulation, and an abdication of responsibility for a whole host of things that are neither here nor there? Yes, it’s won a lot of those things.
In the AWS universe, there are generally two things people want to achieve. They want to either integrate with an existing Kubernetes environment or they want to sacrifice operational excellence in service to their own résumés.
In the larger sense, if a customer actually wants to derive the benefits of containerization and work with them in an AWS environment, they generally opt for ECS instead. There’s a reason I pointed http://KubernetesTheEasyWay.com where I did.
But it’s possible that I’m entirely mistaken on this, and my customers aren’t “typical” AWS customers. After all, if I’m completely wrong, let’s find out BEFORE I whack the Publish button on this article, no?
Let’s go to the source!
I reached out to AWS’s PR group (motto: “no comment” and also “oh Christ, it’s you again”), some fine folks who understandably wish to speak to me as little as humanly possible. They were quick to furnish a quote from the always-engaging Deepak Singh. (For those paying attention, this is an AWS PR first for this publication!)
“Amazon ECS has over 100K weekly active customers,” said Deepak Singh, VP of Compute Services, AWS. “This year, almost half of new containers customers chose ECS running AWS Fargate. We continue to innovate quickly based on customer needs and requests with significant recent enhancements to scheduling strategy and scaling. We also announced with ECS Anywhere, the ability for customers to use ECS to launch and manage containers on any compute infrastructure, including customer owned hardware. Customers can now have a consistent ECS experience for cluster management, workload scheduling, and monitoring.”
Reading between the lines, it matches what I see. Customers ask for Kubernetes. But what they want is a way to intelligently orchestrate containers in their environments (both AWS and beyond) without falling off the complexity cliff.
I’ll further point out that Deepak also oversees EKS, so there’s little reason for him to be pushing an ECS-focused narrative.
What about ECS/EKS Anywhere/Anyhoo?
There is a natural question as to whether or not ECS being able to run in non-AWS environments (yes, yes, that DOES include other cloud providers, but good luck getting an AWS employee to admit that one on-the-record!) is a potential positioning of the service as a competitor to Kubernetes.
For what it’s worth, I don’t think it is. From an AWS perspective, they don’t really care if you run workloads on ECS or EKS or AMIs or Lambda functions; they’re making money either way. I think that AWS clearly has opinions as to the future of container orchestration, but they’re also not a company unwilling to either hedge their bets or be proven wrong. I suspect they’ll be watching what customers do to see what the future of ECS/EKS/running containers looks like, but I sincerely doubt that they’re looking to overthrow Kubernetes.
The ECS/Kubernetes divide
Kubernetes is cherished by folks who want to have multiple independent clusters, be freed at least theoretically from a single service provider, and/or who want to cosplay as Google SREs.
ECS, on the other hand, is embraced by folks for whom decentralization isn’t a priority, “getting a containerized application out the door easily” trumps résumé-building, and (admittedly) don’t have a wealth of pre-existing Kubernetes experience themselves.
But don’t take it from me…
Lastly, I’d like to point out a line from a blog post that AWS published recently that addresses the ECS vs. EKS divide from a customer perspective.
In the piece, AWS highlights that ECS itself powers a number of very key AWS services. I have a hard time imagining them migrating these things to EKS—or the AWS service teams themselves accepting a less-capable outcome if ECS were to be mothballed.
Bottom line? ECS isn’t going anywhere. Kubernetes most assuredly hasn’t won all the marbles just yet. And if you ask me, I don’t think it ever will.