In this section the DevOps culture is explained detailing the underlying principles and models associated to it. Important DevOps concepts such as delivery pipeline and Continuous Integration and Deployment.
DevOps is not an agile framework it is more like strategy or a culture aligning the developer team functions with the operation team. It fits in a lot of Agile frameworks like SAFe and XP and many others are adopting this aproach. In terms of the operation there is more focus on the code repository, the build and finally the release or deployment activities. One of the biggest issues around releasing code base into production is reliability and stability the desire for safe releases are especially high particulary where a level of automation.
DevOps focuses its strategy on remediating the risk allowing software driven activities to test promote code in to a centralised shared source, for example: git hub, control the version and test the build functionality before proceeding with the release and then deployment activities and sharing feedback in the process.
The term DevOps was first introduced in 2009 by the Belgium Patrick Debois and Andrew Shafer from the US. Debois was instrumental towards the DevOps culture we have today. The objective was to introduce more collaboration and transparency with a view of automation between the processes of the development team and IT operations.
Pillars Of DevOps
DevOps uses these pillars or principles as part of the mindset when taking such an approach.
For culture DevOps has embraced the Agile mindset and principles. DevOps embodies the Agile way of working and its release mechanism allows functionality or features flowing off a conveyor belt.
"...Automate everything where ever you can ..." - this will improve reliability and stability of the product. This will allow an improved 'flow' in the delivery. Here the introduction for the Continous Delivery pipeline can be introduced.
Information radiators can be used to monitor control feedback from the delivery cycle. DevOps team are focused towards a more proactive way of working. To deal with production bugs, infrastructure stability and product stability. KPI's help in keeping the business aligned to the risks.
The three factors that are aligned to sharing are Visibility, transparency and Knowledge. Everyone in the DevOps team works towards a common goal, the visibility allows everyone to be alert to unpredictable activities within DevOps environment. Promotion for knowledge embraces the mindset for continuous improvement.
This model incorporates the activities involved in a Devops culture. The mindset is cyclical with feedback loops embodied into the process.
The Plan-Code-Build-Test flow represents the developer delivery cycles, for the Operations side, the Deploy-Operate-Monitor Model is employed. Feedback is critical in the flow, particularly with monitoring activities.
There are many DevOps practices, but the top 6 are shown below:
- Continuous business planning
- Collaborative development
- Continuous testing and Integration
- Continuous release and deployment
- Customer feedback and optimization
- Continuous monitoring