Detailed Course Outline
- Challenge 1: Establish your plan
This initial challenge aims at putting the DevOps “mindset” in the teams. The participants are asked to get to know themselves better, organize the team and define how and where they will handle work items.
- Challenge 2: Implement CI - Continuous Integration
The participants will learn the fundamentals of Planning and Continuous Integration using the tooling of their choice. They will be asked to demonstrate that they organized their work items and are able to associate work items with code changes and any generated artifacts.
- Challenge 3: Implement Unit Testing
The participants will learn the fundamentals of Unit Testing, using their choice of commonly used languages. They will be asked to run unit tests automatically and integrate them in the pipeline they are building.
- Challenge 4: Implement Release Management
The participants will learn the fundamentals of Release Management by automatically deploying an updated version of their application to a Kubernetes cluster. They will be asked to demonstrate that they can perform an update to the application, link a work item with the associated code changes and reference the deployment of this feature with its corresponding work items.
- Challenge 5: Implement a basic Blue/Green deployment strategy
Building on the previous challenges, participants will learn how to implement a basic blue/green deployment strategy. They will be asked to articulate the blue/green logic and demonstrate its implementation for one of the APIs of the provided application.
- Challenge 6: Implement a monitoring solution with alerting
The participants will learn how to close the DevOps loop by adding monitoring and alerting. They will be asked to demonstrate a view aggregating the monitoring of the application and infrastructure. They also will have to implement alerting in the case of application performance degradation. Alerts should also generate a work item in the team work tracking system.
- Challenge 7: Implement Integration and Load Testing
The participants are introduced to additional test methods and when and how to perform them throughout the pipeline. They will be asked to develop at least one integration test for their application and build a load testing scenario that gates the deployment of the application.
- Challenge 8: Implement deployment with phased rollout
The participants will learn how to perform a blue/green deployment with gradual rollout and how to implement a “rollback” mechanism. They will be asked to add several phases to their existing pipeline to support a gradual rollout/rollback of a new version of the application. They will be asked to implement gates to validate the behavior of the application and implement a rollback mechanism.