aws intro to ci cd
Continuous integration, continuous delivery/deployment for applications enabling small changes & automating everything. Creating small, incremental code changes while having automations for code integration/build/test/deployment.
This is great because you can successfully apply thousands of changes per day.
Benefits to CI/CD
- Automation - fast, repeatable, scalable, enabling rapid deployment
- Manual is bad - slow, error prone, inconsistent, unscalable, complex
- Small changes - test each code change and catch bugs while they're small and simple to fix
CI workflow
- Shared code repository - multiple devs contributing to a shared code repository like Git
- Frequently merging or integrating code updates
- Automated build - changes appearing int he code triggers an automated build of the new
code
- Automated testing - run automated tests to check the code locally before it is committed
into the master code repository
CD workflow
- Code is merged - after successful tests the code is merged
- Prepared for deployment - code is built, tested, packaged for deployment
- Manual decision vs. fully automated - either a manual review and publish or a fully
automated deployment is done
AWS developer tools
- CodeCommit - source and version control service enabling teams to colalborate on code,
html pages, scripts, images, and binaries
- CodeBuild - compiles source code, runs tests, and produces packages that are ready to deploy
- CodeDeploy - automates code deployment stot any instance, including EC2, Lambda, and on-premises
- CodePipeline - end-to-end solution, build, test, and deploy your application when code changes
Exam tips
- CI - Remember CodeCommit
- CD - Remember CodeBuild and CodeDeploy
- Automation - Remember CodePipeline
- AWS wrote a whitepaper called
Practicing Continuous Integration & Continuous Deployment on AWS
- Explains features and benefits of their services