Developing for the edge
What is edge computing? How can it be beneficial for developers? What are the challenges you might face?
With the advent of 5G and the evolution of Internet of Things systems, we are seeing an explosion in use cases of edge computing. But what is edge computing? How can edge computing be beneficial for developers? What are the challenges that developers face?
In this blog post, I recount a conversation that I had with Dennis Lauwers, Distinguished Engineer Hybrid Cloud Europe, and Eric Cattoir, Client Tech Professional for IBM Cloud in Benelux.
What is edge computing?
Eric: “Edge computing is a kind of real-time computing. This means that you’re processing your data right at the time that it’s being collected by your device. You don’t send the data first via the cloud but instead process it on the device itself. Devices have more and more compute power, which makes it possible to process the data locally…at the edge.”
Dennis: “Plenty of use cases benefit from edge computing. For example, think about face recognition at border controls. This task involves a massive amount of data with thousands of people who cross borders every hour. It would take too much time to first send the data to the cloud to process it. When you analyze the data right on the device, there’s no latency. And, the data that you want to back up can be safely stored in the cloud.”
What are the challenges to face while coding for the edge?
Eric: “The programming itself is in line with traditional development. You use the same languages and you go through all the familiar DevOps phases. The challenge? That’s in the diversity of the devices. Often the processor technology on IoT devices is different from what you’re using on your PC. And, the processors even probably differ between the devices. How do you manage this? As a developer, you are being asked to write consistent and secure code that can be seamlessly copied to all devices.”
How are you helping developers with this challenge?
Dennis: “We help to enable developers on edge computing. You first build and test your code locally, and after it’s all working fine, you distribute it to your other devices. This involves building a multi-cluster environment. In this way, you’re also prepared when there’s a new device to onboard: in just a few clicks, it’s operational.”
When developers would like to know more, where do you suggest them to start?
Eric: “For a general introduction to edge computing, you can read this blog, “What’s edge computing and how can it transform your business?“. Or, you can watch this video of Rob High, IBM Fellow and CTO, talk about “the basic concepts and key use cases for edge computing.”
If you would like to experiment with the IBM Edge Computing offering, Ryan Anderson wrote an extensive blog on design patterns and recipes related to edge computing.
Will you be speaking about edge computing at Devoxx Belgium?
Dennis: “Yes, that’s right. In our session, we will look at how you can set up a Kubernetes-based DevOps solution for developing these complex applications that consist of components that run on a mixture of central cloud systems and edge devices. We will also show how you can manage an environment with a large number of edge devices and control aspects like security and integrity.
The use case will show how you can develop applications using some basic hardware (Raspberry Pi computers or other ARM-based computing devices) like running visual recognition on the edge in real time on a multitude of devices. We will be leveraging the open source Horizon software.”
Are you coming to Devoxx Belgium? Join our booth for a quick lab and get your limited edition IBM Developer swag!