Most technology startups founded in the past decade are either building software for the cloud or running their applications in the cloud. It has become so trendy that many venture investors will simply not invest in any “tech” that is not “cloud-based.” With the cloud as popular as ever, it may seem like heresy to say that it is all about to change, but that is exactly what happens with technology and innovation. As soon as you start to get comfortable, everything changes.
I believe the next era of computing will transition the focus to what is known as “edge computing” which, in many ways, is the anti-cloud. Yes, this sounds more like a cycling of fashion trends where we alternate between wide ties and narrow ties for no apparent reason but that is not the case. Specific requirements are driving this need for change.
Here is how to think about it. Today, most applications deliver content to people. Video, music, Alexa, Siri and all manner of applications rely almost exclusively on the cloud for their compute and data storage needs. This centralization (to massive clouds) is very economical for the producer. Network bandwidth is not much of an issue anymore. While there is a slight delay for any cloud interaction, for the most part, that half-second delay is within our tolerance of being “real-time.”
The focus of many next-gen applications, however, is not about interacting with people at all; it focuses on machine-to-machine interaction. Concepts like internet of things (IoT), machine learning and artificial intelligence (AI) all involve the gathering and processing of incredible amounts of data. Most of this sensor data is not generated in the cloud, it is created at the edge. The challenge for engineers fundamentally comes down to dealing with the one “speed” in technology that does not follow Moore’s Law. The speed of light. Simply put, the time it takes for a signal to travel from point A to point B is the exact same as it was 100 years ago and it is unlikely to ever change.
The term we use in computing is latency: the period of time it takes for a certain action to occur. In computing terms, latency is often a more important speed factor than bandwidth (which is a measure of how much data can pass through a given circuit). A simple analogy for latency and bandwidth is an assembly line. Think of latency as the amount of time it takes to build a widget and bandwidth as the total number of individual assembly lines. In this case, if you could half the time it takes to build the widget, you could meet production needs with half the number of lines.