What is edge computing and how do we employ it?
Edge computing is a distributed computing paradigm that brings services, computation and data storage closer to the sources of data on one hand and their users on the other hand. It is a topology and location-aware form of distributed computing that 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, cloud and main servers to the edge of the network, exploiting 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 that 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 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 needed to be sent to the main server and requires far less bandwidth and connectivity time that might otherwise be necessary.
Data sovereignty can be maintained by keeping the data close to its source and within the bounds of prevailing data sovereignty laws and not being transmitted across national and regional boundaries posing 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 and 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.
Privacy and security becomes a challenge when data may travel between different distributed nodes through the Internet and some of them can also be 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 and thus minimizing the data transmitted to the main servers. This also shifts the ownership of collected data from service providers to the users.
Scalability is challenging when the scheduling of tasks on the edge has to take into account the heterogeneity of the devices, having different performance, energy and security constraints, also the highly dynamic conditions and the reliability of the connections compared to the more robust infrastructure of main servers.
Reliability is challenging when certain nodes become unreachable and the services they run should continue to operate without interruptions So, there is a need for detecting errors, failures and accuracy of the data in edge services and also failover management that provides the service recovery.
Performance presents the challenge of converting the nearness of the computation and storage resources to the users into increases in responsiveness and throughput of the applications.
Efficiency presents the challenge of increasing the operational efficiency of the edge services, by splitting processing into multiple steps and reducing the time needed for execution and data that needs to be transferred to other nodes or main servers.
A CDN, or "Content Delivery Network," is a network of servers (typically placed around the world) used to deliver content (such as videos, photos, and CSS).