Fork me on GitHub

Resin.io

Providers of resin.io Technical contribution in AGILE software

Resin.io has been working since the summer of 2013 on a revolutionary platform for software deployment on embedded linux devices, with applications on the Internet of Things. The platform aims to bring deployment technology commonly used for servers in data centers into embedded linux devices located in any physical location. The challenge is that these devices are lower-powered, have less reliable connections, and need to work within a much less predictable environment. In addition, installing and repairing the devices is significantly harder than servers which are concentrated in a well-managed data center.

The key innovation we built on is called Linux Containers. This technology consists of a number of capabilities that have been added to the Linux operating system kernel over the last few years, and allow for virtualization without computational overhead. This means that entire virtual machines can be run on a resource-limited device, such as a thermostat or medical device, allowing for easy updates without restarting the device, or risking damage to the ability for further remote operation in case of a faulty update. Linux Containers have become increasingly popular as a virtualization technique in data centers, with the arrival of the Docker open-source toolkit in May 2013, which encouraged an entire ecosystem of supporting products and projects to be created. Currently Docker is supported by Red Hat, Google, OpenStack, amongst many other partners.

The Docker toolkit however did not support CPUs with the ARM architecture which dominates small and embedded devices. Resin.io’s team made that breakthrough in November 2013 and was recognised by all related parties. We soon followed this breakthrough by achieving cross- compilation of containers on x86 servers, offering the speed and power of a data center, instead of using the slower ARM devices for the compilation step which can take hours depending on the payload. In January we released the first prototype of resin.io, our end-to-end service, which for the first time supports ‘git push’ deployment for embedded devices. This mechanism, invented by Linus Torvalds, author of the Linux OS, is now widespread for deployment to cloud services, but had never been used for embedded devices. We proceeded to adapt the Boot2Docker distribution of Linux to work on the Raspberry Pi single board computer and invent a new installer that makes the process much faster and less demanding of download bandwidth.

Having made these breakthroughs, the Resin.io team is now a leader in virtualization technology for embedded devices and are putting our full resource into completing our product, improving on the core technological differentiators we have invented, and partnering with interested technology companies to bring our platform to a wide array of users and use-cases.

Role in project

Our goal is to empower IoT Developers to write great applications for the physical world without having to worry about the friction involved in getting hardware working and keeping advanced, distributed applications up to date.

The company’s involvement will be in achieving both the initial design of the gateway software, e.g. for low-cost embedded devices, and also delivering the software stack and interface (UI and underlying components) for the management of devices and data from devices, as well as a streamlined Web-like development environment. Exploratory components include rule-based definition of notifications and actions, support for arbitrary devices as well as third-party extensions. Both research and development resource will be allocated to AGILE, for the duration of the project.