Edge computing is one of the buzzwords du jour of the IT world. Arguably, it’s merely a new term for an old idea. But, either way, if you’re not up to speed with edge computing concepts and priorities, now’s the time to learn. Toward that end, here’s a primer on what developers should know about edge computing platforms: how edge computing platforms work, how they relate to the cloud and data centers, and how to approach application development for the edge.
What Is Edge Computing?
Edge computing is a broad term that refers to any type of application deployment architecture in which applications or data are hosted closer to users--in a geographic sense--than they would be when using a conventional cloud or data center.
The big idea behind edge computing is that by bringing workloads closer to end users you can reduce network latency and improve network reliability--both of which are key considerations in an age when applications in realms like IoT, machine learning and big data require ultra-fast data movement.
Edge Computing and Developers
At its core, edge computing is an architectural concept, not a development concept. Applications don’t need to be designed or programmed in any particular way to run on edge computing platforms.
Nonetheless, there are a number of things that developers can help their organizations get the most out of edge computing.
For applications to take full advantage of edge architectures, it’s important for application instances to be able to start quickly. It’s hard to benefit from an ultra low-latency network when your applications take 30 or 40 seconds to start.
That’s one reason to consider containerizing applications that will be deployed on an edge platform. Containers can start and scale more quickly, enabling organizations to capitalize on the agility and speed that edge computing platforms offer.
2. Be hardware-agnostic.
In some cases, edge computing platforms involve hardware devices that you wouldn’t find in a conventional data center. You may be dealing with IoT devices or with mobile phones that serve as a “device edge” (which means that the devices perform processing tasks that would traditionally be handled on the server side). Not only can the hardware profiles of these devices vary tremendously, but they also may also not offer the ability to virtualize hardware (and, by extension, standardize computing environments).
For this reason, it’s wise to choose a development strategy that can support any type of device or hardware configuration. Even if your edge applications run today on conventional servers, you may want to extend them in the future into more specialized devices. Sticking to programming languages, libraries and processes that help you do that will future-proof your organization’s edge strategy.
3. Understand device vs. cloud edge.
In addition to the aforementioned device edge, edge computing platforms come in the form of what’s known as the “cloud edge.” In the latter edge computing model, data processing happens in the cloud rather than on end user devices. However, the cloud data centers in a cloud edge are geographically closer to users than they would be in a conventional, highly centralized cloud architecture.
The device edge and the cloud edge both help to improve application performance and reliability, but in different ways. Developers should understand the differences and decide which type of edge model makes sense for their applications. For a device edge, they’ll need to build applications that can optimize data processing directly on end-user devices. Applications in cloud edge environments look more like traditional server-side applications.
4. Extend the cloud.
It can be tempting to view edge computing as an alternative to cloud computing, or even as the antithesis of it. In fact, edge extends the cloud rather than competes with it.
From a development perspective, this means that you can and should take full advantage of cloud services when it makes sense while building an edge application. Edge apps don’t need to avoid reliance on the cloud. However, they should be capable of running in an environment where traditional cloud data centers are not available.
5. Test for the edge.
The fact that edge applications are deployed outside of traditional data centers also makes software testing extra important when you are developing for an edge computing platform. Not only do you need to ensure that you test each release for all of the environment configurations you will be deploying to, but you should also factor in how varying levels of network availability, proximity to content delivery networks, and even (if you are deploying to a device edge) battery life on end user devices can impact application performance.
In other words, testing edge applications requires planning for more variables and unique test cases than you would traditionally have to handle when building a standard application.
Conclusion: Optimize Development for the Edge
Again, developers are only one set of stakeholders in edge computing. Cloud architects, data architectures, and network and security engineers also have important roles to play in ensuring that businesses capitalize on the benefits that edge computing platforms stand to offer.
But developers can do their part by writing applications that are high-performing under any and all edge configurations that their organizations may choose to use--now or in the future.