Today’s resource intensive applications are making the network traffic grow exponentially putting high demands on the existing network for moving various types of data such as video, audio, M2M, etc. As a result, companies are finding it challenging to differentiate the critical applications from non-critical ones and to dynamically allocate the network resources to higher priority applications. The limited network resources and the ever changing application demands are putting a lot of pressure on companies to make the network respond to application needs more effectively thereby to achieve improved business agility and decreased opex.
The network programmability is the key to unleashing the network’s power in new ways for a faster, more flexible, and intelligent infrastructure that makes the network application-aware. Through programmability, customers are offered direct access to the network devices, which can then be programmed for better alignment of the network behavior to their own unique application and business needs. Network programmability is a broader category that includes SDN, or Software-Defined Networking. To clarify, SDN is a network architecture that decouples the control plane (that is, the building of a routing table) from the data plane, moving the control plane to a software-based centralized controller. The real value of SDN is in enabling network programmability. The programmability helps in harvesting information from various network devices, and automatically pushing out new configurations in response to dynamic network conditions, thereby, automating the management of the complex network. Put simply, open networking allows users (application developers, researchers, and operations staff) to access the intelligence of the network so that it can be easily and quickly adapted to on-demand needs of different applications and traffic types in a centralized, open manner. The staff uses and even creates their own customized management applications that allow them to control the network based on the needs of business applications such as Oracle, SAP, and others.
APIs to the network devices are provided in the form of a software development kit (SDK), which opens or exposes network infrastructure functionality to developers. This deployment model is best suited for customers who want to use their existing infrastructure and wish to program and manage it with their own or third-party management applications. They can build applications to tap into the feature set, tables, and other information contained in the device, such as the management, control policies, traffic flow information, and much more. Through API, users can get the information within the network devices, such as statistics, counters, configuration and topology “state” and then modify the behavior of the network based on application or business requirements such as time of day, dollar cost & service levels. In addition, users can create new services on demand, automate tasks, manipulate forwarding topology, modify security policies and more. In short, the exposed APIs are used to customize, automate, or extend the functionality of the switches and routers resulting in extremely rich interactions with the network. The APIs are a set of Lego blocks that programmers can use to perform functions such as changing routes in the network, making policy decisions about who has access to what information, enforcing security or QoS rules, and interacting directly with packets flowing through the network. The automation helps in quickly spinning up current or new services on demand, when and where the applications need them. Moreover, the developers can do so with the tools they already use such as Eclipse, NetBeans and the programmable languages they love such Java, REST, etc. DevOps can run the applications right in the network without ever changing the networking architecture.
Here are some of the more interesting applications that have been created by API users:
- Video Quality Monitoring: IT departments everywhere are rolling out video, which takes a lot of different forms when it hits the network – Skype video, 3-screen Telepresence, multicast of the board meeting, YouTube videos to name a few. The monitoring application uses the deep packet inspection capabilities within the router to determine the type and quality of the video to eventually optimize the end user experience. IT staff can assess the video quality for the remote user without placing any specialized equipment in the end user location.
- Custom Security Protocol: Using APIs, an application can request a packet stream matching a set of custom criteria and can do whatever secret packet manipulation, such as custom encryption algorithms, needs to do before sending the packet stream back into the network.
- Application Performance Monitoring: With the application recognition and reporting capabilities in networking devices, it is now possible to discover myriad of details regarding the performance characteristics of the thousands of different applications traveling across the network. IT can set business or security rules to automatically determine performance requirements and quarantine unknown applications.
- Dynamic QoS: One of the difficult problems in the broadband aggregation world is matching the upstream and downstream QoS on both ends of a DSL or with the other broadband connections. The Dynamic QoS application takes the guesswork out of the configuration detecting the upstream and downstream bandwidth at the hub and spoke. It then automatically configures the correct QoS profile at each end of the connection freeing up time for the highly skilled technicians.
- Business Based Routing: Dynamically changes the route packets through the network based on real-time business information such as operating costs, latency requirements, operating hours, etc. The custom criteria are used in addition to the traditional highest bandwidth or least congested paths to identify the most cost-effective route through the network.
With network device programmability, developers can not only interact directly with the hardware but also use agents to work with the other protocols such as OpenFlow. The framework enables flexibility and future-proofing while still maintaining a common underlying infrastructure for consistency and coherency. As a result, customers are not locked into a single approach, instead, they can concurrently use native API access, protocol-based access, or traditional access (aka run in hybrid mode) as their needs dictate.
In summary, an extensible programmatic support with the ability to use API natively or to work with technologies and protocols as they are developed and released gives customers a remarkable level of flexibility, extensibility and risk mitigation.