Building Containerized IoT Solutions on OpenShift Lab
Here's the architecture and the source code for a proposed IoT solution meant to monitor and issue corrections for fragile assets in real time.
Join the DZone community and get the full member experience.Join For Free
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.
Published at DZone with permission of Ishu Verma, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Integration Testing Tutorial: A Comprehensive Guide With Examples And Best Practices
Building the World's Most Resilient To-Do List Application With Node.js, K8s, and Distributed SQL
A Data-Driven Approach to Application Modernization
The Role of AI and Programming in the Gaming Industry: A Look Beyond the Tables