Photo by Rock'n Roll Monkey on Unsplash
To pass this domain, you'll need to know the following:
- Apply concepts required to automate a CI/CD pipeline
- Determine source control strategies and how to implement them
- Apply concepts required to automate and integrate testing
- Apply the concepts required to build and manage artefacts securely
- Determine deployment/delivery strategies (e.g., A/B, Blue/green, Canary, Red/black) and how to implement them using AWS Services
This domain is 21% of the overall mark for the exam.
According to the AWS Whitepapers for DevOps we should look at the following documents:
- Introduction to DevOps on AWS (20 pages)
- Development and Test on AWS (17 pages)
- Practicing Continuous Integration and Continuous Delivery (32 pages)
- Blue/Green Deployments on AWS (35 pages)
- Jenkins on AWS (48 pages)
- Code Commit - This service provides Source Control Management (SCM). This is where you store your source code and keep a track of the changes made (commits). Examples of similar services: GitHub, Bitbucket, GitLab, and Azure DevOps. You only have one choice of Version Control Service (VCS) and that is Git.
- Code Build - This service builds code and produces artefacts. This is often part of a Continuous Integration (CI) pipeline, so this is where tests can be run to ensure the code is stable. Examples of similar services: Travis CI, Circle CI, Azure DevOps and Jenkins.
- Code Deploy - This service automates the deployment of your applications or publishes files to a website. This is often part of a Continuous Deployment (CD) pipeline. Examples of similar services: Travis CI, Circle CI, Azure DevOps and Octopus.
- Code Pipeline - This service provide a workflow, allow for more complex release step. This is often part of a Continuous Deployment (CD) pipeline. Examples of similar services: Circle CI, Azure DevOps and Jenkins.
Shrewd readers will have spotted that these are part of Developer Tools suite in the AWS Documentation page. So why have I excluded CodeStar, X-Ray and Tools & SDKs? They're not critical to SDLC automation.
If you have the time, by all means, read the User Guides, but they are usually a couple of hundred pages. Alternatively, get familiar with the services using the FAQs:
You're all expected to know the APIs
Before you panic, you'll start to spot a pattern with the API verbs.
And the CLI commands
As with the API, there are patterns to the commands.
If you're not familiar with SDLC automation, this involves the automation of the following:
- build process that compiles the code, or optimises the content for a static site, docker image
- running tests to verify the build was successful
- deploying the new build to a target e.g. application servers, app store, web server, etc. This can also involve publishing the artefacts from the build process to GitHub Releases page of your repository.
Usually, the trigger to initiate these steps is a commit or merge to the
master branch of your code.
The build and testing stages are often provided by a Continuous Integration service like Travis CI, Circle CI or Jenkins.
The deployment stages are handled by you guessed it Continuous Delivery service like Octopus, Azure DevOps (release pipelines) and often services that provide CI will also handle deployment.
To go to the next part of the series, click on the grey dot below which is next to the current marker (the black dot).