We tend to talk about the Cloud in terms of extreme certainty. Using almost religious tones. As in “We are all moving to the Cloud, by way of Jerusalem.” We assume that all software will be Cloud-based, and that all our devices, even our whole lives, will be run by some Supreme (Artificial) Intelligence who lives in the Clouds. Suggest to anyone that this is not the case and they won’t burn you at the stake (probably), but the look they give will definitely scream heretic.
Sadly for the faithful, the truth is less axiomatic. Computing has moved back and forth over time. Sometimes centralization makes sense, other times distributed systems reign. Anyone who has been in Tech for more than ten years knows this. Not so long ago distributed systems were the Promised Land towards which we were all progressing, out of the Valley of Centralization, mainframes and minicomputers.
This is not a pre-ordained, one-way pilgrimage. It is a pendulum that swings back and forth over time.
It gets worse for the true believers. Not only are there no religious certainties involved, the true, universal motive force in computing is just economics. No trace of the Divine, just filthy lucre.
When bandwidth is expensive and compute is cheap, then distributed client/server models makes sense. This is what happened in the 80’s. There was limited (or no) bandwidth, but the advent of personal computing made computers relatively cheap. Over the past decade, the cost of bandwidth has fallen dramatically (at least on the basis of dollars per bit). This began with the Internet boom in the late 90’s and has lead us to the giant Cloud Service Providers we see across the landscape today.
There is one more component to the equation of Cloud Economics – all the people. Public Cloud Computing is winning today because advanced, secure systems need some talented people to design and manage them. Any company can go out and build a data center, but Amazon or Google still win because it is expensive to keep those systems at the leading edge of technology (and secure).
Over the last ten years the cost of compute has fallen so low that the scarcest commodity in the computer stack is the IT Architect who builds data centers and the admins who have to come in and monitor all the racks. For now, it is much cheaper to have a few of these people centralized in a company’s data center than distributed around the company’s many offices. This reality heavily favors the big cloud providers.
So why do conditions seem so certain about the Cloud now? Maybe things are different this time? I think there are several signs that we will ‘soon’ start to head back towards distributed systems.
If you listen closely and look hard you will start to see signs that the pendulum is shifting. The best way to think about this is autonomous cars or drone swarms. These systems require some very intensive computing. But that computing has to be done locally. Driverless cars will need to make decisions at the fender, waiting for round trips to the cloud and back will not be fast enough to react to driving conditions. Or imagine a swarm of fighter drones operating in a combat theater with limited bandwidth. There are just too many decisions that are so time-sensitive that adding a second or two to decision cycles to ask the Cloud renders the device useless. We can think of this as the cost of bandwidth as measured in ‘latency’ or delay. For many systems, the speed of light will become the upper bound of latency beyond which distributed decision-making has to be the rule.
Second, if the IT admin is the tent pole keeping things expensive for the distributed side that means the next big change to gain traction will be the company that makes it easy to manage the equivalent of a complete cloud system locally. I think there are signs of this in telco networks. The next-big-thing for carriers is NFV (Network Function Virtualization), and while this is ostensibly a set of tools for making carrier networks more cloud-like, the end result will be to enable a vast expansion of devices at the edge of networks like metro-ring local data centers and all the access points coming with 5G wireless. This may not be a true client/server model, but it will mark a big shift back towards distributed systems. There is a real opportunity for other companies to ease and automate this process.
Not for nothing this is what Apple and Microsoft did in the 80’s when they ushered in the era of the PC. Prior to these, computing was something only handled by a central team of experts? Sound familiar? As mentioned, this stuff repeats.
I want to be clear, I am not some Cloud denier. The benefits of public cloud computing resources are immense. Those centers are here to stay, just as we still use mainframes in some situations. And there are still many, many companies that are going to abandon their data centers entirely and leave it to other companies who have ‘Data Center’ as a core competency.
Let me give an example to make this more tangible. Imagine a small, chain hotel that has very simple computer needs. Maybe one PC for check-in, another in the back office to handle accounting. These are connected to the corporate finance and reservation systems (aka some kind of cloud). The hotel also has some Wi-Fi access for guests, maybe a video surveillance system, and a business center PC or two. Decidedly low-tech, and fairly typical of most small businesses or local offices. This hotel probably has a wiring cabinet with a single rack of of IT gear, and no one on premise has any idea how to do anything with that rack. If the business’s IT systems need a fix, they call someone from corporate. If guests have a Wi-Fi problem, they are connected with a call center somewhere else that handles all support issues for the entire national chain. The biggest operating cost for this hotel’s IT system is almost certainly the IT contract to have a human being to fix things when they break. (Bandwidth is also a likely contender.)
The owner of this business would probably like to do more things with their IT system. Better scheduling of guests and employees, links to social media, automating vending machines. Today, all of these things are beyond their reach. They get what they can from corporate, and leave the rest alone. Someday, someone will create a system that puts a lot more software tools in the hands of the hotel managers. That system will be partly run in the cloud, but will have to interface with the local physical systems (doors, vending machines, etc.) And that system will have to be able to work with very limited human intervention, even at the early configuration stage. The next big shift in computing will come when these kinds of easy-to-stand-up systems emerge.
I recognize that this is not as exciting as a mass movement to the Cloud, but I see this trend as highly reassuring. It means that there are still great Mysteries to be solved, with new (Strategic) Revelations and Miracles (of Technology) awaiting us.