By Amar Kalsi, DevOps Architect, with Gavin Jackson, Technical Author
With the advent of Cloud development, the DevOps model in organizations that maintain an arbitrary split between Dev and Ops roles/processes is proving inadequate to cope with the demands of the new future. Cloud development demands ever faster speeds from development to delivery and so this model is facing increasing pressure to evolve.
Development has traditionally been focused on functionality, with integration in a real world environment often being an afterthought. Development in the Cloud demands that we build products that solve real-life problems.
We are approaching a paradigm shift away from pipeline development within DevOps towards Site Reliability Engineering.
The DevOps Model
The concept of DevOps began to change the focus of software development. It was the first attempt to unify software development (Dev) and IT operations (Ops). But there still exists the dichotomy between what is ‘Dev’ and what is ‘Ops’; functionality on the one hand versus integrating with existing systems on the other.
Agile, with its continuous development, automatic build, and delivery has worked well at product level, but tends to ignore problems encountered at solution level.
Development strives for as much automation as possible to get to production as quickly possible. Within testing, there tends to be a lot of manual input and only some automation. On the operations side, there is an element of automation in the form of Runbook automations, but they can never provide the full solution. When in production, a complex integration can throw up issues that have not been seen in development, and these are issues that need to be resolved on site.
When systems become too large to install easily or to integrate smoothly, customers tend to wait years between upgrades to avoid the pain that those upgrades incur. This in turn can provide headaches for Support.
Site Reliability Engineering
With the Site Reliability Engineering model, the focus changes again. Cloud development demands that issues are solved as quickly as possible at site level – there’s no time to wait for resolutions to be found back in development, and so an element of development must be carried out on site. This provides an incremental improvement on a working DevOps model.
Rapid Cloud development demands a solution-focused approach rather than a function-focused approach. This requires a change in coding culture. Tooling (for example, via Jenkins) can help to a certain degree. But working on coding solutions at a Site Engineering level is essential.
Skilled developers going on site to resolve problems as they occur ultimately make complex systems more reliable. These solutions can then in turn be fed back to testing and development. This approach helps us to see and resolve problems earlier.
These ideas are discussed in further detail in the following upcoming webinar: Beyond Build Pipelines – Continuous Delivery’s Messy Reality
In this Webinar, Al Wagner (Technical Evangelist, IBM) and Chris Nowak (Chief Transformation Officer, Kingsmen Software) look at how we can architect systems to work with simple build pipelines and how we can setup continuous delivery systems that work in the more complex, even messy, environments we have today.
The Beyond Build Pipelines Webinar will be available from March 13, 2018; you can register for it now.