image courtesy of balena.io

Update 02/01/19: download our ElectronJS Balena project on GitHub

With the advent of new IoT (internet of things) technologies surfacing every year, it’s always interesting to think about opportunities for production and real-life use. Many of the existing projects for devices like the Raspberry Pi, serve only as a hobby for tech enthusiasts. If you’re reading this post, you’ve probably heard of projects like this one, which turn a simple $35 micro computer into a retro gaming console. Although projects like these are certainly exciting and fun, they are limited in practicality to only working in an environment where security, and more importantly management, aren’t an issue.

Ack! There’s more cables than computers! A GOOD problem to have…

At the University of Delaware, the Facilities, Real Estate & Auxiliary Services department employs hundreds of personnel working in areas like transportation, campus management, support, and maintenance. Most of these employees require the use of a workstation simply for clocking in and out, personal account reference, light web surfing and webmail usage. Assessing the current environment, our IT team realized that these workstations (most of which were older machines, repurposed for time station use) were ‘too much computer’ for such lightweight tasks.

Looking for a minimal computing module to replace these bulky systems, our team turned to the Raspberry Pi. A cost-effective solution for our existing deployment of over 30 workstations, the device had all we needed except for software. After developing with RaspbianOS, we recognized that our main obstacle wasn’t the device itself, but rather managing an entire fleet of them. Solutions like PiNet and Puppet were promising at first, but rendered to be either too confusing, or not practical for a wide spread network like the current environment at UD.

Then, we discovered balena.io

Previously known as resin, balena is a complete set of tools for building, deploying, and managing fleets of connected Linux devices. Since Balena offers a free tier of up to 10 managed devices, we quickly set up an account and provisioned several of our devices with a simple Node.js project, using the foolproof guide found on their website. Utilizing git and VPN tunneling, you can push Docker projects to an application within the balenaCloud, which then deploys your image across a wide array of hardware devices, which run balenaOS (in our case we stuck with the raspberry pis). It was as if we found the perfect solution for our predicament.