If the internet of things is to scale to millions of devices and embrace millions of different use cases it’s going to need developers. And to broaden the number of developers who can program edge devices, the tech industry needs to make platforms and languages that are easier to use. Resin.io is one company that hopes to make that possible.
Resin.io is building software that it hopes will provide that leap for developers. It hopes to move from fragmented and complex IoT programming frameworks and languages to tools that developers can use to manage and deploy software on what could be millions of connected devices.
Resin’s leap was building a form of a Docker container on ARM-based silicon used by many connected devices. Containers allow a developer to build a self-contained version of an app or service and then replicate it across many different servers. Or in the case of IoT, light bulbs or microprocessors.
Containers help with the problem of scale, allowing IT staff to treat an application as a resource that can be managed and deployed in any sort of infrastructure. But when thinking about computing at the edge of an industrial or enterprise network, containers aren’t enough. Alexandros Marinos, CEO and founder of Resin.io, says that in the four years since Resin.io’s founding a lot of work has gone into making the containers resilient enough for the edge.
For example, the connectivity inside a digital sign or an edge sensor can be sporadic, as can power. So Resin.io has taken steps to store data in a way that preserves it in case of power or data connection loss. But because data must travel back to the cloud on limited or unreliable networks, Resin.io also tried to minimize the container size and the way it transfers information to limit the use of bandwidth.
The software also puts guardrails in place so a machine that is operating can’t get a software update or perform certain functions. For example, if your light bulb got a security update while you are reading, you probably want it to wait until you flip the switch off before it performs an update. Today those updates are generally scheduled for a time when you aren’t likely to be using the device or when the device is first turned on after the patch has been released.
As someone who has flipped a switch only to have to wait for an update, neither is ideal.
“Some of what we have learned comes from the embedded world and some of it from the cloud,” says Marinos.
This philosophy makes sense when it comes to building what is essentially a new computing architecture for the internet of things. Now bring on the developers.