This blog is for my own reference.
DevOps is a mindset that requires cultural evolution similar to Agile and Lean Startup. It is more than a technology or a tool set. Like Agile, implementation of DevOps depends on people, maturity of process and usage of right tools.
When teams master DevOps along with Agile and Lean, the team would be able to observe and learn based on feedback in different practice areas. The combination of DevOps with agile is aimed to make application life-cycle faster and more predictable.
- Manage technical debt. Any technical debt you carry is a risk to generate unplanned work—such as Live Site Incidents—that interfere with your intended delivery. Developers need to be conscious of any debt items and take initiatives to educate stakeholders and schedule paying technical debts off before they become large to interfere with the quality of service delivered.
- Does customer really get value. Items in backlog are ranked according to what matters to the customers and focus in on delivery of value for customers. Though this existed from the first decade of Agile, now we can measure how much value we are offering to customer and whether we need to correct our course.
- Look product backlog as customer Hypothesis. Prior to DevOps, product stakeholders added items in to backlog that they considered of value to customer and the the product owner groomed the backlog. Now, we can treat the backlog as a set of hypotheses, that gets turned into experiments,where we need to collect data to support or diminish the hypothesis. With real evidence, we can determine the next move in the backlog and persevere (do more) or pivot (do something different) The evidence takes center stage over the likes and dislikes of product owner.
- Evidence and data. We instrument everything, not just for health, availability, performance, and other qualities of service, This is needed to understand usage and collect evidence relative to the backlog hypotheses. For ex, when user experience gets changed, we plan and implement multiple experiments, measure the impact of experiment collecting data based on user action. The usage data can be contrasted across usage patterns, such as weekday and weekend users, to hypothesize new ways of improving the experience for each.
- Production first mindset. That data is reliable only if the quality of service is consistently excellent. We always track the live site status, re-mediate any live site incidents at root cause, and proactively identify any outliers in performance to see why they are experiencing slowdowns.
[Copied image from Microsoft DevOps webpage]
To have system available as 24 x 7x 365 service that leverages the cloud infrastructure,
- To support cloud deployment, the design need to start as cloud-first.
- Design needs to be ready for system to be deployed as on-premises product(with a few exceptions).
- Design and architecture system needs to get continuously tinkered and evolved and Refactoring becomes a regular activity to have more independent, discrete services.
Effectively the connected approach helps to provide more confidence to stakeholders that system is hardened at scale and more evidence on the maturity of the system.