Slimme technologie voor een sterke maakindustrie met 24/7 ononderbroken productie van IIoT-oplossingen voor bedrijven.

Blog

OTA - Ontwerpen met oog op fouten

Zoals Werner Vogels, Vice President en CTO van Amazon Web Services (AWS), ooit zei: “Alles faalt voortdurend.”

Laten we eerlijk zijn: hij heeft gelijk. Hoe hard je ook probeert om je firmware-updateproces fouttolerant te maken, falen is niet een kwestie van 'of', maar van 'wanneer'.

Wat Vogels met zijn beroemde uitspraak bedoelde, is dat het eigenlijk niet uitmaakt hoe hard je probeert individuele fouten te vermijden. Fouten zullen gebeuren. Hoe dan ook.

Je kunt enorme bedragen investeren in de allerbeste hardware. Maar wie kan zeggen dat er geen stroomuitval of netwerkstoring zal optreden? Ongeacht hoe goed je hardware, processen of de capaciteit van je team is, een incidentele fout is onvermijdelijk.

De boodschap van Vogels (en die van ons ook!) is dan ook: in plaats van al je energie en tijd te stoppen in het proberen te voorkomen dat fouten gebeuren, plan er dan naar.

Draai de logica om. Omarm falen en benader alles wat je doet met het doel om zo snel mogelijk van die fout te herstellen.

Overwin verbindingsproblemen

Een apparaat moet tijdens de downloadtijd onafgebroken online zijn. Op sommige plaatsen kan de connectiviteit van een apparaat een echt probleem zijn. Dit zal waarschijnlijk geen probleem zijn binnen je fabriek. Als je echter een mobiel netwerk gebruikt voor je controllers, kan dit een serieus probleem vormen.

Om deze verbindingsproblemen te overwinnen, moeten we updates opsplitsen in meerdere kleine bestanden. Daardoor heb je waarschijnlijk meerdere tijdelijke links nodig.

Het IIoT-apparaat downloadt vervolgens al deze updatebestanden. Als de download van één van deze bestanden wordt onderbroken, wordt dat bestand opnieuw gedownload.

Het opnieuw downloaden van dat ene kleine bestand is minder problematisch dan het opnieuw downloaden van een complete, grotere update. Uiteraard is het de verantwoordelijkheid van het apparaat om te controleren of alle updatebestanden correct zijn gedownload. Het apparaat moet ze vervolgens weer samenvoegen tot één enkele update.

Automatisch herstel

We hebben al voorzien dat het downloadproces van de nieuwe firmware onderbroken kan worden. Dat is goed. Maar het updateproces zelf kan ook onderbroken worden door een stroomonderbreking of een andere onverwachte oorzaak.

Daarom moeten we het apparaat nog steeds beschermen tegen dit soort problemen. En in het geval van een mislukte update moet het apparaat terugkeren naar de vorige staat.

Laten we bekijken hoe we een proces kunnen ontwerpen dat met dit soort fouten omgaat: het A/B-update model.

Het A/B-update model

  1. Het apparaat start op vanaf de boot-partitie en voert alle apps uit vanaf “app-partitie A” en slaat alle data op en leest deze van de “data-partitie”.

  2. Het systeem voert een OTA-firmware-update uit en installeert deze update op “app-partitie B” en werkt de configuratie van de boot-partitie bij.

  3. Het apparaat herstart, ditmaal met alle apps draaiend vanaf “app-partitie B” en data opslaan/lezen vanaf de “data-partitie”.

  4. Als partitie B niet correct wordt geladen, schakelt het systeem terug naar “app-partitie A” en voert het updateproces opnieuw uit.

  5. Als het laden vanaf “app-partitie B” correct verloopt, synchroniseert “app-partitie A” met “app-partitie B”.