Containers / Edge / IoT

Nubix Makes Tiny Containers for Edge Processing

26 Nov 2019 2:00pm, by

Edge computing isn’t actually taking place on the edge if it involves sensors sending data to the cloud or data center, argues Nubix, a Denver-based startup focused on enabling developers to process data on the devices where the data originates.

“We want to go to the true edge where the data is being generated and can be acted upon in real-time. That opens up 100% of use cases because you don’t have to lift the data somewhere,” said Nubix CEO Rachel Taylor.

It’s tackling some of the limitations of IoT and edge devices: namely that the compute and storage capacity of these devices is so small and that they often are in areas with spotty connectivity.

Processing data on the devices themselves eliminates a rash of networking and latency issues, as well as overhead costs of moving data and storing it.

Its answer to these challenges is what it calls Tiny Containers and Tiny Services, prepackaged components used to run those containers on devices too small to run traditional Linux-based containers.

It touts having created built edge-native containers and services that fit in as little as 32KB of RAM. By comparison, the Ubuntu base image is 188MB.

Its goal for the container runtime on Arm M-class devices is 256 kb of memory or less and 5 or 6kb on the application containers.

It’s not the only company focused on going small. Rancher Labs and chipmaker Arm have teamed up in an effort to shrink Kubernetes enough to work on tiny IoT devices. Docker and Arm also have previewed technology for a cloud-based development environment for building and delivering container-based applications to cloud, edge and IoT devices using Arm hardware.

Real-Time Analytics

“If I have to lift my data somewhere to take action on it, it wipes out a ton of use cases,” Taylor said. “By bringing all that functionality out of the cloud and extending it to the edge, we’re not saying you don’t need the cloud anymore. …What we’re saying is bring more of that compute to the edge. Make it so you can take action on that data in real time. …And let’s make it so that non-embedded engineers can build applications for embedded use cases without having to learn C or C++.”

The company wants to simplify the developer experience for embedded devices similar to that for cloud applications.

The company recently announced its Developer Edition, Raspberry Pi Rev 3B+ and newer running Raspbian OS and BeagleBone Black Rev B and newer running BeagleBone Debian.

It provides libraries, protocols, data science and more through a cloud-based portal with drag-and-drop functionality. Nubix takes a develop-once, deploy anywhere approach with a library of sensors that provides platform-independent modules for application development.

As part of Developer Edition, it offers a skinny version of Apache Spark for analytics called Stuart.

In its work to bring containers to tiny devices, a port of Spark was one of the first things it did, according to Tom Yates, vice president of products.

“Stuart is a pared-down version of Apache Spark that gives developers the programming context of Spark on these microcontrollers. The programming methodology is the same …  You have the same operations available on your RDDs [Resilient Distributed Datasets]. In Spark, RDDs are remotely distributed data across a large cluster. We’ve made that RDD entity and its cluster functions available, but all the data is residing on the device itself. It’s not doing highly distributed processing. It’s just bringing the Spark context to these microprocessor platforms.

“That fits with the long-term vision of the company,” he added. “Right now, we’re focused on building containers to the edge, but eventually want to bring things like machine learning on the edge.”

It’s been working with makers of large industrial equipment in scenarios such as predictive and preventative maintenance, and real-time decision-making in remote locations. It has done several pilots over the past two years, one with Honeywell in its Smart Home division, another an oil and gas project in Texas. In one, servers in a data center had to make decisions within 3 milliseconds and didn’t always have connectivity, Taylor said.

Abstraction Layer

Central to Nubix’s approach is uncoupling the container from the operating system. It runs on the firmware of embedded devices, and each vendor tends to have its own, which means there’s a lot of disparity in the market on that front.

“Eventually, that is the challenge and the reason that IoT and visual technology are so far behind is because there is a broad landscape of sensors, OSes, firmwares. There’s so many different flavors. Not to mention drivers and libraries, and we haven’t even started talking about adding machine learning and machine modeling. It makes it hard to find some kind of standardization across there,” Taylor said.

“With our containers, what we’re trying to do is solve that problem by creating that abstraction layer from the OS and just like VM did years ago, then allow people to focus on building their applications that will run on that firmware.”

Applications are delivered and executed through a container runtime, which means application logic can be updated and redeployed without any updates or changes to the container OS.

A built-in hardware abstraction layer maps logical layers to physical layers at deployment time and automatically bridges differences like I2C bus numbers for devices.

Pipelines are the basic element of application development, created with pre-packaged modules that Nubix calls Tiny Services and custom code. These Tiny Services include store-and-forward messaging, downsampling, coalescing updates, and more.

Rather than relying on C or C++, applications are written in Lua, which Yates describes as having a cult following among developers on embedded devices.

“Lua is a language known for being very fast. …It’s a fast, tiny and efficient language,” Yates said.

Lua’s interpreter of compiled bytecode is written in ANSI C, and Lua has a relatively simple C API that makes it easy to extend programs written in other languages.

A tiny container is a set of pipelines configured within the Nubix Orchestration Hub and deployed with a platform-specific runtime.

Advanced features include using and building your own I²C communication buses and using attached Redis and InfluxDB storage.

Taylor recently contributed “What’s Holding Back Edge Analytics?” on The New Stack.

Image by Rupert Kittinger-Sereinig from Pixabay.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.