Many enterprises use containers to improve application deployment and configuration. Docker makes it easy to optimize the settings on a particular virtual host for an application. But enterprises need to manage sets of containers, and container orchestration tools can help teams provision and scale a collection of applications.
There are several tools for container orchestration, including Kubernetes, Apache Mesos, Docker Storm and CoreOS Fleet. Amazon upped the bar with EC2 Container Service (ECS), which provides many of the features of other container orchestration tools coupled with deep integration into the AWS infrastructure.
Amazon ECS was designed as a scalable container management service for Docker; it makes it easy to run applications on a managed cluster of Elastic Compute Cloud (EC2) instances. Essentially, ECS is a free add-on for enterprises already running application clusters of EC2 instances. The service eliminates the need to install a separate cluster management infrastructure.
ECS' integration with existing AWS services mitigates some provisioning headaches -- particularly when it comes to security and access management, Auto Scaling and load balancing across containers. ECS also supports a hybrid approach that enables developers to use other cluster management tools with the ECS API.
ECS enterprise use cases
Some enterprises, such as Expedia, Prezi, Coursera and Edmunds.com, use ECS because it offers improved management and scalability. Airtime, an online group video and messaging platform, turned to AWS to improve the scalability of its social media platform, redesigning its platform to run on a microservices architecture using ECS and Docker containers. This enabled the company to increase its release times to improve the customer experience and application performance.
Remind, a communication application that connects about 1.5 million teachers with 25 million students and parents, hit scaling challenges with its existing monolithic application infrastructure before it turned to Docker running on EC2. The company initially adopted CoreOS and Fleet as container orchestration tools, but moved to ECS to simplify engineering after running into some problems. Remind released an open source implementation of a platform as a service, called Empire, that it built on top of ECS.
Amazon ECS only supports workloads on the AWS infrastructure. Other container orchestration tools allow enterprises to run some workloads on their own infrastructures or across different cloud providers, including AWS.
Kubernetes, which has been around longer than ECS, bakes service discovery into its features with no additional programming or configuration. There may also be a significant difference in the time it takes to spin up new instances between different orchestration platforms.
Jeff Nickoloff, an independent software engineer, released an open source testing framework called c4-bench to evaluate the startup speeds of different container technologies. The tool currently has code for Mesos, Kubernetes and Swarm -- but not ECS. His research found a significant performance difference between Kubernetes and Swarm. Future research may find that some of these other platforms also have advantages over ECS.
The granularity of monitoring different orchestration engines is also important. One survey of IT managers found that ECS lacked monitoring capabilities, compared with container management services from Google and Microsoft. Some enterprises note it offers limited discovery, a lack of central configuration and AWS Command Line Interface limitations.
One possible upside of Docker Swarm is tighter integration into the Docker platform, which promises to reduce the engineering required to code the Docker side of applications. If an enterprise is committed to AWS, then ECS is a strong option. On the other hand, if cross-platform compatibility is important, then other orchestration engines could be a better fit.
Portability is overhyped when it comes to containers
New AWS Blox proves puzzling to container advocates
Remove the difficulty of managing containers