Q: What is continuous delivery?
Continuous delivery is a DevOps software development practice where code changes are automatically built, tested, and prepared for release to production. It expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When continuous delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process. To learn more, see: What is Continuous Delivery?.
Q: What is continuous deployment?
Continuous deployment enables developers to ship features and fixes through an entirely automated software release process. Instead of batching up large releases over a period of weeks or months and conducting deployments manually, developers can use automation to deliver versions of their applications many times a day as new software revisions are ready for users. In the same way cloud computing abbreviates the delivery time of resources, continuous deployment reduces the release cycle of new software to your users from weeks or months to minutes.
Q: How does continuous deployment work?
Continuous deployment is conducted by an automated pipeline that coordinates the activities related to software release while providing visibility into the process. During the process, a releasable artifact is built, tested, packaged, and deployed into a production environment. The releasable artifact might be an executable file, a package of script files, a container, or some other component that ultimately must be delivered to production.
Q: What is Amazon CodePipeline?
Amazon CodePipeline is a continuous delivery and deployment service that coordinates the building, testing, and deployment of your code each time there is a new software revision. CodePipeline provides visible, central orchestration for taking a code change and moving it through a workflow and ultimately into the hands of your users. The pipeline defines stages to retrieve code from a source code repository, build the source code into a releasable artifact, test that artifact, and deliver it to production while ensuring that these stages happen in order and are halted if a failure occurs. To learn more, see: Amazon CodePipeline.
Q: What is Amazon CodeBuild?
While CodePipeline powers the delivery pipeline and orchestrates the process, it does not have facilities for building or testing the software itself. For these stages, CodePipeline integrates with several other tools, including Amazon CodeBuild, which is a fully managed build service. CodeBuild compiles source code, runs tests, and produces software packages that are ready to deploy. That makes it ideal for the build and test stages of a continuous deployment pipeline. Out of the box, CodeBuild has native support for many different kinds of build environments, including building Docker containers. To learn more, see: Amazon CodeBuild.
Q: What is Docker?
Docker is an open-source technology that that allows you to build, run, test, and deploy distributed applications inside software containers. It allows you to package a piece of software in a standardized unit, containing everything the software needs to run: code, runtime, system tools, system libraries, etc. Docker enables you to quickly, reliably, and consistently deploy applications regardless of environment. To learn more, see: What is Docker?
Q: What is Amazon EC2 Container Service?
Amazon EC2 Container Service (ECS) is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run applications on a managed cluster of Amazon EC2 instances. Amazon ECS eliminates the need for you to install, operate, and scale your own cluster management infrastructure. With simple API calls, you can launch and stop Docker-enabled applications, query the complete state of your cluster, and access many familiar features like security groups, Elastic Load Balancing, EBS volumes, and IAM roles. You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs and availability requirements. You can also integrate your own scheduler or third-party schedulers to meet business or application-specific requirements.
Q: Why should I use Amazon ECS to set up a continuous delivery pipeline?
Amazon ECS provides a managed service you can use to easily run containerized CI/CD workflows, leading to reduced job time, increased volume of jobs run, and enabling flexibility in language stacks.
Q: Can I use tools other than Jenkins to set up a continuous delivery pipeline to Amazon ECS?
We have a variety of partners that provide software that can help you run and manage continuous delivery pipeline to Amazon ECS. These partners have certified their solutions to work with Amazon ECS. You can find a complete list of partner solutions on the Containers Partners page.
Q: What if I have more questions about Amazon ECS?
Visit the Amazon ECS FAQs page.