Welcome to Red Hat IoT hack session. This repository was created for hack session in mind. For the people to get familiar with container based application development and delivery in the automated way. We have setup a lab for such purpose, aim is to provide skeleton for cloud native development environment, but in home automation nerdy way.
The environment consists of resources the hybrid way. There is OpenShift somewhere in the cloud, which hosts variety of tooling and technologies. We also have a remote physical embedded RHEL server acting as IoT gateway. The RHEL box has couple of radios connected to it, which may be used to connect to physical peripherals common to home automation.
The task depend of course on the audience. During the first event we utilise the following devices:
- Zigbee USB radio stick
- Ikea Trådfri Gateway (Zigbee)
- Ikea Trådfri lamp (Zigbee)
- Ikea Trådfri remote controller (Zigbee)
- Zigbee temperature sensor
- Suunto Movesense bluetooth motion and biometrics sensor developer kit 2.0 💥 🔥
- Any other bluetooth devices nearby?
- WLAN network
We have all Red Hat products for use for the excersise. Using them is up to your imagination. Our idea on high level is to develope software that has cloud backend, and local software in the IoT gateway box. The local software makes use of the radio devices to connect to peripherals. They may be commanded to do something, and monitored for events or status. The info is carried over the internet to cloud, where the backend software will possibly act on info, or provide ways to control the devices.
It is highly encouraged to make use of available technology, including but not limited to:
- Red Hat 3Scale API management and gateways
- Red Hat Ansible Automation Tower for automation and end device control
- OpenShift for
- building containers
- CI/CD pipelines for applications, together with Tower to deliver the apps to RHEL target
- hosting and publishing the cloud applications
- Red Hat Decision Manager for acting on device status or control events
- Red Hat Datagrid for in memory database
- Red Hat Process Automation Manager for handling external approvals or inputs
- Red Hat Runtimes for application development
- Red Hat AMQ for messaging events e.g. via Kafka
- Red Hat Single Sign On for identification
- Quarkus for highly optimized java programming
- Red Hat Insights and Cockpit to get visibility, security and control to RHEL box.
And of course any software you feel like using there! For example we have Node-Red installed for easy data flow management.
It is up to your imagination to come up with hacks you like to do. Here are some suggestions
- build safe messaging back and forth from sensors to cloud backend
- secure the connections with API gateway using authentication and rate-limits
- utilise decision manager to follow rules related to events from GUI or devices
- utilise Node-Red to build quick user panel, and REST API data handling
- SSO for user auth
- OpenShift pipelines to build your app, and store the images
- Ansible tower to automate provisioning stuff to remote RHEL
- Quarkus and UBI minimal container for building lean and mean application images
- Dare to go already serverless with [Knative](https://developers.redhat.com/coderland/serverless/serverless-knative-intro/?
- List of available automation tasks in Tower
- TBD Description of OpenShift resources
- TBD Description of controlling RHEL box
- TBD Description of moving containers from OCP to RHEL box
- Search topics on Red Hat Developer Blog
- How to Install Red Hat Process Automation Manager 7.5 in Minuteshow-to-install-red-hat-process-automation-manager-75-in-minutes.html
- How to Install Red Hat Decision Manager 7.5 in Minutes
- Knative examples for serverless designs
Click here for Red Hat product documentation.
- <TBD, list of direct links to product documentation>