Deploying models to the edge can be risky. In the previous recipe, we made a simple update to a small IoT device. If the update bricked the entire fleet of devices, they may be lost forever. If we had a more powerful device, then we could spin up separate programs that work independently of each other. If the update failed, the program could revert to a version that worked. That is where IoT Edge comes in. IoT Edge specifically handles the problem of running multiple programs on an IoT device by using Docker technology. This, for example, could be mining equipment that needs to perform geofencing operations, machine learning for device failure predictions, and reinforcement learning for self-driving cars. Any one of these programs could be updated without impacting the other modules.
In this recipe, we are going to use Azure's IoT Hub and IoT Edge capabilities. This will involve using Docker and IoT Hub to push models down to devices.