The days of building monolithic embedded Linux systems are coming to an end. Security vulnerabilities, both on the software and hardware side are driving the embedded industry to adopt new ways to develop these systems. The writing has been on the walls for a while now, and this shift away from monolithic applications to microservices has been happening in the cloud for many years. The “internet of things” and “edge” computing have brought cloud developers closer to embedded systems than ever before.
Why is there no Android or Red Hat Enterprise Linux for IoT and Edge devices? The “one size fits all” approach of a modern Linux distro does not meet the requirements of the IoT and Edge markets because of the diversity of hardware and use cases - from cellular-connected sensors, to industrial IoT infrastructure, to gateways and even autonomous vehicle computing. More complex use-cases and more powerful processors almost universally use some variant of Linux. Simpler devices such as sensors typically use an RTOS. In this article we focus on Linux - a future article will explore the many RTOS options.
In this blog, I describe how to run the Google Assistant SDK on a Raspberry Pi with an external speaker and microphone. After you get things configured and gather key pieces of information you’ll have a simple, portable and easy to reproduce Google Assistant appliance.
Portainer has been a great asset and we have started to rely on it for single-container image management. Unfortunately, Portainer has been designed for 2 key use-cases. single containers and “stacks” that are meant to be deployed onto Kubernetes or Swarm orchestrators. For many of our demos we want to manage a suite of containers and orchestrate their startup so we can manage large container suites like the 9+ container-based micro-services that comprise the Edge-X project.
At Foundries.io, we are constantly looking across the ecosystem for the best projects to complement the microPlatforms. One such project is Portainer. “Portainer is an open-source lightweight management UI which allows you to easily manage your Docker hosts or swarm clusters.”
It’s March 30, 2018, Good Friday, and it has been 180 days since we started Foundries.io. In this time, we established our initial infrastructure, created the first microPlatform products and, on March 27, we produced our 12th update to the microPlatforms, roughly 1 update every 2 weeks. When we started the microPlatforms, we wanted to get our systems and processes running smooth enough to provide meaningful software updates that could be integrated into products by our subscribers.
You may think that consuming software updates every 2 weeks is daunting, however, the upstream projects are ever-evolving and in this same period, Zephyr has seen 3,385 commits and the Linux Kernel has seen 28,876 commits and we aren’t even listing the changes of the other software projects. Long story short, with all this activity, there are new features and fixes that affect all aspects of computing that your products may have missed out on. With the microPlatforms we have created a product that not only keeps you close to the latest software, but standards-based and fully tested end-to-end for use within connected IoT products.
The Linux microPlatform uses a set of Docker containers to provide end-to-end services used by the Zephyr microPlatform. The containers and their configurations are deployed using a simple shell script that wraps Ansible. The scripts require a version of Ansible with Docker support. Some distro packages such as Ubuntu 16.04 don’t have this, so make sure you install Ansible from a proper source before continuing.
“The great thing about Docker is that your developers run the exact same container as what runs in production.”
This is what the Docker hype is about, creating reproducibile environments for applications. The technology enables us to create lightweight, secure microservices which run on an array of SoCs that can be updated over the air in a matter of seconds. We believe that accelerating code delivery will ultimately reduce time to market. Hype aside, Docker has matured and has become a foundational building block of our microPlatforms.