“The specific goals of a DevOps approach include improved deployment frequency, which can lead to faster time to market, lower failure rate of new releases, shortened lead time between fixes, and faster mean time to recovery in the event of a new release crashing or otherwise disabling the current system. Simple processes become increasingly programmable and dynamic, using a DevOps approach, which aims to maximize the predictability, efficiency, security, and maintainability of operational processes. Very often, automation supports this objective.”
The diagram below (from an unknown source) is a great summary of the intent of DevOps. Innovation at the speed of software is supported by an infinite loop of releases and feedback.
When we take the perspective of this infinite loop of change into account with the advent of Software Defined Networking (SDN), this simple diagram also clearly articulates a major threat to OSS in its current state. Current OSS tend to require significant effort on impact analysis and change planning, even on projects that implement minor tweaks. OSS with automations tend to need even deeper analysis to determine whether inadvertent changes are rippling through automatically.
Infinite loops of change to the network will necessitate infinite loops of adaptation by the OSS. Automated testing is just one component, but one that I can only envisage being far more sophisticated than in the current state. For example, if a developer is making changes to one VNF (Virtual Network Function), automated testing will have to also perform regression testing on every type of service that utilises this VNF because the changes could ripple through to other VNFs that comprise each service. The mission-critical nature of these services (or high resiliency for high-uptime SLA services) means that testing precision and rapid roll-back will also be essential.
Wow! We have some hurdles ahead of us don’t we? Bring it on!
What challenges jump out at you from the simple diagram above?
But I’d like to ask you what is missing from the diagram above. There’s one really, really important component that’s missing from the DevOps loop. It’s described in more detail here.