What is Infrastructure Programmability?
The programming of network resources is not just a trend, but also a way to future-proof IT and business needs.
This blog series examines how infrastructure programmability is providing a faster time to competitive advantage and highlights the differences between programmable infrastructure and traditional infrastructure, and what programmability means for your entire IT infrastructure.
To read the second post in this series that discusses benefits of network programmability, click here. To read the third post in this series that discusses how IT leaders can embrace this change, click here.
The proliferation of devices and applications has increased the complexity of traditional IT infrastructure. The complexity arises from manually managing the infrastructure box-by-box that is slow and error-prone. The adoption of cloud computing has compounded the problem with on-premises and off-premises resources. As a result, IT leaders have to allocate critical resources to maintain and troubleshoot these systems. In a recent whitepaper, Zeus Kerravala indicated that 83% of IT budget is used to simply maintain the current operating environment. This leaves precious few resources to invest in business-enabling innovation.
At the same time, business leaders are demanding their IT infrastructure to provide them with a faster time to competitive advantage. Quick time to market is paramount in a world where a new competitive advantage might only last a few months or even weeks. And, as if these challenges are not enough, new cyber-attacks not only threaten innovation but can also threaten the organization itself.
Programmability to the rescue
Infrastructure programmability provides the ability to control and change the functions of IT infrastructure. Let’s take a closer look.
Configuration and Operations
From a configuration and operations perspective, programming the infrastructure is about provisioning by using software rather than box-by-box manual configuration. The existing functions of the infrastructure are configured, changes are made, and existing services are used as part of normal operations. In this case, we have gone from manual command line interactions to automation and orchestration through programmatic interfaces.
IT professionals can now configure and deploy new applications and the underlying IT infrastructure in a few minutes with the click of a mouse instead of the weeks or months it previously took to procure, install, and configure these elements. For example, IT teams might need to allocate a server, spin up a virtual machine, find and install the right image and launch it, connect to the network, determine the firewall policy, put in place the load balancing policy, and define and implement the rules for WAN and wireless access. Having templates that can be created, reviewed and edited across the IT organization can significantly reduce complexity, errors and time to get applications up and running. True competitive advantage can be achieved when the entire management process is automated through these applications or services templates.
Infrastructure-as-a-Service, Platform-as-a-Service, and Software-as-a-Service are enabled through the use of programmable infrastructure where resources can be spun up or down automatically based on user demands.
But wait, there’s more…
When application developers can take advantage of the intelligence of the infrastructure, you can have very interesting new applications and behaviors. The critical point is to expose the infrastructure capabilities to developers who can modify the infrastructure functions without having to know the implementation details. Application Programming Interfaces (APIs) provide the appropriate abstraction for the required infrastructure functions that developers want to change.
For example, a developer is writing a collaboration application. The developer knows the experience and the characteristics the software needs to deliver (“I need a network link that can support HD video stream”). The developer should not need to worry about DHCP, RSVP, QoS, markings, and classifications even though that’s how the requirements end up being instantiated in the actual hardware. The abstraction needs to be able to take these developer requirements and convert them into an actual infrastructure configuration. Programmability is about giving developers the knobs they can understand from their perspective.
The Internet of Everything (IoE) will bring billions of new devices, new security requirements and large amount of data from which insights will need to be extracted in real-time. At Cisco, we believe that to fully capture the value of the Internet of Everything, organizations need to move to an application-aware, intelligent environment where the infrastructure serves what is required in real-time at all times. This complex abstraction of the underlying resources allows the infrastructure to appear as an IT fabric that is simple, smart and secure. It is changing how we look at infrastructure programmability, orchestration and controllers.
- Read the blog An Innovative Infrastructure to Capture the Value of the Internet of Everything by Jim Grubb, Cisco
- Read the blog Programmability and SDN are not the same by Frank Brockners, Cisco