Le Cloud Computing s’empare de nos quotidiens, et on le retrouve déjà de façon plus ou moins exposée dans tout ce qui nous entoure : nos communications, nos informations, nos divertissements, et nos déplacements.
Pour autant, cette présence pas toujours discrète masque une réalité : tous les usages ne se prêtent pas à l’utilisation du Cloud tel qu’il est construit actuellement.
En effet, le Cloud Computing, c’est avant toute chose des fermes de serveurs démesurées, où les fournisseurs de service peuvent mutualiser au maximum l’ensemble des coûts fixe sur un très grand nombre de clients.
Les avantages sont multiples : économies d’échelle, coût de connectivité “unique”, une équipe maintenance centralisée et sur place, une politique durable plus facile à mettre en oeuvre car centrée sur des ressources localisées au même endroit,…
Et cela se traduit pour les clients par un coût relativement faible, avec des prestations de très bonne qualité.
Pour autant, il existe des écueils. En effet, pour un fournisseur, il s’agit d’un investissement très important et structurant, qui va lier ce dernier à une localisation géographique qui doit donc être déterminée avec beaucoup de soin : la dépendance à l’énergie sera forte, et les capacités réseaux disponibles doivent être importantes pour permettre une bonne exploitation commerciale.
Et pour le client, il existe un inconvénient de taille : la latence.
En effet, par extension, un fournisseur ne peut pas être présent partout, car ce n’est pas rentable.
Quand il s’agit d’applications de messagerie, ou de CRM, une latence de 100 à 200ms est totalement acceptable, car peu perceptible par les utilisateurs finaux.
Mais quid des usages de demain?
Des offres se développent aujourd’hui autour des usages multimédias à la demande (pensons à toutes ces entreprises qui proposent des formules de jeux vidéos à la demande sur abonnement, comme nVidia ou Shadow, mais qui peinent à trouver leur public).
Ces offres demandent une performance et surtout une latence extrêmement réduite pour offrir une expérience convaincante à l’utilisateur final, sous peine de frustrations.
Mais demain, l’enjeu pourrait être bien plus important.
Les industries font cause commune autour de la voiture autonome qui sera (nécessairement) connectée. La voiture autonome devra, par la force des choses, gérer l’ingérable (à savoir la coexistence pacifique avec des conducteurs humains imprévisibles).
Et cette voiture autonome devra être capable de traiter le plus rapidement possible, les données provenant de ces propres capteurs, mais aussi les informations de circulation provenant d’autres voitures et des infrastructures routières.
Soit une masse de données à traiter absolument colossale, pour un cerveau électronique probablement dépassé par la tâche.
Le Cloud apporte évidemment sa flexibilité et sa puissance pour sécuriser cet usage au quotidien, d’autant plus quand la voiture autonome sera encore peu présente sur les routes.
Mais quid d’une situation d’urgence? Et de la démocratisation de ces véhicules?
Devant la masse des données à traiter, et la limite des puissances de calcul et de réseau disponibles, le Cloud sera-t-il toujours capable de suivre cet usage?
La réponse est non…tant qu’on considère le Cloud sous sa forme actuelle.
En effet, il faudra parler d’Edge Computing, une évolution plus qu’une révolution du Cloud.
C’est un terme qui commence à faire le buzz, et dont les fondamentaux sont déjà présents dans le Cloud tel que nous le connaissons aujourd’hui. Ces fondamentaux sont par exemple le SDN (Software Defined Network), ou le Machine Learning.
Mais le Edge, au fond, qu’est-ce que c’est?
Il ne s’agit pas d’un nouveau mode de consommation des services IT comme le Cloud, mais d’une nouvelle façon d’adresser les usages au plus près de ces derniers, tout en garantissant un traitement efficace des données.
Si le Cloud Computing repose initialement sur une concentration des capacités de calcul dans un but d’efficacité économique, l’Edge Computing privilégie la décentralisation du traitement des données dans un but de performance.
En somme, d’un côté on privilégie les économies financières, de l’autre on privilégie l’usage.
Reprenons le cas de la voiture autonome.
La voiture autonome sera connectée, et devra échanger des informations avec les autres véhicules présents sur la route, ainsi qu’avec les infrastructures. Mais elle devra aussi cohabiter avec des véhicules non connectés, qui seront eux pilotés par des êtres déraisonnables et imprévisibles : des humains.
Lorsqu’on additionne les données qui seront traitées par la voiture autonome, on arrive rapidement à des quantités qui pèsent de façon importante sur les capacités de traitement de la seule voiture connectée. C’est à ce niveau que le Cloud peut apporter un complément de puissance pour sécuriser l’usage routier.
En plus de ces données, il faut prendre en compte la latence issue des échanges de données, qui ralentissent d’autant le traitement des données, et donc les capacités de réaction de la voiture autonome.
En introduisant le conducteur humain dans l’équation, on arrive rapidement à une situation dangereuse pour tout usager de l’espace public.
La voiture autonome, potentiellement débordée par le traitement des différentes informations issues des capteurs à son bord, des informations provenant des autres véhicules, et des informations provenant des infrastructures, doit en plus gérer un élément chaotique non prévu, et s’achemine vers une collision inévitable avec l’humain erratique.
Mais le drame est évité : la voiture autonome était connectée au centre de traitement des données adéquat, qui lui permet d’avoir un accès rapide (inférieur à 10ms) à des capacités de calcul supplémentaires afin d’échapper à l’accident, et accompagner ses passagers chez eux en toute tranquillité.
Le Edge Computing, c’est la mise à disposition de capacités de calcul et de stockage à proximité immédiate de l’usage dans un but d’amélioration des performances et des latences pour un besoin temporaire.
Le but n’est donc pas de maximiser une économie financière, mais d’apporter un surcroît de performance quand elle est nécessaire.
Dans le cas considéré, le recours au Cloud traditionnel aurait été catastrophique : le temps que la ferme de calcul transmette les informations traitées, la collision aurait eu lieu. En additionnant les temps de traitement des informations, la décision prise par la voiture autonome aurait été trop tardive.
Changeons de cas d’usage : l’analyse de flux vidéo.
Bon, présenté comme ça, c’est obscur.
Mais prenons l’actualité : en Chine, dans les KFC, les clients seront reconnus par leur visage sous réserve de disposer d’un compte Alipay. Ce qui fait qu’en arrivant en caisse pour régler la commande, le client n’a pas à sortir ni porte-monnaie, ni carte bancaire, ni téléphone pour payer sans contact.
Techniquement, comment est-ce possible?
Une caméra enregistre le passage d’un nouveau client, une analyse est menée à la volée pour trouver une correspondance dans la base de données Alipay.
Petit moment indigeste, je m’en excuse d’avance :
Une seconde d’enregistrement vidéo, c’est entre 24 et 60 images enregistrées (selon le format retenu et les capacités techniques des caméras).
Si le format d’enregistrement est le FullHD (1920×1080 pixels, soit plus de 2 millions de pixels par image), avec un format vidéo efficace (H264/H265 avec un débit correct), la résolution est suffisamment importante pour pouvoir mener une analyse d’image “telle quelle”, sans traitement particulier pour améliorer la qualité de l’image.
En revanche, si le format d’image est le 480p (640×480, ou VGA pour les plus anciens) dans un codec peu efficace (MPG par exemple), il sera nécessaire d’effectuer des traitements de mise à l’échelle et de nettoyage de l’image pour espérer pouvoir mener une analyse relativement efficace.
Et la, on ne parle pas de stockage ou de bande passante, mais uniquement de puissance de calcul à mobiliser. Si l’on prend en compte les questions de taille de données et de débit, il est impératif d’optimiser le traitement en le préparant en amont, en faisant appel à des algorithmes de compression des données plus efficaces, ce qui…mobilise encore plus de capacités de calcul.
Dans les faits, cela signifie qu’il sera nécessaire d’utiliser une puissance de calcul non disponible “naturellement” dans les caméras pour pouvoir effectuer l’analyse de flux.
Pour avoir un résultat d’analyse proche du temps réel, un ordinateur de bureau puissant ne sera pas suffisant.
Il faut donc utiliser le Cloud…ce qui va entraîner une latence qui ne sera peut être pas compatible avec une expérience utilisateur convaincante, dûe à l’analyse menée sur l’ensemble des flux vidéos des KFC de la région ou pire, du pays.
La solution passe par le Edge : en décentralisant le calcul au plus proche de la captation des données, il est possible de ne faire recours au Cloud que pour la comparaison avec la base de référence Alipay.
Pour industrialiser ce type d’usage, il est indispensable de travailler sur l’expérience utilisateur, et donc sur une réactivité proche du temps réél : c’est le levier le plus efficace pour susciter la satisfaction devant un processus innovant, et favoriser la récurrence de la consommation de ce service.
Pour cela, point de salut sans Cloud et surtout sans Edge : la clé du succès repose dans un recours adapté à chacun de ces modes de consommation des technologies.
Aujourd’hui, le Edge Computing n’est pas encore d’actualité pour une utilisation à grande échelle : les cas d’usages restent à affiner, et les technologies à perfectionner.
Pour autant, ce détournement du Cloud traditionnel au profit d’usages spécifiques est une représentation forte de l’informatique d’entreprise actuelle : l’usage est à considérer en premier, au détriment de technologies ou de dogmes spécifiques.
Il faut adapter non pas l’usage, mais ce qui encadre l’usage, afin que l’adéquation entre le contexte utilisateur et le contexte de l’entreprise soit maximale.