On this last day of AWS services we are going to talk about a big one that has a lot of moving parts and integrations. There are a few free resources out there that will help in your learning/understanding of this... but honestly some of the best ones will cost you some money. I will list them out seperately in the resources section and call them out, but I would be remiss in NOT mentioning them as they are fantastic for learning this complex service
CodePipeline is a fully managed continuous delivery service that allows you to automate your IaC or software release processes. It enables you to create pipelines that build, test, and deploy your code changes continuously and (with proper testing in place) reliably:
With CodePipeline, you can create pipelines that automate your build, test, and deployment workflows, ensuring that your code changes are reliably deployed to your target environments. It enables you to achieve faster release cycles, improve collaboration among development and operations teams, and improve the overall quality and reliability of your software releases.
AWS CodePipeline integrates with other AWS services:
- Source Action Integrations
- Build Action Integrations
- Test Action Integrations
- Deploy Action Integrations
- Approval Action Integrations
- Invoke Action Integrations
It also integrates with third-party tools such as GitHub, Jenkins, and Bitbucket. You can use AWS CodePipeline to manage your application updates across multiple AWS accounts and regions.
To get started with AWS CodePipeline, there are several excellent tutorials in the AWS User Guide. They all basically break down into the following 3 steps:
You need to create an IAM role that allows AWS CodePipeline to access the AWS resources required to run your pipelines. To create an IAM role, review the steps from Day 52
To create a CodePipeline pipeline, go to the AWS CodePipeline console, click on the "Create pipeline" button, and then follow the instructions to create your pipeline. You will need to specify the source location for your code, the build provider you want to use, the deployment provider you want to use, and the IAM role you created in step 2.
Once you have created your CodePipeline pipeline, you can test and deploy your code changes. AWS CodePipeline will automatically build, test, and deploy your code changes to your target environments. You can monitor the progress of your pipeline in the AWS CodePipeline console.
To tie up this AWS section of the 90 Days of DevOps, I recommend that you go through Adrian Cantrill's excellent mini-project, the CatPipeline. In it you will be exposed to CodeCommit, CodeBuild, CodeDeploy, and CodePipeline in a fun little project that will give you a taste of a day in the life of a DevOps engineer.
AWS: Real-world CodePipeline CI/CD Examples
AWS CodeCommit tutorial: your first Repo, Commit and Push
AWS CodeCommit vs GitHub: Which will Shine in 2023?
There are a number of excellent instructors out there and picking 2-3 is always hard, but Adrian Cantrill, Andrew Brown, and Stephane Maarek always come to mind when discussing fantastic content out there.
I hope that this section of the 90 Days of DevOps has given you a taste of what is available in the AWS ecosystem.
Good luck in your studies! Up next is Red Hat OpenShift! See you in Day 56.