- Introduction
- Challenge 1: Visualise Work
- Challenge 2: Development Practices
- Challenge 3: Continuous Integration
- Challenge 4: Security & Test Automation
- Challenge 5: Automated Deployment & Continuous Delivery
- Challenge 6: Monitoring & Feedback
This DevOps Hack project is designed to help attendees learn about good DevOps technical practices with GitHub for deploying to Azure.
In Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations, authors Nicole Forsgren, Jez Humble, and Gene Kim present research that surfaces the key technical and management practices that high-performing DevOps teams have adopted as an enabler of more frequent, higher-quality and lower risk software releases.
We have used the practices listed by the authors under the heading of Continuous Delivery to guide the challenges in this hack. High-performing DevOps teams have adopted many of these capabilities to help them achieve a continuous delivery model.
- Use Version Control for all production artifacts
- Automate your deployment process
- Implement continuous integration
- Use trunk-based development methods
- Implement test automation
- Support test data management
- Shift left on security
- Implement continuous delivery
- Oraganise yourself into teams if you haven't already. GitHub is all about social coding!
- Create a GitHub account or login to an existing one
- Decide who will host the repository for your team
- Create an Azure Account (although in the deployment challenge, feel free to deploy to multiple cloud environments)
- Fork this repo into a public repo within your chosen GitHub account
The exercise is broken down into six challenges. Most challenges can be worked on independently but we would encourage you to follow the suggested order. All challenges can be complete using existing GitHub and Azure functionality but feel free to go off piste and incorporate your favourite DevOps tooling to make the exercise more relevant to your organisation.
The timetable for the day is as follows:
| Time | Session | Required |
|---|---|---|
| 10:00 - 10:30 | Introduction to the DevOps Hack | ✔️ |
| 00:00 - 00:00 | Challenge demo | |
| 00:00 - 00:00 | Challenge demo | |
| 00:00 - 00:00 | Challenge demo | |
| 00:00 - 00:00 | Mid-point check in | ✔️ |
| 00:00 - 00:00 | Challenge demo | |
| 00:00 - 00:00 | Challenge demo | |
| 00:00 - 00:00 | Final presentations | ✔️ |
| 00:00 - 00:00 | Wrap up | ✔️ |
If you are already familiar with GitHub and many of the practices in the challenges then feel free to go at your own pace and concentrate on the optional extensions or come up with your own! We'd love to see what awesome things you have created at the end of the day.
A complete list of objectives including optional extensions is available as a csv file
GitHub provides Issues and Project Boards to enable you to track your project requirements.
- Create a GitHub Issue for each objective across the six challenges csv
- Add a Label to each Issue to indicate which challenge it belongs to
- Create an
Automated Kanban with reviewRepository level project board and include all open Issues - Add an Issue template to track
Customer feedback
How will your team work together collaboratively and ensure a high quality release?
In this challenge we will build our application ready for deployment to our chosen location.
With many developers working on our project, we want to make sure that a high bar or security and quality is maintained.
Deploy your application to multiple Azure environments
Maintain a feedback loop from your running application and end users. Automate the process to drive project priorities and react to issues quickly.
