Let’s begin with a definition of DevOps coming from ITIL background.
“DevOps is just ITIL with 90% of stuff moved to ‘Standard Change’ because we automated the crap out of it” – TheOpsMgr
A more modern Definition and Scope of DevOps is covered in the CAMS model. However, DevOps has much wider scope than that. But, it is a good start for beginners.
Returning back to what is defined as a Standard Change:
“Standard Changes are pre-approved changes that are considered relatively low risk, are performed frequently, and follow a documented (and Change Management approved) process.Think standard, as in, ‘done according to the approved, standard processes.”
Let’s consolidate all of above and dive into our discussion of how DevOps is transforming your Digital Supply Chain and Production Line.
DevOps is changing the role of IT Operations, wherein they start to focus more on Digital Supply Chain and Release Pipeline rather than trying to inspect every single package in the pipeline. In this way Devops Engineers also become the Process Engineers, who design the pipeline in such a way that the desired outcome of the pipeline meets the objective, quality, risk, compliance and is consistent with the “Standard Change”.
The move towards converting your IT Operations into Automated Workflows and Infra-As-Code ensures that you are not skipping any essential component of your “desired system”.
Now, if we break the previously said definition of “Standard Change” into three main parts and correlate it to the DevOps world, we would get:
- Relatively Low Risk – DevOps reduces the risks via automation, test-driven development (of application AND infrastructure code), rapid detection of issues via enhanced monitoring and robust rollback.
- Increasing Task Frequency – this is a key tenet of DevOps. If it’s painful and you do it more often, learn to do it better (via automation/workflows)
- Follow a documented Process– DevOps is about building a robust digital supply chain. This is your highly automated, end-to-end process for software development, testing, deployment and support and as part of that we are building in the necessary checks and balances required for compliance to change management processes. Instead of heaps of documents lying somewhere, convert your digital supply chain into automated workflows and infrastructure design to code.
A DevOps Digital Supply Chain will transform raw materials (source code) via continuous integration, test automation, packaging, release automation, infrastructure-as-code etc. into applications running in cloud-hosted environments.
So, just like a Physical Production line includes statistical sampling, automated testing etc., so will the Digital Supply Chain of the future. We already do this with TDD/BDD, automated testing with tools like Selenium etc. but it will become the DevOps job is to ensure that the digital production line delivers release packages of sufficient quality to ensure the stability of the application.
So, will the Operations Engineer of the future be “just managing (virtual) servers”?
No, certainly not.
What they will be doing is:
- Designing and building complex digital supply chains with complex interdependencies, both internal and external to the organization, digital supply chains designed to meet the needs of applications that are designed to meet the needs of their customers, safely, securely and cost-effectively.
- Designing, the approved process that says that all changes must pass automated testing in which they might periodically pick any one instance/ release in any of the environments and review it using the automation scripts (Chef/Puppet/Ansible, etc.) and ensure that a flag or template hadn’t been replaced or was outdated because no-one bothered to keep it up do date.
- Similarly, designing the process that mandates “separation of duties” so that they could check and see the person who initiated the change (via the pipeline, using Jenkins or Rundeck), has the appropriate roles and is approved to do so.
The overall goal here is to move towards a Culture but keeping in mind the mantra of “Trust, but Verify” in order to ensure that the appropriate checks are applied and your systems are consistent and in balanced state.
By: Manik Dham