NCS Maturity Model
SDN is a game changer for the industry, but a major challenge is how do organizations move their networks from monolithic vendor proprietary infrastructure to a software abstracted network. NCS (Cisco/Tail-f Network Control System) is a solution from one of our preferred partners that has begun to pave the way. We see NCS as a bridge to SDN. NCS is a vendor agnostic configuration platform that provides a central point for network automation. For more information on NCS, please visit: http://www.tail-f.com/network-control-system.
The benefits of a software abstracted network platform through NCS are immense. Since NCS is a platform, and not just a point solution, it allows for extension of its capabilities. In order to take advantage of the extensibility of NCS it is imperative to have the correct people, with the correct skillsets, in place to operationalize what NCS brings to the table. The below diagram illustrates some areas that we feel should be discussed and staffed, including prerequisites for those functional positions.
Operators are users of the NCS platform, either through the CLI or Web UI. Operators should have knowledge of the fulfillment process and have an understanding of the services they’ll be provisioning. Operators will be capable of provisioning NCS services and modifying configurations through NCS Templates and YANG modules.
In order to be a NCS administrator, one must be familiar with deploying a Linux software package in a server environment. The administrator is responsible for the NCS installation (HA & Clustered), software upgrades, package deployment (including NEDs), NCS configuration, and log file management. These tasks should seem very familiar with common responsibilities of a Linux server administrator. This positions should also understand all functions of the Operator in order to implement NCS in the best possible manner.
Network Engineers are responsible for understanding how to customize the platform for transactional based automation of network services. The NCS Network Engineer is truly a hybrid position between IT and Operations. The Network Engineer is the SME (subject matter expert) for the services that NCS will automate. In many cases the NCS Developers will lean on a Network Engineer to provide input on network configurations as well as validation of the service models developed. The Network Engineer will be responsible for providing configurations into the NCS platform, which can then be used by NCS as XML templates. Creating templates from actual service configurations allow NCS Developers to create service definitions that consume network resources with NCS handling the mapping of input data to native device configurations.
Junior to mid-range developers are tasked with the function of building service interfaces within the platform. A service interface is built in a modeling language called YANG (http://www.yang-central.org). These YANG interfaces define what the service definition looks like which includes data types, grouping, hierarchy, and service validations. The YANG modules can be mapped into a Network Engineer’s XML template. Managing networks from NCS becomes extremely powerful for automation when an API is made available that can be easily consumed. NCS Developer’s have the luxury of consuming standard REST APIs for quick development.
Building a team of mixed IT and Operations individuals will create a resource pool proficient in not only NCS, but also capable of leading the charge in the shift to a programmable network. A fully mature organization that has implemented NCS will have various resources filling all of the above roles, gradually moving up the curve as their skillsets grow.