On July 9, 2020, Docker and Amazon Web Services (AWS) announced they would make Docker application developers' lives easier by streamlining the process of deploying and managing containers from Docker Compose, Docker Desktop, and Docker Hub to Amazon Elastic Container Service (Amazon ECS) and Amazon ECS on AWS Fargate.
Docker containers, of course, can be used anywhere. But while developers may use Docker Desktop and the Docker CLI for building applications on their desktop, they may also have used Docker Compose to define and run multi-container applications via a YAML file. So far, so good.
The problem is that there hasn't been a simple seamless way to use Docker and deploy to AWS from their desktop. That's because essential Amazon ECS constructs were not part of the Docker Compose specification. For instance, to run even a simple Compose file and deploy to ECS, developers are required to leave Docker tools and configure an Amazon VPC, Amazon ECS Cluster, and Amazon ECS Task Definition.
Put it all together, and it gives you a simplified, open-source workflow that takes you from the Docker CLI and Docker Compose to deployment via Docker Hub to Amazon ECS.
Going forward, developers will be able to use Docker development tools without needing to set up AWS resources because that will now be natively handled. By creating and switching to a new context in Docker, a developer can simply issue an up command via Docker Compose, which will create those resources automatically in AWS. This will make it much easier for Docker developers to deploy and run highly secure and scalable production applications on ECS.
In a statement, Docker CEO Scott Johnston, said: "This is a big step toward giving developers the best experience building, sharing, and running cloud-native apps with Docker and Amazon ECS. This experience allows developers to work locally and take the same experience into a production-scale cloud service with Amazon ECS, reducing the span of knowledge needed and accelerating their time to production."
AWS is also enthusiastic about this new programmer partnership.
"With a large number of containers being built using Docker, we're very excited to work with Docker to simplify the developer's experience of building and deploying containerized applications to AWS," said Deepak Singh, AWS Compute Services' VP. "Now customers can easily deploy their containerized applications from their local Docker environment straight to Amazon ECS. This accelerated path to modern application development and deployment allows customers to focus more effort on the unique value of their applications, and less time on figuring out how to deploy to the cloud."
I see this as a very good move on Docker's part. After Mirantis acquired Docker Enterprise in 2019, I wasn't sure if there was a road forward for the remaining Docker development tool group. With this AWS partnership, I can see programmers sticking with, or even coming back to, using Docker's tools for cloud projects. And, let's face it, using containers successfully is all about making them easy to use, deploy, and manage on the cloud.