Qu’est-ce qu’une application edge-native ?


  • Français


  • Nuage natif. Ces deux mots simples ont redéfini la façon dont nous créons, déployons et même consommons des logiciels. Il y a vingt-cinq ans, quand j’avais des cheveux que je pouvais tirer en cas de problème avec mon code, l’idée que j’utiliserais une suite bureautique contenue dans mon navigateur Web aurait ressemblé à de la science-fiction. Et pourtant, nous y sommes. Fini le temps où l’on installait une suite bureautique à partir d’une pile de disquettes. Naturellement, l’écart de trois ou quatre ans entre les sorties appartient également au passé. De nos jours, de nouvelles fonctionnalités peuvent apparaître n’importe quand et n’importe où, sans aucune installation requise. C’est un euphémisme de dire que la vitesse de l’industrie du logiciel a augmenté d’un ordre de grandeur.

    Cette évolution est une formidable réussite de mon point de vue. Bien sûr, si vous êtes un peu plus jeune que moi ou même un de ces développeurs “cloud-native” qui n’ont jamais rien expérimenté d’autre, vous voyez sûrement les choses différemment. À ce point, natif du cloud est de facto la façon dont les choses sont faites – même pour moi. Ce n’est pas excitant ou nouveau, juste supposé. Cependant, il existe encore des applications vivant en dehors du cloud. Ces applications impactent de plus en plus nos vies personnelles et professionnelles. Vous voyez, le logiciel mange le monde. Et cela signifie que les applications natives du cloud sont de plus en plus complétées par des applications natives de périphérie.

    Dans cet article, je définirai les applications edge et décrirai leurs caractéristiques. Mais avant d’en arriver là, il est important de comprendre en quoi les environnements cloud et edge diffèrent.

    Quelle est la différence entre la périphérie et le cloud ?

    Nous sommes de plus en plus entourés d’objets du quotidien propulsés par des logiciels. C’est pourquoi je pense que le terme Internet des objets sera éventuellement remplacé par Tout défini par logiciel. Cette idée a de profondes implications sur la manière dont les applications et les services sont construits. Dans la plupart des cas, connecter les choses directement au cloud n’a pas de sens. Ce concept est là où informatique de pointe entre en jeu. L’Edge Computing, à la base, fournit des capacités de calcul, de mise en réseau et de stockage à la frontière du réseau, plus près de la source des données. Il permet de réduire la latence et d’optimiser l’utilisation de la bande passante. Il rend les applications plus résilientes et permet aux utilisateurs de contrôler l’emplacement physique de leurs données.

    La périphérie et le cloud sont deux environnements informatiques très différents. Le cloud est défini par la disponibilité à la demande des ressources. Vous pouvez créer de nouvelles instances de machine virtuelle, ajouter de la capacité réseau ou modifier la topologie du réseau à tout moment. Les ressources cloud sont naturellement limitées, mais ces limites sont si élevées que la plupart des utilisateurs ne les rencontreront jamais. Par nature, le cloud est hétérogène, centralisé et à grande échelle.

    • Hétérogène : Le cloud est hétérogène puisque les ressources de calcul disponibles rentrent dans plusieurs types prédéfinis. Il est possible de créer des centaines voire des milliers d’instances du même type, toutes identiques sauf si elles sont personnalisées. Du point de vue d’un développeur, ils représentent une plate-forme matérielle stable et prévisible.
    • Centralisé : le cloud est centralisé. Vous pouvez déployer des ressources dans des centres de données ou des zones géographiques spécifiques, mais tout est géré depuis une console centrale.
    • À grande échelle : Enfin, le cloud est par nature un environnement à grande échelle. Votre déploiement spécifique peut être petit, mais les ressources à votre disposition sont immenses en termes de capacité et de performances.

    Le bord est l’opposé polaire du nuage. Il est hétérogène, distribué et à petite échelle. Lors de la conception de solutions informatiques de pointe, il est essentiel de choisir le bon matériel pour le travail. En particulier, les appareils fonctionnant sur batterie nécessitent une efficacité énergétique de premier ordre, ce qui signifie que les processeurs basés sur l’ARM et RISC-V les architectures sont beaucoup plus courantes que dans le cloud. De plus, de nombreux périphériques périphériques doivent interagir avec les équipements hérités ; ils comportent généralement des ports introuvables sur les équipements informatiques et exploitent des protocoles spécifiques à la technologie opérationnelle. Pour ces raisons, le matériel de périphérie diffère souvent d’un emplacement physique à un autre. Par définition, l’edge computing implique des applications distribuées ; le traitement des données est effectué dans divers emplacements physiques sur l’ensemble du continuum edge-to-cloud. Enfin, la périphérie est un environnement à petite échelle. Bien entendu, il est possible de déployer des milliers de nœuds périphériques pour prendre en charge une solution. Cependant, les ressources de calcul, de mise en réseau et de stockage seront sévèrement limitées dans n’importe quel endroit spécifique.

    Les distinctions entre les deux environnements signifient que les applications natives de périphérie diffèrent considérablement de celles natives du cloud. Examinons-les maintenant de plus près.

    Caractéristiques des applications natives Edge

    Les applications natives Edge partagent certaines caractéristiques avec celles natives du cloud. Les deux types d’applications reposent sur des microservices. Ils exposent les API, souvent de manière RESTful, ce qui permet la composition des services. Les deux types d’applications consistent en des services faiblement couplés. Cette conception empêche la création d’affinités entre les services et améliore la résilience globale de l’application. Enfin, les équipes tirant parti d’une approche DevOps axée sur l’intégration continue les construisent. Cependant, les applications natives en périphérie éviteront souvent un déploiement continu, en particulier pour les applications pilotées par des exigences en temps réel ou critiques.

    Les applications natives Edge possèdent naturellement des caractéristiques spécifiques qui les distinguent. Plus précisément, il s’agit de la durée de vie, de l’hétérogénéité et des contraintes.

    • Durée de vie : les applications natives Edge ont généralement une longue durée de vie. Les applications natives Edge impliquent généralement des investissements en capital importants, tels que des machines lourdes ou des équipements industriels. Cela signifie qu’ils doivent être entretenus et exploités pendant des années, voire des décennies.
    • Hétérogénéité : les applications natives Edge présentent une hétérogénéité. Ici, je ne fais pas uniquement référence au nœud périphérique lui-même, mais également à l’origine de tous les composants de la solution. Aucun fournisseur ne peut vous fournir les capteurs, les actionneurs, les microcontrôleurs, les nœuds périphériques, les logiciels et l’équipement réseau nécessaires pour créer et déployer une solution. Au minimum, vous devez traiter avec plusieurs fournisseurs avec des cycles de vie de support et des engagements différents pour votre marché particulier.
    • Contraintes : les applications natives Edge sont contraintes par les réalités auxquelles le matériel et les logiciels Edge sont confrontés sur le terrain. C’est un monde difficile en dehors du centre de données. La liste des menaces est longue : les températures extrêmes, l’humidité, les interférences électromagnétiques, la pénétration d’eau ou de poussière et les vibrations contribuent tous à raccourcir la durée de vie de l’équipement et à fausser les lectures des capteurs. La consommation d’énergie est également une préoccupation majeure, et pas seulement pour les appareils fonctionnant sur batterie. Une consommation plus élevée entraîne plus de chaleur, ce qui nécessite un système de refroidissement plus puissant qui, à son tour, représente un coût supplémentaire et un point de défaillance. Enfin, étant donné que les applications d’edge computing sont par nature distribuées, elles sont complètement dépendantes du réseau. Vous devez supposer que le réseau sera instable et peu fiable et concevoir la solution en conséquence.

    Une autre considération importante est que l’informatique de périphérie relie le monde de la technologie de l’information (IT) et de la technologie opérationnelle (OT). Ce dernier fournit les composants des systèmes de contrôle industriels utilisés pour faire fonctionner les usines, les pipelines, les systèmes de distribution d’eau et les parcs éoliens, par exemple. En d’autres termes, OT fait partie de l’univers technologique où les contrôleurs logiques programmables (PLC) et les systèmes de contrôle et d’acquisition de données (SCADA) règnent en maîtres. IT et OT incarnent deux approches différentes de l’informatique. L’informatique s’appuie sur des composants prêts à l’emploi qui sont remplaçables et mis à jour fréquemment. Un cycle de vie de trois ans pour les ordinateurs portables est courant dans de nombreuses organisations. D’autre part, OT concerne des solutions spécialement conçues pour contrôler l’infrastructure critique, ce qui signifie que les mises à jour sont peu fréquentes. Ainsi, on pourrait dire que, pour de nombreuses organisations, l’informatique est un service à l’entreprise, tandis que l’OT est l’entreprise elle-même.

    Toutes les applications natives de périphérie ne ciblent pas les cas d’utilisation OT. Mais comme ils peuvent exister en dehors du cloud et du centre de données de l’entreprise, ils sont exposés à de nombreux dangers auxquels les applications OT doivent faire face et doivent répondre à bon nombre des mêmes exigences. Cela nécessite un changement d’état d’esprit de la part des développeurs.

    Définition de edge-native

    Nous avons maintenant une solide compréhension de l’environnement de périphérie et des caractéristiques des applications natives de périphérie. Il est maintenant temps de répondre à la question posée dans le titre de cet article : qu’est-ce qu’une application edge-native ?

    Ma réponse à cette question est la suivante :

    Une application distribuée composée de microservices virtualisés ou conteneurisés qui sont déployés en dehors du cloud et du centre de données de l’entreprise. Les applications Edge-native sont optimisées pour une utilisation sur le terrain, résilientes, adaptées à la mobilité, orchestrées et exploitent des modèles opérationnels Zero Trust et Zero Touch.

    Cette définition implique qu’il ne suffit pas d’avoir des nœuds distribués traitant les données localement pour avoir une application edge-native. De telles applications, après tout, sont construites à partir de zéro pour la périphérie en utilisant une approche spécifique. Pensez-y : un site Web transactionnel aléatoire est-il une application cloud native ? Bien sûr que non.

    Optimisé pour une utilisation sur le terrain

    Parce qu’elles s’exécutent souvent sur du matériel limité, les applications natives de périphérie sont optimisées en termes de taille et de consommation d’énergie. Il y a peu ou pas d’élasticité à la périphérie, ce qui signifie que vous devez gérer les ressources avec soin, en particulier compte tenu de la durée de vie plus longue attendue de la solution. Vous pourriez être tenté de pérenniser vos nœuds périphériques en leur fournissant une puissance de calcul, une mémoire et un stockage supplémentaires. Cependant, cela n’est pas rentable et, en tout état de cause, ne sera probablement pas viable à long terme.

    Résilient

    Les applications natives Edge possèdent une grande résilience, compte tenu de leur nature distribuée. Ils supposent que les nœuds, les services et même le réseau peuvent échouer à tout moment. Ils gèrent ces pannes de la manière la plus transparente possible en mettant en mémoire tampon les transactions et les données sortantes pour plus tard. Les nœuds situés à proximité d’un système défaillant devraient pouvoir prendre le relais, mais avec une qualité de service réduite.

    Adapté à la mobilité

    Les applications natives Edge peuvent se connecter aux réseaux mobiles et être déployées sur des nœuds à bord des véhicules. Ils sont sensibles à la localisation, ce qui signifie qu’ils peuvent tirer parti de manière dynamique des services disponibles dans l’environnement local. Ils peuvent également adapter leur comportement en fonction des réglementations et exigences locales. De plus, ils peuvent tirer parti du routage basé sur la localisation en cas de besoin. Cela leur permet de choisir l’option la plus rentable pour transmettre des données et recevoir des commandes.

    Orchestré

    Les composants des applications natives de périphérie peuvent être déployés à l’intérieur de conteneurs, mais les machines virtuelles, les fonctions sans serveur et les fichiers binaires jouent également un rôle. Le cycle de vie de tous ces artefacts de déploiement doit être orchestré avec soin pour augmenter ou réduire certains services ou pour organiser des mises à jour incrémentielles. Naturellement, cette dépendance à l’orchestration rend l’ensemble de l’application plus résiliente puisque des instances de service supplémentaires peuvent être lancées pour faire face à des conditions défavorables ou à des défis opérationnels.

    Zéro confiance

    Le confiance zéro implique que, par défaut, aucun appareil n’est approuvé. Chaque appareil et nœud est considéré comme un vecteur d’attaque potentiel. Le modèle de confiance zéro implique une authentification et une autorisation systématiques des appareils, avec des limitations sur la portée et la durée de l’accès accordé. De plus, les données doivent être chiffrées en mouvement et au repos.

    Zéro contact

    Les applications natives Edge nécessitent des informations d’identification pour l’authentification, l’autorisation et même l’attestation de l’appareil. Ce dernier implique l’utilisation de certificats ou de moyens similaires pour prouver l’identité unique et la fiabilité d’un appareil. L’intégration sans contact signifie que ces informations d’identification sont déployées automatiquement à partir d’un emplacement central dès qu’un appareil se connecte au réseau. Les manipulations manuelles sont sujettes aux erreurs et sont des vecteurs d’attaque potentiels. Leur élimination est donc une priorité importante.

    Conclure

    Si vous êtes un développeur natif du cloud, j’espère que vous réalisez maintenant à quel point l’espace informatique de pointe diffère de ce que vous connaissez. Ces différences ne doivent cependant pas vous empêcher de vous lancer. Les langages et les techniques que vous connaissez sont certainement applicables à la périphérie. Avec le bon état d’esprit et la volonté d’apprendre, vous pouvez devenir un développeur natif de pointe productif.

    Si vous recherchez une communauté de développeurs edge-native expérimentés avec qui entamer une conversation, rejoignez le Groupe de travail Edge Native au Fondation Éclipse.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code