Hey Hacker News! We're Josh, Sean, and Cyrus from Deviceplane (
https://deviceplane.com/).
Deviceplane is an open source device management tool for embedded systems, IoT, and edge computing. More specifically, we manage any device running Linux. These can be found in many different categories of hardware such as single-board computers (Raspberry Pis, Jetson Nanos), IoT devices/gateways, and servers running at the edge.
The use cases for Linux devices span many different verticals/industries: robotics, consumer appliances, drones, autonomous vehicles, medical devices, and much more. Your first thought might be that a tool for managing robots and a tool for managing medical devices are quite different, but after talking to a variety of companies, we've found that the pain points across these industries are actually quite similar!
Deviceplane solves the biggest infrastructure problems for these use cases:
- Orchestrating and deployment of remote updates
- Network connectivity and SSH access
- Host and application monitoring
- Device organization: naming, labeling, searching, and filtering of devices
- Access and security controls
Deviceplane is designed to support a variety of hardware, from small embedded devices to large x86 servers. Today’s tooling ecosystem suffers from being segmented by hardware size.
For smaller devices, the Yocto project is popular. While it's good for building custom Linux installations, it has downsides for delivering applications. It's hard to understand, can take hours to compile, and solves only a portion of the problems present in device management.
For larger devices, many companies seem to build and maintain their own internal tooling. We've seen everything from systems built around configuration management to scripts polling for new Debian packages in S3. These systems are usually brittle, fall short of a complete feature set, and drain precious engineering resources with their maintenance.
We think Deviceplane is a great replacement for all of these. Not only is it suitable for all of these hardware sizes, it also presents a way to standardize the tooling across them.
One of our goals with Deviceplane is to make device management more accessible to developers. To do this, we build on technologies and concepts popularized in cloud deployments:
- Applications are packaged as containers and defined in a format resembling Docker Compose
- Updates can be rolled out and tested gradually by using "canary" deployments
- An intuitive and scriptable CLI that will feel familiar to Docker and Kubernetes users
Deviceplane integrates with your device by running a lightweight static binary via your system supervisor. We can be used with nearly any Linux distro, which means you can continue using Ubuntu, Raspbian, a Yocto build, or whatever else fits your needs.
Deviceplane is completely open source. The code for everything from the agent to the backend and UI can be found on GitHub (https://github.com/deviceplane/deviceplane). We put a lot of effort into making our open source version as easy as possible to run. You can even run the backend of Deviceplane with a single Docker command:
docker run -d --restart=unless-stopped -p 8080:8080 deviceplane/deviceplane
For more information on hosting Deviceplane yourself, check out our docs (https://deviceplane.com/docs/self-hosted/).
If you'd rather jump right into managing devices, we have a hosted version available at https://cloud.deviceplane.com/.
Lastly, we'd love to hear more about your experiences managing devices! What have your biggest pain points been, and what infrastructure do you wish existed to solve those? Either comment here, or shoot us an email anytime at founders@deviceplane.com.
Currently, we use Mender (mender.io) but are considering switching.
Pros for Mender:
* great pricing for consumer products at around $0.50/device/mo
* lets us keep using Raspbian on our Raspberry Pi fleet
The cons however are that we are stuck with Raspberry Pi 3B+. We want to switch a more production-friendly board (either the compute module or something else entirely), but that means switching to yocto, which as you mentioned, is its own world of problems. Mender’s UI is also very buggy.
BalenaOS is acceptable and does support the boards we’re currently considering, but we’re limited to the devices they choose to support in the future.
I love that Deviceplane claims to work with any linux distribution. However, as far as I can tell, you only support application updates, not OS-level updates. Will it ever be possible to update the OS in your model? A major reason I want to use a device management system is to make sure we can fix potential OS-level security issues.
Another concern is pricing. $5/device/mo is probably fine for enterprise, but that can be 100% of revenue for many consumer devices. Since you’re open source, we could always self-host, but I’m curious if you have any plans to for more B2C-friendly pricing.