Cloud computing evolves at a break-neck speed, always responding to industry trends and customer demands. Amazon Web Services (AWS) drives much of this evolution, adding features and services weekly. Containerization has exploded in popularity over the past five years, though customers quickly discovered that managing and maintaining containers at scale is challenging.
AWS helps customers manage the control plane through Elastic Container Service (ECS) and Elastic Kubernetes Service (EKS). Beyond just managing the control plane, AWS has created a serverless container engine with Fargate. AWS detailed its container strategy at Cloud Field Day 9.
The Impact of Containerization
Containers have shifted the center of gravity in the world of IT infrastructure. Virtual machines abstracted the hardware away from the operating system, and now containers abstract the operating system from the application. Since a container packages all of an application’s dependencies into the container itself, developers can create an application on their laptops and reasonably expect it to behave the same in production environments. ‘It worked on my machine’ is no longer a concern in a containerized application.
Containers simplify the application lifecycle, but they must run somewhere. The data plane underneath a container orchestrator needs to be robust and adequately managed, just like the hypervisor layer in a virtual machine environment. Managing the data plane at scale becomes complicated and unwieldy, adding risk and complexity without adding significant value to the application.
AWS Managed Containers
Amazon has embraced containers in multiple ways. ECS is a managed container orchestrator that allows customers to deploy their containers using the AWS API. Similarly, EKS is a managed Kubernetes offering where AWS manages the Kubernetes control plane, and customers deploy their applications by consuming the Kubernetes API.
These services greatly simplify container infrastructure management. Deploying a container orchestrator is near-instant using these services. However, the services leave the customer responsible for the data plane. Something must run the containers, and historically Elastic Cloud Compute (EC2) instances power the underlying data plane, providing compute to ECS and EKS. Customers incur costs the entire time EC2 instances run, and they are responsible for managing that infrastructure. Customers requested AWS to manage the compute that supports their ECS and EKS environments, and AWS responded in a big way.
Fargate Enables Serverless Containers
AWS introduced Fargate to abstract the data plane management away from customers. Traditionally, EC2 instances provide data plane compute to ECS Tasks or EKS Pods. EC2 instances require customers to choose instances and manage auto-scaling. Fargate is a serverless compute platform designed to run containers. It allocates resources on-demand, creating little waste in resources. There is no dedicated underlying infrastructure from the container control plane perspective, and the customer pays only for resources they are actively consuming.
Conclusion
AWS is the industry leader in cloud computing, though it never rests on its position. It is continually growing services and adding new features that customers request. ECS and EKS greatly simplify deploying, managing, and maintaining a container orchestrator system.
AWS Fargate provides a compelling compute platform, allowing customers to focus on building applications without worrying about the infrastructure powering their containers. These services combine to create a compelling story for customers looking to deploy a web-scale application without worrying about the complexities of running a container orchestration environment.
For more information, you can check out AWS at Cloud Field Day 9.