This episode highlights the difference between cloud, edge and fog computing.
Fog Computing (FC) is emerging as a complementary computing paradigm for Cloud Computing (CC) to meet the computing, storage, and network requirements of resource-constrained computing nodes.
Smartphones, tablets, the Internet of Things (IoT), wireless sensors, and actuators are examples of resource-constrained computing devices. Such devices have limited computing power, small memory, and access to the network through wireless media. Despite their limited capacity, such types of devices transform the nature of computing from an enterprise phenomenon into a pervasive phenomenon. These devices play a crucial role in realizing the vision of computing from any-where and any-time
Cloud Computing and Fog Computing are similar phenomena that provide computing, networking, and storage resources to remote machines from the functional point of view. Both environments include resource-rich devices such as high-end servers accessed through either public or private networks. Although the business model for the FC is currently evolving, similar to CC, the business model of the FC in future may be centred around pay-per-use billing mechanisms and hosting of resources by a third party.
In terms of software engineering terminology, Fog computing and Cloud computing differ regarding non-functional requirements. Such non-functional requirements are usually concerned with desired performance, reliability, security, and deployment models. These requirements are also known as operational requirements. The table shows a comparison of Edge, Fog and Cloud Requirement.
Hence, to handle these non-functional requirements emanating from the requests of edge devices, a new computing paradigm has emerged in recent times called Fog Computing. Fog Computing has introduced a new application management layer in the middle between cloud and edge devices referred to as a Fog layer. The Fog layer extends the cloud management services and brings them nearer to the network.
Fog and Cloud mainly differ in terms of latency. The latency to transfer data from a Fog to edge devices is lower than when data transfer occurs from an edge device to a Cloud. This lower latency is because edge devices are a one-hop topological distance from fog servers. The network bandwidth between edge devices and the Fog is much higher through a wireless link than between edge devices and the Cloud.
Additionally, the Fog stores the data transferred from edge devices for a shorter period; the Fog periodically pushes the Cloud for archival purposes.
Mobility is another distinct non-functional parameter in which Cloud and Fog Computing differ. The servers and computing nodes hosting cloud management services are centralized. When they are geographically distributed, often the computing nodes reside in an office premise and not mobile. Unlike this configuration, a Fog may host computing nodes and services in mobile vehicles. Also, the number of requests that a Fog may have to handle from mobile clients are enormous.
Additionally, it is also essential to know the differences between Fog Computing and Edge Computing. Although the differences between fog and edge computing are blurred, we discuss here some of them. An Edge Computing node supports the computing requirement of edge devices which include wireless sensors and actuators. Edge computing nodes are directly interfaced with edge devices. An edge computing node communicates with edge devices through conventional communication mode such as pooling and interrupts in contrast to client-server communication used in Fog Computing. The edge computing node supports hardware-enabled security, unlike application-level security provided in Fog Computing. Further, the Edge Computing nodes typically use flash storage devices, unlike spinning storage disks used in Fog Computing.
Implications to Development Engineer:
A development engineer shall be aware of the difference between cloud, fog and edge computing to select them in a development project when these alternatives are available. Also, these technologies are possible to integrate through web services to design novel applications in the areas of building smart city infrastructure, connected vehicle and transportation.