AWS Codepipeline is one of the best CI/CD tool and which can be configured from developers’ code changes through production deployment. This tool visualizes and automates workflow and can be integrated with pre-configured tools to make the flow easier.
As in the above figure, AWS CodePipeline has been divided in to five categories.
Source : This is where the code repository is configured, this can be a 3rd party repository or AWS Codecommit lab. Any code change will be triggered soon after the code repository is updated.
Build : Project code is built at this stage and built artifacts would be sent to the S3 bucket with versioning. Users can add 3rd party tools too the pipeline.
Test/QA : Unit testing and QA automation tools can be integrated with this stage and automatically results would be displayed and go to the staging.
Staging : A release would be integrated with endurance testing, load testing and functional testing at this stage.
Deploy : Once the above stages are completed, then release would be automatically deployed or deploy after the manual approval.
There are several important advantages from AWS CodePipeline, and mainly, it takes off burden from DevOps & Software Engineers.
- Automate release process end to end.
DevOps Engineers are always bothering about the standardized, automated release pipelines. Code pipeline resolves the problem with a standardized release automation. Users can define a process to fully automate releases starting from code repository changes, build, test build, staging and release. This takes off burden from DevOps Engineers.
- Allows Engineers to integrate 3rd party tools with automation.
Majority of automation tools are proprietary and not allowed to add 3rd party application tools to the flow. But AWS CodePipeline fully allowed to add 3rd party tools instead of using AWS tools. Therefor, which is a good benefit to its users, and users do not want to worry about the existing already configured tools.
- Frequent deliveries to clients.
CodePipeline features frequent release to its customers, and it is helpful to achieve clients’ targets, additionally it reduces the human errors.
- Easy customization and easy edit of existing configurations.
At anytime, AWS CodePipeline can be changed using UI interfaces, and can be tested. This feature has been taken off the burden from being logged in to each and every tool and make changes.
- View progress and history.
Dashboard gives a visualize way of deployment progress and every step which was defined in deployment steps.