I’m a first time traveler to another country. I’m aware of multiple languages, but I don’t know how to speak any other than English. It’s one of those things that I’ve always wanted to learn, but just never got around to. So, I’m aboard an aircraft to Germany, and the first conversation I had on the plane was with a flight attendant. It went a little something like this:
Her: Ist das Ihre rote Tasche dort?
Me: … <wishing I knew what she was saying>
Her: Is that your red bag over there?
It started out weak and embarrassing, I didn’t know what she was saying. There was a very brief moment, just a second or two, where my brain was attempting with futility to decipher the foreign tongue, returning a meandering blank stare, followed by the simple one-worded question: “English?”. The flight attendant immediately responded in my native language, and I clearly understood her. I responded confidently with a German “nein”. She smiled.
In this moment I realized something unusual. I’m an old router, living in a network evolved by DevOps. Here I am with my familiar old ways, speaking my simple language, comprehending only what is programmed in my feature-set. Yet, I’m flying in this multitenant aircraft, as a fully-supported object in this orchestrated solution. It’s been abstracted from me, I’m an oblivious application. Funny thing is, even the flight attendant is unaware of her role, arbiter between nodes and services.
This is one of the many goals of a future network – dynamically interactive communication and control of any node, regardless of language. Unfettered automation. You have an API? Great! I’ll speak to you that way. Running an older OS that requires interactive shell? No problem, got you covered. And don’t worry about telling me which language you need, I can determine that by your response to my initial query.
Not sure if you caught it, but my final response to the flight attendant was in German, the language I do not speak. As dumb node in a network, how could that be? Maybe I know a few basic words (this would be true). On the opposite end of the spectrum, maybe this initial bi-directional communication resulted in a “learning” of another language. This isn’t Zion, and I do not have a Matrix neck plug, so obviously I didn’t instantly learn a language. These are the challenges that platforms like OpenStack and OpenDaylight are tackling, operationally uniting modern and legacy networks. Cisco’s Tail-F using NETCONF and YANG are achieving the same goals with astonishing success.
Fluidity at this level is the hopeful future for network automation and programmability. It already exists in essence in various solutions from some of the top networking vendors. This is merely a modicum of essence, though. Most companies build integrations within their own product families, but it’s almost never all-encompassing. I don’t know how many time I complained to Cisco regarding the plethora of operating systems they release (IOS, IOS-XE, IOS-XR, NX-OS, ASA, AireOS, and so on).
We still have these challenges, programming the network which consists of multiple vendors or multiple product lines. The utopian view of standardized interoperability is philosophically beautiful, but too intimidating for many companies, even large ones like Cisco, for fear of intellectual property bleed or unjust abandonment of pseudo-standards towards some other newer, better method. The issue of trust and lack of common grounds unintentionally permeates and all-too-often constricts partnership in the networking industry. But that seems to be changing.
Grumpy old router
Cisco networks built using the latest platforms like ACI, Nexus 9K/3K, ISR 4K, and so on, are designed from the ground-up to be completely modular, wildly extensible, and highly programmable. This is great, but remember – I’m an old router. Because of this I’m smug when I talk to Cisco engineers at conferences like CLEUR or Tech Field Day, asking about their support and roadmaps for fully programmable everything. I ask about: the firewalls, the routers, the switches, the campus, the branch. Sure, you have all these amazing capabilities in new Data Center architectures, but what about my enterprise and campus?!
Personally, I think it’s a humanoid protection mechanism – the engineer comfortable with everything he or she knows, pointing out insignificant caveats to justify their purpose in a disrupted industry. It’s as if we assume that companies like Cisco never took these things into consideration. We all know what they say about assumptions.
As product lines become less and less interstitial, and business units tighten inside Cisco, I can see the near future where enterprise and campus networks are included as a part of this automated, programmable and well-oiled machine. Solution like APIC-EM promise extensibility into the Enterprise, with whispers of support for non-Cisco systems. Cisco Engineers briefly demonstrated solutions like ACI with UCS Director, promising an ecosystem in the Data Center including support for numerous third-party vendors. Your network will be cohesive, common and holistic, regardless of realm.
Cisco is working hard to build consistent capabilities into their massive product lines. They’re looking far ahead. Good thing is, they’re looking far behind as well, helping to ensure an industry transformation that is achievable and accepted. Vendor walls and product barriers will wither with attrition as Cisco makes strides towards open networking. This will serve quite useful. Think of legacy systems functioning in harmony with modern systems. Think of interoperability between vendors. Think of services migrating to public clouds, with networks remaining seamless.
This takes us home to the international flight analogy. People of different backgrounds, styles, languages, and customs, all together, traversing each others domains with ease. I may be dreaming in a sea of kool-aid, but I’m anchored in an evolved reality where probability is king.