Een veilig end-to-end OTA update system met HawkBit, target updater, OTA manager, buildproces voor update packages en een device fleet simulator.
Ik heb een end-to-end veilig Over-the-Air (OTA) software update system gebouwd voor remote devices, met de open-source platformsoftware hawkBit als basis.
De hawkBit server is productiegereed. De bijbehorende ontwikkeling omvat de updater service op het target device, de OTA Manager en een custom build system voor OTA update packages. Voor het testen van het complete systeem heb ik ook een target device simulator gebouwd. Die kan een grote device fleet simuleren en bewust update errors, timeouts en andere problemen injecteren.
Dit was een zelfstandig project dat ik van ontwerp tot implementatie en test heb uitgewerkt.
Dit project implementeert een veilig Over-the-Air software update system voor devices met HawkBit.
Belangrijke componenten:
Voordelen:
Het systeem zorgt ervoor dat software updates efficient en veilig kunnen worden uitgerold, waardoor functionaliteit en security van devices doorlopend verbeterd kunnen worden.
Eclipse hawkBit is een software update framework voor IoT devices. Het maakt het mogelijk om updates naar edge devices, controllers en gateways via internet te beheren en uit te rollen. Het ondersteunt verschillende protocollen, roll-outs en packagevormen. Meer informatie staat op de officiele website en in de GitHub repository.
Voor communicatie met target devices wordt de HawkBit Direct Device Integration REST API gebruikt.

Componenten
De HawkBit Direct Device Integration (DDI) REST API is bedoeld voor communicatie tussen devices en de hawkBit update server. Belangrijke punten:
Kort gezegd maakt de DDI REST API betrouwbare communicatie mogelijk tussen devices en update server, ook voor constrained edge devices.
De DDI REST API documentatie staat hier: https://eclipse.dev/hawkbit/apis/ddi_api/
De updater service is verantwoordelijk voor software updates op het target. Updates worden door HawkBit aangeboden via distribution packages. Die packages kunnen updates bevatten voor Docker containers, Python scripts, executables en andere bestanden.
De updater service is geschreven in Python 3 en is daardoor platformonafhankelijk. Python-versies vanaf 3.6 tot de nieuwste versie zijn ondersteund en getest. De updater draait als background service. Via HawkBit kan ook de updater service zelf bijgewerkt worden.
De OTA Manager gebruikt de HawkBit Management REST API om met HawkBit en de gekoppelde targets te communiceren. De OTA Manager kan als interface dienen naar het klantsysteem.
De communicatie kan bidirectioneel zijn:
Met alle benodigde data kunnen configuratiebestanden (ota.ini) voor targets gegenereerd worden, inclusief targetId en token voor toegang tot HawkBit. Dit is klant-specifiek maatwerk.
De HawkBit Management REST API is bedoeld voor beheer en monitoring van software updates. Belangrijke functies:
De Management REST API documentatie staat hier: https://eclipse.dev/hawkbit/apis/management_api/
De target device simulator simuleert meerdere target devices. Elk target device draait in zijn eigen thread. Hiermee kan de performance en robuustheid van een HawkBit server getest worden.
Het daadwerkelijk installeren van Docker containers wordt niet gesimuleerd, omdat alle target threads op dezelfde machine draaien. Non-Docker OTA packages met scripts of executables worden wel ondersteund.