You don't need a device manager
Tags: opensource, kubernetes
Published: 2022-12-30 07:21:18

As an IoT enthusiast, you have used millions of device managers. They are all great at doing their job - managing your devices. However, you have also got millions of complaints - they are just too complicated to use. 

This complication is actuallly reasonable. A typical IoT environment will have tons of devices, and tons of devices indicate easy-to-mess-up memories, as well as easy-to-scramble threads. That is the curse of a monolith. You had better decouple it - OK, then it makes the coding complex. So now the programmers are facing the trade-off between easy-to-code vs. easy-to-use, and of course, programmers won't make their own life hard.

But should the users always carry the burden? Before now, the answer could be yes as there aren't good solutions to this question; but now, the burden is fully distributed and dissolved - because of Shifu (https://shifu.run).

OK I am writing this article just to promote Shifu, and if you have started looking at the documents I will earn my salary. However, I will go beyond a naive promotion: let's talk about how Shifu did that.

Podding your devices
You may already get it - Shifu is using Kubernetes. K8s is a great devops tool for managing system resources and requirements across multiple pods. As we have already learned from all those large scale clouds, K8s is perfect for decoupling - with its powerful container support, every pod is now completely separated, yet still coordinated together - perfect for the management of the Internet of Things.

Device management is a combination device and management. You have devices already there, now you just need management - and K8s has devoted its entire life into management. Now you just need to tell K8s "lad you need to manage those" to let everything start running. How? Use Shifu.

Shifu makes K8s an IoT native platform. You just need to give Shifu what the device is, the name of protocol it is using, and the list of operations it supports; all those three types of information will be written in a simple configuration file, and then it is done - Shifu will take care of what remains: reading the configuration, building the supported drivers, generating containers, and creating pods and letting K8s know. So K8s has no idea what it is managing - they are still pods, but Shifu knows that each pod is actually a virtual device, entangled with the real device.

This out-of-box experience is what you deserve after you have suffered so many different "advanced device managers" - you should manage your devices to the level above all - Pods.

**A little advertisement for something I’ve been working on recently:**

I’ve recently developed an open-source IoT development framework called Shifu and I would love to hear about your opinion.

Shifu is a highly-scalable framework that allows developers to easily control IoT devices. By extending the capabilities of Kubernetes through CRD functionality, Shifu allows developers to access the full range of functionality of IoT devices and even program in new functionality that the devices don’t have natively. This simplifies traditional IoT application development and greatly improves the efficiency, quality, and reusability of IoT applications.

Welcome to take a look at https://github.com/Edgenesis/shifu and tell me what you think!