Amazon Web Services (AWS) is in the early stages of combining its Firecracker micro virtual machine (VM) platform with containers based on the Containerd engine to make its Fargate serverless computing service for containers more efficient.
Claire Liguori, principal software engineer for AWS, told attendees at the recent re:Invent 2019 conference that one of the reasons Fargate has gained so much traction is because it provides IT teams with a more efficient way to optimally provision instances of virtual machines based on Firecracker.
However, Liguori says AWS sees an opportunity to make Fargate even more efficient by shifting the data plane for Fargate into each instance of a Firecracker microVM. That approach will make it possible to spin cloud resources up and down as container workloads change even faster than Fargate does today, says Liguori.
Liguori says AWS is developing this project on GitHub to make it available to other cloud infrastructure providers. It’s not clear how much other cloud service providers are interested. However, the AWS project shows there is much opportunity to make deployments of containers on lighter instances of virtual machines such as Firecracker that only consume about 5MB of memory. In comparison, legacy virtual machines typically consume about 8GB of memory.
AWS is already spinning up tens of millions of containers every week on Fargate, which relies on Firecracker to isolate applications, says Liguori. By marrying Containerd and Firecracker, AWS not only reduces its own costs, but it will also reduce the total compute costs incurred by end customers as the number of containerized workloads deployed on Fargate steadily increases.
Containerd is optimized to run the runtime specification, image format specifications and reference implementation (runc) defined under the Open Container Specification (OCI). That specification is being developed under the auspices of the Open Container Initiative, an arm of The Linux Foundation. The assumption is that Containerd will be embedded in other systems such as Fargate and other cloud services.
AWS is making it clear it is ramping up investments in Fargate. At the re:invent conference, AWS announced it is making available an instance of Fargate for Kubernetes. Overall, AWS claims 81% of all containers in the cloud run in AWS and 84% of all Kubernetes in the cloud run on AWS. In addition, 40% of all new AWS customers deploying containers are getting started with the existing Fargate service, according to the company.
It’s too early to say what percentage of organizations will prefer to run containers on a serverless platform such as Fargate versus maintaining control over how compute resources are allocated themselves. What is clear is that the management of compute resources by services such as Fargate is about to become a lot more efficient. AWS is also investing in machine learning algorithms to further optimize cloud computing environments. As those investments start to manifest in 2020, however, rival platforms will undoubtedly find themselves challenged to keep pace.