Une technologie intelligente pour une industrie manufacturière forte avec une production ininterrompue 24h/24 et 7j/7 de solutions IIoT pour les entreprises.

Blog

OTA – Conception pour la tolérance aux pannes

Comme l’a dit une fois Werner Vogels, Vice-Président et CTO d’Amazon Web Services (AWS) : « Tout échoue tout le temps. »

Soyons honnêtes : il a raison. Peu importe à quel point vous essayez de rendre votre processus de mise à jour de firmware tolérant aux pannes, l’échec n’est pas une question de « si », mais de « quand ».

Ce que Vogels voulait dire par sa célèbre citation, c’est qu’en réalité, peu importe à quel point vous essayez d’éviter les pannes individuelles. Les échecs vont se produire. Quoi qu’il arrive.

Vous pouvez investir des sommes énormes dans le meilleur matériel. Mais qui peut garantir qu’une coupure de courant ou une panne réseau ne se produira pas ? Peu importe la qualité de votre matériel, de vos processus ou de la compétence de votre équipe, un échec occasionnel est inévitable.

Ainsi, le message de Vogels (et le nôtre aussi !) est que, au lieu de consacrer toute votre énergie et votre temps à essayer d’empêcher les échecs, planifiez-les.

Inversez la logique. Acceptez l’échec et abordez tout ce que vous faites avec pour objectif de récupérer le plus rapidement possible de cet échec.

Surmonter les problèmes de connectivité

Un appareil doit rester en ligne sans interruption pendant le temps de téléchargement. Dans certains endroits, la connectivité de l’appareil peut poser un vrai problème. Ce ne sera probablement pas le cas dans votre usine. Cependant, si vous utilisez un réseau mobile pour vos contrôleurs, cela pourrait devenir un problème réel.

Pour surmonter ces problèmes de connectivité, nous devons diviser les mises à jour en plusieurs petits fichiers. Par conséquent, vous aurez probablement besoin de plusieurs liens temporaires.

L’appareil IIoT télécharge ensuite tous ces fichiers de mise à jour. Si le téléchargement d’un de ces fichiers est interrompu, il le télécharge à nouveau.

Télécharger à nouveau ce petit fichier est moins problématique que de retélécharger une mise à jour complète plus volumineuse. Bien sûr, il est de la responsabilité de l’appareil de vérifier qu’il a correctement téléchargé tous les fichiers de mise à jour. L’appareil doit ensuite les reconstituer en une seule mise à jour.

Récupération automatique

Nous avons déjà prévu que le processus de téléchargement du nouveau firmware puisse être interrompu. C’est bien. Mais le processus de mise à jour lui-même peut également être interrompu à cause d’une coupure de courant ou d’une autre cause inattendue.

Nous devons donc toujours protéger l’appareil contre ce type de problème. Et en cas de mise à jour échouée, l’appareil doit revenir à son état précédent.

Voyons comment concevoir un processus capable de gérer ce type de défaillance : le modèle de mise à jour A/B.

Le modèle de mise à jour A/B

  1. L’appareil démarre depuis sa partition de démarrage et exécute toutes les applications depuis la “partition app A”, en stockant et en lisant toutes les données depuis la “partition data”.

  2. Le système effectue une mise à jour OTA du firmware et installe cette mise à jour sur la “partition app B”, tout en mettant à jour la configuration de la partition de démarrage.

  3. L’appareil redémarre, cette fois en exécutant toutes les applications depuis la “partition app B” et en stockant/lisant les données depuis la “partition data”.

  4. Si la partition B ne se charge pas correctement, le système revient à la “partition app A” et exécute à nouveau le processus de mise à jour.

  5. Si le chargement depuis la “partition app B” s’exécute correctement, la “partition app A” se synchronise avec la “partition app B”.