AWS Fargate is a coat on top of ECS and EKS that allows a user to run containers without the need to manage the host that the particular cluster runs on. Fargate offers additional automation of containers by managing the provisioning of compute resources based on instructions you give it. There is so much to this new AWS service than meets the eye. Yet, every element of Fargate is designed to simplify the whole process from creating to deploying containers in production.
Without a doubt, Fargate brings in a monumental shift in the management of containers as it seats containers on the very same level as the underlying instances. Fargate perfectly fits into the AWS container offerings and offers a rich experience that is modern and easy to understand as well. It enables you to skip the boring parts and helps you focus on building better products and spending less time on operations overhead.
Just in time for the afterparty
Containers are a major necessity for developers to build, package, and deploy various applications in the cloud. Amazon Web Services started rolling out container services through its ECS service during the early days of Docker. ECS has gained widespread adoption by those wanting to dip their toes in containers without having to start from scratch. By leveraging EC2 instances, ECS gives users a safe and familiar way to play around with containers in a familiar VM environment.
However, despite this, it has been a late mover when it comes to Kubernetes adoption. AWS was one of the last to get on the CNCF board of sponsors, and one of the last to announce support for Kubernetes in ECS. This has made users skeptical of AWS’ commitment to containers and made some even jump ship to the more Kubernetes-friendly GKE. AWS is now responding to this gap with full force by announcing its managed Kubernetes service EKS, and its easiest container service Fargate. If ECS got the container party started for AWS, Fargate promises to start the afterparty.
Walking the line between power and simplicity
With Fargate, you don’t need to worry about when to scale clusters or pack them for flawless optimization. You don’t need to optimize storage like increasing the size of an EBS volume, for example. You can launch several containers in a matter of seconds and easily scale them to run the most resource-intensive applications in production. Seamlessly integrated with ECS and EKS, Fargate lets you focus on elements like designing and constructing your applications instead of stitching together the infrastructure that runs them. With Fargate launch type, all you need to do is package your application in containers, specify the memory and CPU requirements, define IAM and networking policies, and launch the application. Containers that meet the criteria for SOC 1, ISO, PCI, SOC 2 and SOC 3 compliance and HIPAA eligibility can now process regulated financial data and even protected health information (PHI). The latest update in Fargate provides added support for Amazon ECS task metadata endpoints, ECS service discovery and container health checks.
This type of automation, simplicity, and abstraction of resources is just making its debut in the container space. In the wider space of application development, we’ve seen this in Platform as a Service of all types. From CloudFoundry to Heroku, and even platform-specific PaaS solutions like AutoRABIT. The latter is a Salesforce-specific release management suite that abstracts away the maintenance and lets developers focus on building, testing, and deploying their code the faster way possible.
AWS Fargate doesn’t require you to manage any virtual machines, yet it lets you create and run tasks directly on virtual machines. Making the deployment of containers on AWS simple and hassle free is the goal of all container management platforms today. In this aspect, Fargate has brought to the table something that most competing cloud platforms are yet to offer — containers being managed the serverless way.
From a broader perspective, Fargate is like EC2. However, when you look at it from up close, AWS Fargate provides a container instead of a virtual machine. This technology allows containers to be used as a fundamental compute primitive keeping aside the need to handle the underlying instance. There are a number of configuration options you can use to match the need of applications and billing is done with per-second granularity.
The same, but different
Although ECS, EKS, Lambada, and Fargate are services offered by AWS, they all have different functions and cater to different needs. ECS and EKS are different schedulers with different capabilities, syntax, and resources to describe how containers are orchestrated. On the other hand, Fargate is a launch platform that executes and runs containers by abstracting away the low lying technicalities.
Fargate does remind one of that other runaway success from the AWS stable — Lambda. In similar fashion, Lambda lets you execute code without having to provision infrastructure. However, the AWS Lambda platform has execution time limits that make long-running processes hard to manage. Yet, serverless computing offers a number of benefits and AWS Fargate bridges the gap. Fargate brings severless to microservices as it simplifies their complex management by providing developers the ability to focus on the task of creating APIs.
Microsoft’s AWS Fargate rival
Although Microsoft’s Azure Container Instances (ACI) was released a few months before AWS Fargate, they do go head-to-head with different features and solutions. Azure Container Instances (ACI) rolled out managed Kubernetes as part of the Azure Container Services. Azure Container Instances doesn’t really have a visual setup or a graphic user interface, for that matter. Interacting with ACI requires the usage of the Azure CLI, which many users may not find appealing. Fargate is a step above ACI in this aspect as it uses the AWS Graphic User Interface that provides several options, input fields, and drop-downs at every step.
When it comes down to services, although both services may seem similar, they do have a huge difference. Azure Container Instances somewhat feels like a JSFiddle service, offering an easy sandbox for running containers. On the other hand, Fargate sits in the Kubernetes and DC/OS space. Fargate is constantly running in the background, taking care of managing ECS clusters, and yet doesn’t need you to actively manage its every move.
AWS Fargate has been used by many and a number of reviews have stated some common factors. To start off, Fargate gets rid of a coat of complexity from the present ECS offer but continues to use the concepts of Cluster, Task Definition, Service and Container Definition. Fargate’s new wizard takes away a number of complex operations and fast-forwards the process. If you’re using AWS without a container orchestration tool, Fargate is the easiest road to get you started. Migrating Amazon ECS containers to Fargate is simple and hassle-free. Tasks can be created and run instantly. Fargate is the next level in container management as it offers easy application deployment without the worry of how the resources should be scaled.
Who does Fargate target?
Fargate is aimed at enterprises that are ready to start their journey into a modern digital platform and are looking for the easiest way to get started and reliably scale operations in production. Fargate lets these organizations get past the initial stages of labor pain and go straight to deploying containers the hassle-free way.
AWS does a good job of providing a setup wizard that will quickly help you in getting started. There on, you can efficiently save CloudFormation templates and revisit security configurations. Keeping in mind its spontaneous setup, Fargate is a good tool not just for full-blown applications but also getting a number of prototype applications up and running fast.
AWS Fargate is a good solution to manage auto-scaling and cluster management for Docker containers. Fargate takes away the pain of managing cluster scheduling, picking the instance types or optimizing cluster utilization, ultimately helping you focus on building and operating applications.
To top it off, developers no longer need to worry about compute resources for container applications as defining application requirements like memory, and CPU is all that is needed. Fargate will manage all that is needed to run containers in a highly available fashion.
Without a doubt, AWS Fargate helps in saving time for the things that really matter. Will this hands-off approach find favor among DevOps teams or will they still prefer more control over every aspect of the stack? This is something we’ll have to wait and watch for.
Featured image: Pixabay