CICD in AWS
Updated Jul 26, 2020 ·
NOTES
This is not an exhaustive documentation of all the existing AWS Services. These are summarized notes that I used for the AWS Certifications.
To see the complete documentation, please go to: AWS documentation
Overview
-
Continuous Integration
- Developers push code to a repository (CodeCommit).
- A testing/build server checks the code as soon as it is pushed (CodeBuild).
- Developers get feedback about the build status and tests.
- CI helps:
- Find bugs early and fix them
- Deliver faster as the code is tested
- Deploy often
-
Continuous Delivery
- Ensure that software can be released reliably whenever needed.
- Ensures deployment happens ofter and quickly.
- We can shift away from "one release every 3 months" mindset to "5 releases a day" (lol).
- This happens with automated deployments (CodeDeploy).
Why use CICD?
- Ideally, we would want to set up a CICD to help you automate multiple steps to automate builds, push code to a repository and then deploy to your updated code to AWS.
- This is a faster, efficient way that also helps minimize potential mistakes as opposed to running multiple manual steps.
- Automate deployement to different stages (dev, staging, and production).
- May add manual approvals when needed.
- To be a proper AWS developer, you'd need to learn CICD.
AWS Services for CICD
-
AWS CodeCommit: storing our code (similar to Github)
-
AWS CodePipeline: automating our pipeline from code to ElasticBeanstalk
-
AWS CodeBuild: To build and test code
-
AWS CodeDeploy: deploying code to EC2 fleets (not Beanstalk)