Is Fargate for EKS "Serverless"?
What is Fargate?
When Fargate was introduced in 2017, it had brought in a new paradigm of how containers can be run on Cloud. Instead of manually setting up container clusters (using ECS) on top of EC2 instances, Fargate had automated the provisioning of containers as required and eliminated the need for planning and provisioning the compute. Fargate uses lightweight virtualization technology called 'Firecracker' to run the containers within virtual machines, offering strong isolation, security and multi-tenancy, which AWS describes as "MicroVMs". Firecracker is what makes Fargate so unique.
Fargate for EKS
Fargate so far only supported ECS, but had no support for EKS (managed Kubernetes service from AWS). With this announcement EKS can run on Fargate based compute for hosting containers. With EKS on Fargate, setting up an EKS cluster is a matter a single command plus creation of Fargate profile and some IAM tweaking. Once done, EKS cluster can scale based on application scaling requirements as determined by the pod scaling behavior. Most importantly, the scaling is elastic and customers are charged based on the containers provisioned.
Here is an animation from @ArchanaSrikanta that shows how extensible Kubernetes architecture is, and how simple it is to use Fargate.
Curious about the internals of Fargate, Fargate-on-Firecracker, and EKS-on-Fargate? I will be doing a session tomorrow with @onurfz: CON423 AWS Fargate under the hood. Here is a teaser of my EKS Fargate architecture slide! #Fargate #EKS #reInvent2019 #Kubernetes pic.twitter.com/mf7IBXx7ch— Archana Srikanta (@ArchanaSrikanta) December 5, 2019
Is it Serverless?
Serverless computing is a word that is overloaded to each vendors' conveniences. But if we have to scope in words, here is how I characterize 'Serverless'.
- Cost - Strictly usage based pricing
- Dev Experience - Source-centric applications
- Scale - Truly elastic scaling
- Setup - No infrastructure provisioning
More the boxes checked by an offering, better Serverless it is. How does Fargate or Fargate for EKS fare against these characteristics?
- Fargate pricing is based on containers provisioned by it to handle the requests, and definitely not based on the actual requests. This box is not checked.
- Containers are very close to source, so I would say this box is checked.
- Fargate scales containers elastically up and down as needed. This box is checked.
- Creating an EKS cluster on Fargate is fairly simple. There is no need to plan and setup the underlying compute, network and storage. This box is checked too.
Fargate for EKS is quite close to be called as Serverless offering, except for the way it is costed.
Fargate for EKS is quite innovative in how Kubernetes is extended to run on a completely different compute infrastructure, albeit with a few limitations.
AWS claims they run 80% of all containers that run on public cloud. This claim show the dominance of AWS. With such dominance, Fargate for EKS is all set to be a leading Container Serverless offering for Kubernetes. Are there any other Container Serverless offerings for Kubernetes that compare to Fargate for EKS? That would probably be the next topic to write about.
This post originally appeared at www.techspot.co.in