What exactly is "Network as a Service"? Once you have your own understanding of that you can start the journey. I'll give my understanding below as well as the one from Wikipedia. As you start the journey towards network automation and Network as a Service there is a decision that should be made. That is do you take a DevOps person and integrate them into Network or do you take a network person and integrate them in DevOps? There are Pro's and Con's to each and I think every situation may be different but in the end I believe whatever the decision, network will still need to find a way to adopt DevOps principles.
What is Network as a Service (NaaS)
What exactly is "Network as a Service"? According to Wikipedia it is defined as: " ... services for network transport connectivity. NaaS involves the optimization of resource allocations by considering network and computing resources as a unified whole"
Do we really need NaaS? I think we do and the reason is that the network is being asked to deliver more, deliver faster with less problems and deliver at reduced cost. I don't think we need to look any deeper than the current COVID crisis to see this is the reality.
Networking is complex. Networking contains many knobs and levers.
Networking can be error prone, take a long time to master and when it fails it can fail catastrophically. I feel that adoption of DevOps principles and processes address this and more.
Why is DevOps even part of the discussion for Network as a Service? Modern network architectures that endeavor to provide a more “self-service” model require not only system automation, but workflow automation (orchestration). Orchestration ultimately requires integration, because workflows involve provisioning and configuration of multiple systems
I think the following from Gartner NetOps 2.0 hits it right on the head: “Network teams are being asked to deliver more capabilities, at an increased pace, with fewer errors. Infrastructure and operations leaders must transform network operations by investing in analytics and automation, while improving integration with DevOps and security to support digital business.”
DevOps is about more than just developers, it's about enabling automation with repeatable processes so that many automation points to work together. Being able to do more, do it faster and at less cost in an optimized way is needed more than ever.
By integrating DevOps principles and processes into the Network world we are introducing a proven way to have automated central repositories, version control, documentation and continuous improvement to name a few. All things that Network currently struggles with today. The six core DevOps principles from DASA are:
- Customer-Centric Action
- Create with the end in mind
- End-to-End Responsibility
- Cross-Functional Autonomous Teams
- Continuous Improvement
- Automate Everything you can
Adopting DevOps principles and processes in Network will come with some challenges. Some key challenges I've noted below:
- Network engineers are traditionally not code writers. We connect to a device, make the required change, save it (maybe ;-) ) and then move on.
- Traditionally we only think about layers 1-4 in the OSI model
- It's change!!
Change I think is the biggest hurdle to overcome with integrating DevOps principles into Network. I can't remember how many times I heard the phrase "..but this is how we've always done it, why should we change?". Managing this behavior will be critical to the successful adoption of these principles.
The second biggest hurdle will be to change the behavior in thinking above layers 1-4 in the OSI model. (Do you see a pattern developing yet?). It's easy to say "I can ping the device(s) so it's not a network problem". We need to become more full stack aware and support/own the service from end to end AND through its lifecycle.
The advantages of adopting DevOps principles may not be clear so let me identify a couple here.
Consistency : Configurations can/will start being more consistent.
- Standardization : Configurations will become more standardized.
- Documentation : The 'code' becomes the documentation. We know that documentation is the last thing to be updated (if at all).
- Quicker delivery and recovery of network services
By adopting these principles, network begins to shift to a service model, maybe even a user self-service model. Once we have made that shift then we can deliver with the agility and speed that the business requires.