Just what does 'operationalize' mean anyway?
We keep saying that, does it mean what you think it means?
Operationalization (which is really hard to say, go ahead - try it a few times) is a concept that crosses the lines between trends and technologies. Both SDN and DevOps share the notion of "operationalization" as a means to achieve the goal of aligning IT with business priorities, like that of accelerating time to market for all important applications.
But what does it really mean to operationalize the network, or app deployments, or really, anything?
Operationalization is a lot like DevOps in that it's more of an approach to how you deploy and manage operations than it is some concrete, tangible thing. It is a verb, it's something you do that has concrete, measurable impacts on the application environment, aka the data center, and the processes that move an application from development and into the hands of its intended consumers, whether internal or external.
When we say "operationalize the network", what we mean is to apply a systematic approach to automating network tasks and orchestrating operational processes in a way that meets measurable, defined goals that align with business priorities.
Consider the business priority to deliver projects on time. You know, get projects to market before the competition (to meet the business concern of revenue growth) or roll out internal apps faster (to meet the business concern of productivity improvements). The top CIO priorities are intertwined, and IT is in the business of applications as much as it is about technology.
Automate all the network things
Accelerating the time to market (or time to roll out for internal applications) is an imperative that enables IT to meet several business and IT-related goals simultaneously. But to do that, IT has to operationalize all the things - including the network. Operations (whether network or security or application) has to focus on automating tasks and orchestrating processes to achieve the speed, scale, and stability necessary to roll out new or improved apps faster and, in some cases, more frequently. That means taking advantage of programmability (APIs, app templates and even data path) to integrate and automate the provisioning, configuration and elasticity of applications and the services that deliver them.
Does that mean you have to become a coder? Not necessarily. Much of the automation and orchestration of the network is being made available through ecosystems (like those around VMware, Cisco, OpenDaylight and OpenStack) that enable the integration necessary to occur through plug-ins, policies or templates rather requiring network engineers to become developers. No doubt some organizations will choose a more hands-on approach, in which case the answer becomes yes, yes you will have to become familiar with scripting tools and languages and APIs to enable the automation and, ultimately, orchestration required to achieve alignment with business and operational goals.
Measure all the deployment things
Automation and orchestration alone aren't enough, though, to operationalize the network. Measures must be put into place that span the entire application deployment process. Those measures should align with other operations groups and align better with the business, measures that are typically associated with DevOps but are directly relatable to the network, too:
- Deploy frequency
- Volume of defects
- Number & Frequency of outages
- Number & Frequency of performance issues
- Time/cost per release (deployment)
Automation certainly impacts some of these measures, but not all. Process optimization is a critical component of DevOps and operationalization as well that impacts many measures but is people and analysis driven.
Optimize all the process things
Optimization requires understanding the processes that have likely ossified over time and re-evaluating each and every step to improve not just the speed but the efficiency, too (no, they aren't the same, Virginia). Optimization of processes is about measuring and mapping processes to find the bottlenecks and idle time that causes the entire app deployment train to slow to a crawl.
The reality is that orchestrating poor processes just lets you fail faster and more often. So identifying those processes (that include handoffs between silos) causing bottlenecks in the deployment process (or where errors seem to constantly be introduced) is a critical component of successfully operationalizing the network (and other operations, for that matter). Giving the app infrastructure operations group an "easy" button to deploy the appropriate network services isn't going to improve the process if that process is itself broken, after all.
The measures let you ascertain whether changes in the process are going to help or not. Modeling and math can do wonders to help determine where changes must be made to improve the overall results, but both require measurement first - and consistent measurement across groups and the deployment lifecycle.
Share all the app things
All of which requires collaboration. You can automate individual tasks and gain some improvements, yes, but you can't orchestrate a provisioning and configuration process related to a given application or type of application unless you first understand what that application needs. And to do that you've got to talk to the people who develop it and deploy its infrastructure. You have to understand its architecture - is it three-tier? Two-tier? Microservice? Does it present APIs and take advantage of an app proxy or are the integrations and interactions all internal? How is success for this app measured? Productivity improvement? Revenue growth? User adoption?
The answers to these questions are imperative to understanding just what network services need to be deployed, and how. It isn't enough to just give the app an IP address and put it on a VLAN. You've got to deliver value out of the network and that means providing services that will help that application meet its business goals, whatever they might be.
Whether you're approaching operationalization of the network from the perspective of implementing a SDN architecture or by applying the principles associated with DevOps you're essentially going to have to embrace and adopt the same basic tenets: automation, sharing and common measurements that result in a cultural change across all of IT's operational groups.
To succeed in an application world you're going to have to operationalize all the things.
And that includes the network.
More in a presentation dedicated to this topic: Operationalize all the Network Things!