Before there was Edge Computing, there was Fog Computing. First introduced by Cisco, the two concepts are confusingly similar. Both seek to extend the "cloud" to the network edge as a means to enable real-time processing.
The need to "push" real-time processing to the edge of the network became necessary when the Internet of Things (IoTs) exploded. There's the reality of connected cars, which most of us drive every day, and the increasing use of the ‘smartness' of our vehicles for more than maintenance and navigation. Insurers increasingly rely on car-collected data as quantitative proof of good driving habits that lead to better rates for careful drivers. Initiatives such as Vehicle-to-Vehicle (V2V) and Vehicle-to-Infrastructure (V2I) hope to take advantage of cameras, sensors, and vehicle communication capabilities to help mitigate accidents.
There are plenty of other use cases across manufacturing and medical industries that require the ability to process data quickly. Far more quickly than can be achieved by sending large quantities of data to the cloud or a central data center and back again. For these use cases, edge or fog computing is purported to be the answer. Physically closer processing points can churn through data in real-time and provide valuable insights on-demand for those industries and uses which cannot tolerate latency.
And while both Fog and Edge computing nominally represent the same models, there's an increasing tendency for IoT use cases to gravitate to Fog while enterprise use cases involving applications tend to migrate toward the Edge.
Let us pause to give those now experiencing apoplectic fits over this distinction a moment to recover.
From a perspective of vastly different requirements between IoT and consumer-facing applications, this is a good distinction to make and will ultimately serve both markets better. A focus on IoT by Fog providers will necessarily result in a model and environment that is optimized for execution speed. On the other hand, a focus on apps for Edge providers will result in a more robust environment for distributing and operating the application capital upon which businesses rely today.
Let us also consider the impact of regulatory compliance on these two use cases. On the one hand, you may be using Fog to process medical data - images - in real-time to scan for, well, whatever anomaly is being scanned for. That information is private and heavily governed by a variety of regulations. Thus, any environment supportive of processing this type of data would necessarily need to ensure it, also, complied with regulations.
Now, there are certainly many regulations regarding the privacy of data on the consumer-facing side of applications, but few carry the same regulatory burden as medical or financial data. Thus, an Edge environment would need to implement different controls with a very different set of operational expectations.
Not that there wouldn't be cross-over between the two. Consumer-facing applications often generate a lot of data, and some of it is extraneous. By placing pre-processing at the Edge, app providers will benefit from storing only the insights that are valuable while simultaneously improving performance for consumers. Placing initial processing and analysis of IoT data in the Fog provides greater responsiveness, a critical component for what can be both life and business-impacting decisions. The processing of data closer to the device or app is an important architectural choice that is facilitated by Edge and Fog computing.
But the models for those processing engines are very different, as are the requirements for reliability and performance. That means the underlying infrastructure and associated application services will be subject to very different requirements - including how much is purpose-built and how much is general-purpose.
In theory, there's very little difference between Fog and Edge computing.
As we’ve seen with the rise of ‘purpose-built clouds’ in the area of cloud computing (think GovCloud, for example), there is a very real need for cloud computing that supports very specific requirements with respect to a limited set of use cases. IoT and consumer-facing apps are two such use cases that make the case for both differentiated environments in practice. Fog and Edge may very well be those environments.