Building Containerized IoT solutions on OpenShift Lab
As technology continues to disrupt the industries beyond the first wave (led by Netflix, Amazon, Uber etc.), the enterprises are embracing digital transformation to meet the challenge. One of the key technologies enabling digital transformation is Containers through its inherent advantages with packaging (Atomic, built for CI/CD), collaboration and runtime (lightweight, distributable, portable).
At the Red Hat Summit in Boston, Andrew Block and I conducted a hands-on lab on how to build a containerized intelligent Internet-of-Things (IoT) gateway on Red Hat OpenShift. The application is deployed as a set of microservices inside containers on the containerize IoT workload using microservices running on Red Hat OpenShift Container Platform.
IoT use case – Asset Tracking
The use case for this lab represents a logistics company that wants to monitor high-value, fragile and time critical assets and take corrective actions in real time to protect these assets. Each package category (e.g. organs, delicate machine equipment etc) has its own threshold of optimum environmental conditions.
The packages will be monitored for temperature, vibration, light, and location data. The sensors transmit the data to an intelligent IoT gateway that will transform, store, and forward this data for further processing. If the threshold of the environmental condition is crossed for a package, an alert will be sent to trigger a corrective action.
Companies looking to build a modern IoT solution on the enterprise-grade OpenShift container platform can use the methodology used in this lab.
The core components of the lab include:
- Red Hat JBoss Fuse Integration Services (FIS): Tools that facilitate integration, routing, and transformation of messages and protocols, by leveraging Apache Camel technology.
- Red Hat JBoss A-MQ: Apache ActiveMQ-based message broker container image for receiving and storing telemetry from the sensor via the MQTT protocol.
- Apache Zeppelin: Interactive data visualization and analytics.
- PostgreSQL: Provides persistence for sensor data.
- Simulated Software Sensor: A simple Spring Boot application that simulates temperature, vibration, light, and GPS sensor data.
In the lab exercises, the participants created the project in OpenShift, instantiated (using templates) and then deployed the applications. Once all the applications were running successfully, the Zeppelin visualization tool was configured to visualize the sensor data.
Participants also learned how to use ConfigMap to dynamically enhance the functionality of the software sensor to enable a new sensor type.
As the number of end devices or volume of sensor data increases over time, OpenShift can auto-scale the resources to keep the business functions running without human intervention.
For those interested in recreating this lab, all the code and documentation is available on Github.