Different shades of invisible
Different shades of invisible
Join the DZone community and get the full member experience.Join For Free
Learn how to stop testing everything every sprint and only test the code you’ve changed. Brought to you by Parasoft.
We love analogies. No matter what the topic, analogies are a great way to explain something in a different context to make a specific point with a frame of reference that may be more familiar to those we are making a point to. There is one that seems to come back over and over again in our industry, the one that compares the network to the power grid, network connections to power plugs. I had not heard it for a while but at Interop last week, I heard it used twice in booth demonstrations as part of plug and play pitches. And I really do not like that analogy.
The comparison to power comes from the angle of it just being there and available. Plug something in and it turns on. Its universal and it’s simple, anyone can use it. It’s highly standardized, you can buy bits and pieces that work together in any hardware store. It’s reliable. You just get a bill each month, pay it, and in many places you can even pick your provider different from the owner of the cable that actually plugs into your house. It’s all good, it’s mostly invisible.
Except that all of these come with their own challenges. The overall power grid reliability is well below 99.99%. Across the US, the average outage minutes per year is hovering in the 2 hour range, in the Northeast almost double that. There are only very people I know that do not have a backup generator, just in case, and get to use it at least once a year, ignoring the smaller outages where we just live in the dark for a few minutes. It is very standardized, with plenty of standard variations from country to country, thank goodness for $30 converters. And the cost, well, it’s rising faster than inflation (almost twice as fast in fact).
Now, this article is not meant to be a complaining session about power. When power works and you forget about the bill, it is very much invisible, which is the only piece of the analogy I do like, maybe.
Networks should be invisible, but not in the same sense power should be invisible. When comparing networks to power it always comes down to “it’s just there, plentiful, accessible, and just works”. And (not surprising), I think the network can do much better than “just be there”. Networks need to migrate away from an entity that is architected, designed, implemented, managed and debugged separately from the applications it serves. Networks have to become an integral part of the application infrastructure.
Now, any two (or more) distinctly different entities need to be glued together. No different for applications, servers and networks. Applications are glued to servers by means of the OS. As a consumer of an application, or even an administrator, the amount of work you have to do to put these two together is (usually) fairy minimal. The creator of the OS has provided tons of hooks and tools to give the application what it needs, the application provides to and asks what it wants from the OS.
The glue between the server and the network is much harsher, much less refined. There is an expectation of matching configuration, very little is actually transacted between the two to get them to work together nicely. Yes there is DHCP and perhaps you can even count LLDP in that, but the amount of alignment of information between the two so they can work together seamlessly without human intervention is minimal. And if something is not quite working the way it should, you need heavily certified network engineers and tons of homegrown tools and scripts to figure out why. That is by no means a knock on network certifications (that is for @cloudtoad to comment on), but it should not be that hard. The exchange is extremely focused on data plane traffic for transportation, very little provisioning, debug and other feedback is exchanged and reacted to.
We need to get to a network that is invisible enough to allow you to create coarse provisioning policies created from application templates. There should be no need for me to configure individual ports and protocols on ports. There should be no need for me to configure how network components are tied together and provide optimized connectivity based on the needs of its customers. The network needs to provide debugging tools that interact with applications in feedback loops. It needs to provide enough details for orchestration systems to adjust their placement of apps. Or in Plexxi’s case, take in information from orchestration systems to change the L1, L2 and L3 behavior of the network to the requested demand. And that orchestration system could be a specialized Hadoop controller or a far more generic cloud orchestrator.
The network needs to cease to exist as a separate entity, it needs to become an integrated part of the application infrastructure that uses its services. That’s the kind of invisible we need to achieve.
Published at DZone with permission of Mike Bushong , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.