What is edge computing and how do we employ it?
Edge computing is distributed computing that brings services, computation, and data storage closer to the sources of data and their users. It aims to decrease response times, save bandwidth, reduce congestion, and make real-time applications possible. Specifically, edge computing aims to move the computation and data storage away from data centers, the cloud, and main servers to the edge of the network, using smart devices, mobile phones, edge servers, and network gateways to perform tasks and provide services. By doing so, it is now possible to provide content caching, service delivery, persistent data storage, and IoT management resulting in better response times and transfer rates.
The first use of edge computing started with content delivery networks (CDNs) in the late 1990s, which served web, audio, and video content from edge servers that were deployed close to users. In the early 2000s, the edge servers evolved to host applications and application components such as dealer locators, shopping carts, real-time data aggregators, and ad insertion engines. More advanced applications include connected and autonomous cars, smart cities, smart industry, and home automation.
Edge computing benefits
Edge computing provides benefits for vital computer network challenges, such as bandwidth limitations, latency, and congestion, but it also has several potential additional benefits:
Autonomy is useful where connectivity is unreliable or bandwidth is restricted, so edge devices can process the data themselves or store it until the connection becomes available and transmit it then. Also, processing data locally greatly reduces the amount of data to send to the main server and requires far less bandwidth and connectivity time.
Data sovereignty refers to keeping data close to its source and within the bounds of prevailing data sovereignty laws, and not sending it across national and regional boundaries, which can pose data security, privacy, and other legal issues. This enables data to be processed locally, obscuring or securing any sensitive data before sending anything to the cloud or primary data center, which can be in other jurisdictions.
Security of data transmission can be provided by implementing computing at the edge. Any data traversing the network back to the cloud or data center can be secured through encryption, and the edge deployment itself can be hardened against hackers and other malicious activities, even when security on IoT devices remains limited.
Edge computing challenges
Privacy and security become a challenge when data travels between different distributed nodes through the Internet and some of them are also resource-constrained, limiting the choice of security protocols and methods. A shift from a centralized, top-down infrastructure to a decentralized trust model is also required. On the other hand, privacy can be increased by keeping and processing data close to the user, thus minimizing the data transmitted to the main servers. This also shifts the ownership of collected data from service providers to the users.
Scalability becomes challenging when the scheduling of tasks on the edge has to take into account the heterogeneity of the devices, which have different performance, energy, and security constraints, as well as the highly dynamic conditions and the less reliable connections compared to the more robust infrastructure of main servers.
Reliability becomes challenging when certain nodes become unreachable, and the services they run should continue to operate without interruptions. There is a need for detecting errors, failures, and ensuring the accuracy of the data in edge services, as well as failover management that provides service recovery.
Performance is improved when computation and storage resources are nearest to the users. It also increases the responsiveness and throughput of the applications.
Efficiency improves with the operational performance of edge services by splitting processing into multiple steps and reducing the time needed for execution and the amount of data sent to other nodes or main servers.