Over a million developers have joined DZone.

There isn't a "Cloud Layer" ... Oh wait, maybe there is?

DZone's Guide to

There isn't a "Cloud Layer" ... Oh wait, maybe there is?

· Cloud Zone ·
Free Resource

Learn how to migrate and modernize stateless applications and run them in a Kubernetes cluster.

We're all familiar with the 9-layer OSI model - 7 layers of technology + Politics and Religions. This is the stack that makes up the Internet. Cloud Computing uses the same underlying technologies, but is often discussed in the context of the IaaS, PaaS and SaaS stacks.

Nowhere in the OSI stack do you see a "cloud layer". As my colleague and noted cloud computing expert James Urquhart likes to say (paraphrased), " There is no cloud layer (in a technology sense), it's all about new operational models."

For a while I accepted that statement without giving it much thought or rebuttal. But some activities over the last couple months have gotten me thinking that maybe this isn't actually true. Let me try and explain.

One could argue that the OSI model (the technical stuff, Layers 1-7) defines all the layers that make up the Internet. But as we all know, the Internet evolved in ways that the DARPA's founding fathers never intended or envisioned back in the 1960s. Things like NATs, or VPNs, or L3-over-L2 technologies, 4-to-6 tunnels, or other overlays like MPLS. Those technologies use the layers of the OSI model, but in reality they add new "layers" to the Internet stack to deal with either legacy designs or new usage models. Sometimes they solved problems and other times they created new problems and added more additional layers (eg. NAT traversal technologies for multi-media)

All of those "additional layers" of the Internet were focused on new ways to route packets, address or hide networks, manage legacy network transitions. Very network-centric issues.

In cloud computing, the more central issues are focused on APIs, mobility of workloads (or VMs), obfuscating layers of complexity, making workloads "dynamic" in scale or availability, and transitioning from legacy architectures to new architectures. Some of these involve new operational models ( DevOps, " built to fail", etc.) as James Urquhart pointed out. But within that context, we're already starting to see some new layers emerge to be able to actually make the technology more useable or provide greater levels of flexibility. Let's take a look at a few examples:

  • Wrapping layers around Cloud APIs - George Reese talks about how the AWS EC2 API is not as standardized as many people believe and it may require additional wrappers to allow multiple clouds to federate with AWS or manage AWS resources.
  • A hypervisor of hypervisors - Start-up Hotlink introduced the concept of a hypervisor abstraction layer to be able to simplify how IT organizations could manage multiple hypervisors.
  • What to look for in a Cloud Gateway - Companies like Cloudswitch have begun introducing gateway products that create a layer of security and obfuscation to help legacy applications interact with public cloud infrastructures.  
It's not yet clear if these are just examples of products/features that are short-lived or if they are the beginning of actual layers being added in order to make cloud computing fully functional for a broader set of use cases. Maybe we're way too early in the lifecycle of cloud computing to make any judgements. And maybe these early "layers" are just band-aids until the next generation of cloud applications are more widely used by a broad range of companies.

Either way, I suspect that history will show us that it's very difficult to build a global system for the masses that doesn't require some additional layers to be added along the way.

Join us in exploring application and infrastructure changes required for running scalable, observable, and portable apps on Kubernetes.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}