Automating Deployment with CI/CD - Modern Application Development on AWS

Automating Deployment with CI/CD

Companies strive to innovate quickly to deliver the most value they can to customers as quickly as possible. To achieve this, modern applications use continuous integration and continuous delivery (CI/CD) to automate the entire release process: building and running tests, promoting artifacts to staging, and the final deployment to production. CI/CD can also automate certain security controls, such as scanning for known vulnerabilities and performing static analysis. The full CI/CD pipeline can consist of an arbitrary number of quality gates and controls, all of which must be passed successfully before any new code makes it to production.

By automating the full build/test/deploy process, it becomes not only more reproducible, but faster as well. It can also be performed much more frequently—perhaps many times a day—meaning that each individual deployment consists of fewer changes and less risk. Instead of being a high-risk, all-hands-on-deck event, CI/CD allows deployments to production to be mundane affairs. Finally, because the time from when code is committed to when it is deployed is so much shorter than with manual processes, high-priority security fixes or config changes no longer require special hot patches, but can flow through the standard pipeline.

AWS customers can take advantage of fully-managed CI/CD services such as AWS CodeBuild, AWS CodePipeline, and AWS CodeDeploy, in addition to open-source options and third-party marketplace offerings.