As you saw in the workshop, Jenkins was used for building as well as deploying the application. However, with more functionalities and scale needed, it could increase the required configuration and management overhead. One of the preferred ways is to use Jenkins as an orchestrator and interface it with the managed services using the plugins for AWS CodeBuild and AWS CodeDeploy. These managed services would offload the users from managing the underlying infrastructure. This minimizes configuration required for autoscaling, provisioning, logging, troubleshooting, observability and get optimum performance by default.
We reviewed the Jenkins pipeline as shown below:
Now access the AWS CodePipeline by going to Services -> CodePipeline, as shown below:
Spend some time reviewing the UI for the CodePipeline. Click Edit button and you can see how easily you could add / remove / modify a stage graphically. Click Approve on the Manual Approval stages, if waiting there and see the control flow through. You can access the details link to check the build logs. You can subscribe to the pipeline event notifications as shown below and utilize CloudWatch to track custom metrics:
Review the CDK code for the pipeline in your workspace in file: cdk/lib/cdk-stack.ts.