It’s amazing how many applications behave as if the network is always available, bandwidth is infinite and latency is zero. While optimistic, this approach to applications is ultimately rooted in fantasy. As it stands, there is a major proficiency gap between application developers and the networks in which they operate—but this can’t continue as our world becomes increasingly multicloud. It’s time for developers to understand the inner workings of the network to close the chasm between applications and the network.
Ships in the Night to Star-crossed Lovers
For the most part, applications and the infrastructure on which they operate have little to no interaction. If you’re not sure about this assertion, try asking any network operator what applications are running on the network. It’s possible they can tell you about key mission-critical applications, largely because at some point the person has had to troubleshoot an application issue. But beyond the top few applications, it’s likely that they are considered largely nameless bits and bytes that fill up wires.
Similarly, if you ask an application developer to explain anything about the network, you are likely to get blank stares. Yes, developers are aware that the network provides connectivity to critical applications resources, but it is atypical for them to know much beyond that. The acronyms that make up a network engineer’s livelihood are largely just jumbled letters—a bit of a nod to the dark arts required to actually make networks work.
This missed opportunity has the potential to be the perfect match. There have been various efforts over the years to bridge the gap between these worlds with movements such as application-aware networking and the somewhat lesser-known network-aware applications. The central thesis of these approaches is: The more these two co-dependent but largely separate organisms know about each other, the more they can adapt and adjust to deliver a superior end user experience. To achieve peak usability, each side must know something about how the other operates.
App Developers, Meet the Network
While technology is making networking more interesting than it has been in years, excitement about the network is largely contained to those directly involved in designing, deploying and maintaining it. This is no fault of anyone, though, because the main appeal of the network is that it remains essentially invisible to the user. The network is a success when you don’t know it’s there.
Consider the network as a power grid. When you turn on a light switch, you’re not concerned with how power is generated and distributed—you only care that it can light up the room, and you are concerned when it won’t. The physical infrastructure that makes this all possible is largely hidden to users and visible only when something goes wrong. Just as physical infrastructure is invisible, the network should be, too.
That said, it is important for application developers to “see” the network and not let it fade into the background that same way that users do. Awareness of the network and its functions is critical when developing applications that will run on this system, as simply invoking an application should also include the requisite infrastructure.
Broader Network Shifts are Required
Of course, no change happens in a vacuum. Application development must be considered alongside the broader industry move toward distributed workloads and the proliferation of multicloud, as it is increasingly likely that applications will be hosted in different environments.
Application developers need to not just understand the network, but also the different contexts in which that network exists. For the infrastructure to be invisible, this means those different environments—on-premises, in public cloud A or in public cloud B—must deliver the same experience, inclusive of both policy and security. This creates a bit of a challenge if the future is to be a tight mesh of interwoven applications and infrastructure. For a group that today assumes 100 percent availability and infinite bandwidth, this would be a pretty massive shift in thinking, and a correspondingly massive additional burden to bear.
Abstraction is the Answer
In the same way that containers serve as an abstraction above the compute environment, there must be a level of abstraction that sits above the cloud environment. This is really what underpins the multicloud movement.
Application developers must ensure that application requirements are agnostic to the underlying infrastructure to ensure the system remains invisible to the user. Likewise, multicloud management must create an abstracted platform capable of translating application intent into device behavior regardless of where that device resides, whether it is physical or virtual, or even whether it is from vendor X or vendor Y.
Taking on the Future of Multicloud
Much too often trends in IT favor silos. As we make the shift toward multicloud, networking will be brought into focus like never before, requiring a different way of thinking about cross-domain management. What is required from application developers and network operators alike is communication and collaboration.
Having a baseline understanding of how the distributed network functions will allow application developers to create products that will ultimately run better. Developers should also be transparent about what they are expecting from the network and what they need. This is the only way to get us closer to where we want to be: operating on a network that is omnipresent and wholly capable of anything we can throw at it.