MING Stack for IoT
A technology stack for IoT
The folks at Balena have created a bundle they call the MING stack, (Mosquitto/MQTT, InfluxDB, Node-RED and Grafana) which first appeared back in 2019. It is an interesting way to look at the IoT tech stack and a pattern I have seen used many times.
In the early days of the web, the LAMP stack was popularized as being the open source tech stack for hosting web sites. First used in 1998, LAMP stood for Linux, Apache, MySQL and Python/Perl/PHP. The LAMP stack did a lot to popularize open source software and create architecture patterns for building web applications. The LAMP stack did a lot to simplify a confusing technology landscape back in the early days of the web.
Can the IoT industry benefit from a MING stack? There is a fair amount of complexity building IoT systems. Therefore, having defined architecture patterns might help reduce some of the confusion. In fact, MING does bring together the key open source components of an IoT system:
- Mosquitto is the popular open source MQTT broker. MQTT has become the default protocol for IoT communications. The MQTT pub/sub protocol solves a lot for the communication challenges for IoT applications. In fact, I would define the M as being MQTT since there are a lot of MQTT broker implementations available.
- InfluxDB is the popular open source time series database. Many IoT use cases are based on analyzing trends from different IoT devices. The classic examples is preventive maintenance of factory equipment. Having a time series database in your IoT architecture to record trending information will solve a lot of your data problems.
- Node-RED is the popular low-code development environment that helps create flows of data. IoT systems are often pulling data from many different sources. The data needs to be filtered, analysed or transformed before being forward to another service. Node-RED has a large community of data nodes that makes it easy to collect data from a wide variety of sources. For instance in the industrial world, Node-RED nodes are available for OPC-UA, Modbus, S7, MQTT, various PLC platforms like Opto22, etc, etc.
- Finally Grafana is a popular open source visualization platform. Real time monitoring of IoT data is often the first applications deployed for IoT systems. Having graphing and dashboard technology available in your architecture makes perfect sense.
Another important feature of MING is that it can be deployed on the edge or in the cloud. IoT systems are inheritenty distributed so having the same technology available at different tiers is useful for lower barriers to adoption.
The LAMP stack was successful because it was:
- Open source and freely available for anyone to adopt and use.
- Highly flexible and customizable that allowed developers to adopt the stack to their use case.
- Back by large developer communities creating plugins/extensions, documentation, tutorials, etc.
- Easy to learn for developers with limited experience.
The MING stack has all the same characteristics. All four technologies are open source, highly flexible, back by large developer communities and relatively easy to learn. There are a lot of similarities between MING and LAMP.
Is MING relevant for IoT use cases? In my experience, people building IoT solutions are using 3-4 of the MING components. What is your experience?
- Building a Custom Video Player in Dashboard 2.0
- Beyond Automation - AI Use Cases that are shaping the next manufacturing frontier
- Deploying the FlowFuse Device Agent via Balena
- Overhauling the Dashboard 2.0 Build Pipeline
- Integrate with ChatGPT Assistants with Node-RED