J'ai récemment été convié à une visioconférence d'une heure pour une revue d'architecture avec un client confronté à deux défis : la latence des alertes et les coûts de stockage cloud. Un client passionnant, avec un cas d'usage qui l'est tout autant — l'une des applications les plus impressionnantes de l'IA qu'il m'ait été donné de voir.

Au départ, on m'avait sollicité parce que le client pensait qu'Anthos de Google pourrait l'aider à résoudre l'un de ses problèmes, et c'est un sujet sur lequel je travaille beaucoup ces derniers temps. Si Anthos pourra peut-être lui être utile à l'avenir, nous avons conclu que ce n'était pas la bonne solution pour ses besoins immédiats.
Cette histoire mérite d'être racontée, car elle illustre selon moi ce qui distingue DoiT International de bien d'autres partenaires cloud, au-delà de notre Cloud Management Platform et de nos services sans frais pour nos clients. Nous ne recommandons jamais ce qui n'est pas dans l'intérêt du client, et nos équipes sont libres de faire ces choix — c'est aussi pour cela que nos clients nous apprécient.
À propos du client
La solution SaaS de cette entreprise est utilisée par des usines du monde entier pour automatiser le contrôle qualité. Ce que je trouve admirable, c'est qu'ils ont trouvé un moyen d'augmenter les capacités des opérateurs humains pour les rendre meilleurs dans leur travail, plutôt que de les remplacer par un robot. Voilà la véritable promesse de l'IA.
Les usines connectent les flux des caméras qui surveillent leurs chaînes de montage, et le logiciel de cette entreprise analyse la vidéo en temps réel pour vérifier que chaque étape est bien réalisée. Si une étape manque, une alerte est envoyée pour permettre la correction.

(ce n'est pas le vrai flux, juste un exemple aléatoire de flux d'usine)
C'est sans doute le geek en moi, mais j'étais fasciné lorsque le client a partagé son écran et s'est connecté à un flux en direct : nous avons vu le système cocher une à une les tâches d'une usine de radiateurs automobiles (tourner la roue dans le sens inverse des aiguilles d'une montre, pincer la valve, test de pression, etc.). Vraiment impressionnant à voir en action !
Le problème de latence des alertes
Premier problème : un délai de 4 secondes entre la détection d'un incident et la notification de l'opérateur. Leurs propres clients exigeaient un délai maximum de 2 secondes, afin d'avoir le temps d'arrêter la chaîne et de corriger le tir avant qu'il ne soit trop tard. Ils avaient 6 mois pour résoudre le problème.
Les ingénieurs de l'entreprise avaient entendu parler d'Anthos de Google, une plateforme dédiée à la modernisation des applications en environnement hybride et multi-cloud. Anthos permet aux organisations de centraliser et d'uniformiser la gestion de leurs politiques, de leur sécurité, de leur configuration et de leurs applications conteneurisées sur l'ensemble des grands clouds, dans des environnements virtualisés on-prem, et désormais sur du bare metal (en edge). Ils étaient convaincus que rapprocher le traitement de leurs clients résoudrait ce problème de latence — et puis c'était la nouveauté à la mode.
Le problème du coût de stockage cloud
On imagine sans peine à quelle vitesse le stockage peut s'accumuler quand on conserve des flux vidéo (parfois pendant des années) provenant de caméras dans toutes ces usines à travers le monde. Chaque flux générait environ 700 Mo par heure en 720p au format H.264, même après multiplexage et compression. Ils traitaient 130 heures par semaine, par usine.
L'entreprise utilisait alors des buckets de stockage cloud en classe standard, et les coûts ne cessaient d'augmenter. Ils cherchaient également des conseils pour gagner en efficacité.
Revue de l'architecture
Le client a partagé son écran et un schéma d'architecture pendant qu'un autre membre de notre équipe d'architecture cloud et moi-même observions.
"Les flux en direct arrivent et nous les stockons dans des buckets Google Cloud Storage avant de les traiter. Nous avons construit un réseau de neurones de deep learning sur mesure avec 1 GPU par flux, qui identifie le début et la fin de chaque action. Les données produites sont stockées dans Google Cloud Bigtable, puis interprétées par la logique métier", expliquent-ils. "Le délai est de 4,5 secondes, dont plus de 3 secondes dans le réseau de neurones. Nous découpons la vidéo entrante en images pour les envoyer au réseau de neurones, puis nous ré-encodons la vidéo."
Attendez, quoi ? "Pouvez-vous nous expliquer pourquoi vous ré-encodez la vidéo ?"
"Ah, cela remonte à de mauvais choix initiaux : à la réception de la vidéo, nous supprimons les timestamps. Nous devons donc la ré-encoder après l'inférence pour produire le flux annoté."
"Combien de temps prend le ré-encodage ?", demande mon collègue.
"Un peu plus de 2 secondes", répondent-ils.
"Et combien de temps faut-il pour détecter une erreur ?"
"Environ 1 à 1,5 seconde."
Bingo !
À cet instant, il était clair que déplacer leurs workloads vers l'edge avec Anthos ne résoudrait pas leur problème. Ce n'était pas un problème réseau, mais un problème applicatif.
Solution proposée pour la latence
Après avoir examiné leur architecture, nous avons identifié deux pistes à explorer. La première : revenir sur la raison pour laquelle ils retiraient les timestamps à la réception et envisager de supprimer cette étape. La seconde : dissocier les alertes du ré-encodage et envoyer l'alerte immédiatement, sans attendre la fin de l'encodage.
Ils ont accepté d'orienter leurs ingénieurs sur ces pistes et de mettre Anthos en attente, du moins pour le moment. Nous avons également appris qu'ils avaient des clients qui, pour des raisons de conformité, ne souhaitaient pas que leurs flux quittent leur usine. Anthos On-Prem reste donc une option viable à explorer dans un avenir proche, mais pour l'instant, nous voulions répondre à leurs besoins immédiats.
Nous avons aussi identifié des pistes d'économies : traiter plusieurs flux avec un seul GPU et, en séparant l'inférence/alerte du ré-encodage, ils n'auraient plus besoin de machines aussi puissantes.
Solution proposée pour le stockage
Lors de la revue initiale, ils ont expliqué qu'ils utilisaient le stockage en classe standard et n'exploitaient pas encore les classes à coût réduit pour les accès moins fréquents. Un gain facile sur lequel nous étions d'accord : tirer parti de la gestion du cycle de vie des objets Google Cloud Storage pour basculer automatiquement les objets vers des classes moins coûteuses en fonction de leur âge ou de leur fréquence d'accès.
Le client était ravi et prévoyait déjà d'explorer cette piste, mais je voulais aller un peu plus loin pour voir si nous pouvions lui apporter d'autres gains. En les écoutant décrire le format H.264, je me suis souvenu d'une conférence récente avec, entre autres, les pionniers de l'IA Ian Longellow et Andrew Ng, sur les cas d'usage des réseaux antagonistes génératifs (GAN) au-delà des deep fakes — l'un d'entre eux étant l'amélioration de la compression vidéo.
Je leur ai proposé d'envisager le recours aux GAN pour réduire encore le volume de données à conserver lors de l'archivage de ces vidéos. Ils ont reconnu le potentiel de l'approche et étaient très satisfaits de nos suggestions. Leurs ingénieurs sont repartis avec des pistes concrètes, et j'ai hâte de faire le point sur les avancées prochainement.
Encore une revue d'architecture réussie !

Cet exemple récent illustre ce que vous pouvez attendre d'un Senior Cloud Architect chez DoiT International. Nous offrons aux Engineers de nos clients une couche de support personnalisée façon Stack Overflow et les aidons à résoudre leurs problèmes en deux fois moins de temps que la plupart des supports proposés par les fournisseurs cloud. Nous accompagnons aussi la montée en compétences des collaborateurs de nos clients via des formations cloud. Et, comme dans cet exemple, nous contribuons à l'optimisation des coûts et aux revues d'architecture (infrastructure, data, ML ou IA, et architecture logicielle).
Si cela vous intéresse, je vous invite à consulter notre page Carrières ou à m'envoyer un message sur Twitter ou LinkedIn. Nous recherchons les meilleurs profils, notre processus de sélection est donc exigeant — mais une fois la porte franchie, vous découvrirez vite que DoiT International est une entreprise unique en son genre (à mi-chemin entre éditeur et cabinet de services). J'ai hâte de travailler bientôt avec vous, en tant que client ou collègue.