In this exercise, we are going to investigate the workload we’ll be deploying to the edge device in various deployment configurations: installed directly into the Operating System, in containers managed with podman, and then on top of MicroShift.
This exercise will cover:
For our workshop, we’ll be running a brew kettle simulator comprised of four components:
A big thank you to Rockwell Automation’s Advanced Technologies group for allowing us to leverage this application.
We’ll be using a lightweight MQTT broker to pass messages between the other components of the application.
For ease of use, we’ll be setting the broker to listen on port 1883
and allow anonymous publishing of messages:
listener 1883
allow_anonymous true
In a production setting these would not be acceptable, as anyone on the network could publish messages to the broker. However, throughout the lab, we’ll leverage a few different methods to control access to the broker, such as firewalld rules, running it inside of a pod with no mapping to host ports, etc.
This brew process simulation includes a tank with a temperature sensor and heater. It is responsible for the following:
This component will need to communicate with other parts of the application, but does not need to be accessed directly.
This component takes input from the WebUI as well as information from the simulator and determines how much energy should be added or optionally, should the heater even be on.
This control function is wired up as such:
Finally, this component provides a web interface, allowing for the interaction with the simulated system. The wiring is as such:
Should all components of the application be functioning and communicating, visiting the web interface should present an interface where the setpoint of the tank can be adjusted up or down, and a few metrics will be displated as the controller attempts to bring the system to the sedired set point:
Navigation
Previous Excercise | Next Exercise |