Once upon a time and also in the present, there lived/live two groups of people, developers and operators .
Developers built and ship software/features. They focused on building and shipping new features as quickly as possible. Agility was the 'magic' word.
Operators ran and oversaw the production systems. They focussed on having a stable, reliable and safe system . The main concern of the operators was Stability .
The competing/conflicting interests of Developers and Operators caused friction and thus there was an element of impedance towards the goal of achieving speedy delivery of features whilst not compromising on the stability, reliability and safety of the system.
In order to achieve the goal, some organizations started adopting/following certain practices that tried to address this concern and collectively they were termed as DevOps
DevOps, can be considered an organizational and cultural movement that aims to increase software delivery velocity, improve service reliability, and build shared ownership among software stakeholders.
DevOps can be considered as consisting of 5 Principles or key areas of focus.
1) Reduce Organizational Silos
This can be achieved by having the operators in the same room(physical or virtual) as the developers, facilitating conversation and collaboration in the daily stand-ups. The next step would be to involve the product and the sales team too.
2) Accept Failure as Normal
Foster a culture wherein we accept that failure is normal and we actively plan for it.
3) Implement Gradual Change
Adhere to methodologies that espouse small changes at regular intervals. Its easier to detect issues in small changes and either fix them or rollback.
4) Leveraging Tooling and Automation.
Tools such as Terraform which codify infrastructure and bring repeatability into the forefront allow automation.
5) Measure Everything
Unless we measure, its difficult to reach consensus if we have reached our goals and achieved success . Hence to achieve business objectives its important to measure and identify the appropriate metrics. Measure, Monitor and setup Alerts
DevOps is a bunch of abstract concepts. It says this is what we could do in order to achieve such and such a thing . But it is silent about the ways of going about achieving it.
In the next post I would be talking about SRE which can be considered as a concrete implementation of DevOps principles
Top comments (0)