Containers are a way to package and deliver your application code, they streamline the transition from development to production. Containers are composed of your application, its dependencies and startup commands all within a single “container”, this accelerates the deployments of new apps and the migration of existing ones to new platforms like AWS.
Let’s see how containers work by building one. We start off with a manifest file that describes where the code resides, and how to download the necessary dependencies and launch the application. Next, we issue a command to construct an image which is simply a blueprint with a name and a version number, from this image, we can create containers!
As developers build new features for your applications, they will create many images with different version numbers. To help organize and reference these images, we can store them in a registry. This makes it easy to publish new application versions in multiple environments, the diagram below captures this container lifecycle.
In addition to their lightweight nature compared to virtual machines, the benefits of adopting containers include:
A universal and predictable format that is supported by cloud providers
Faster startup and scaling compared to booting new servers
More efficient use of resources since one machine can host many containers
Migrate legacy code to the cloud with little modification
Ideal for large microservices-based systems
Easily automated delivery with a CI/CD pipeline
With nearly 80 percent of all containers running on AWS, it is the perfect place to start your container journey with container management services such as the Elastic Container Service (ECS) and Elastic Kubernetes Service (EKS), both of which can run on a fleet of EC2 instances that you manage or completely serverless with Fargate. To store your images safely, the Elastic Container Registry (ECR) service provides private and secure repositories, all the services mentioned are natively integrated with other AWS security, storage, and networking services.