Qu’est-ce qu’un développeur d’edge computing ?

The programmer girl works at the computer


Image : Contenu savoureux/Adobe Stock

Les développeurs d’applications logicielles sont souvent considérés comme des solitaires, des non-conformistes et des types reclus, aimant travailler dans des environnements solitaires – s’il y avait un parallèle avec la vie à la périphérie, les programmeurs l’incarneraient déjà, donnant aux ingénieurs logiciels une affinité naturelle pour le codage en périphérie environnements informatiques.

Tous les développeurs sont pareils. C’est une déclaration controversée, mais au moins elle s’applique si nous convenons que tous les développeurs d’applications logicielles sont des créatures d’habitude : ils ont tous une approche exhaustive du détail, ils partagent un type de cerveau naturellement analytique adepte de la résolution de problèmes, et la plupart ont un prédilection déconcertante pour les sodas et les pizzas.

Mais bien sûr, tous les développeurs ne sont pas les mêmes. Certains se concentrent sur les interfaces supérieures de la «couche de présentation», certains sont des spécialistes des réseaux, certains sont des gourous de la plate-forme de base axés sur la fonctionnalité et les performances, tandis que d’autres encore sont des architectes de systèmes, des testeurs de pénétration, des champions de la science des données, etc.

VOIR: Kit de recrutement : développeur Python (TechRepublic Premium)

Mais les développeurs ne sont pas seulement classés selon la nature de leur spécialité d’ingénierie, ils se distinguent également en vertu de la surface de mise en œuvre à laquelle leur travail s’applique. Certains se concentreront sur les smartphones, d’autres sur les ordinateurs de bureau, d’autres sur les systèmes embarqués et d’autres sur les applications cloud natives susceptibles de couvrir tous les domaines.

Intégrer la pointe évolutive

Au sein de ce dernier groupe de codeurs, nous trouvons les piliers de l’informatique embarquée souvent mal aimés. Proche des développeurs Edge, les développeurs embarqués ne sont pas tout à fait les mêmes, car ils ont historiquement défini leur rôle pour se concentrer sur tout, des systèmes de chauffage domestique aux trackers de fitness et peut-être même à la télécommande de votre télévision.

Mais comme nous le savons, ces appareils embarqués eux-mêmes chevauchent désormais l’Internet des objets. Les ordinateurs des kiosques d’aéroport traitent en temps réel, les systèmes embarqués sont désormais connectés à une connexion Web, les machines de transport en commun et de perception des tarifs ont un lien intermittent avec le cloud, et les robots d’usine et les systèmes médicaux fonctionnent désormais de manière permanente, plan de données toujours connecté.

Une partie de l’informatique embarquée sera toujours connue sous le nom d’informatique embarquée, mais bon nombre de ces appareils – et, en particulier, les capteurs et les jauges qu’ils contiennent – formeront désormais la structure de ce que nous appelons la périphérie informatique. C’est ainsi que la périphérie est différente de l’informatique embarquée et différente de l’informatique distribuée. Ce ne sont pas seulement des machines qui sortent du centre de données, ce sont des machines qui effectuent un travail spécifique.

Comme TechRepublic nous l’a déjà appris : “L’informatique de périphérie est différente [to distributed computing] en raison de la façon dont l’informatique de périphérie est liée aux données IoT collectées à partir de capteurs distants, de smartphones, de tablettes et de machines. Ces données doivent être analysées et rapportées en temps réel afin que leurs résultats soient immédiatement exploitables pour le personnel sur le site. »

Toute cette exposition explicative est donc terminée, s’il s’agit d’un nouveau substrat opérationnel dans lequel le code logiciel existe, alors qu’est-ce qui fait un développeur de pointe ?

Qu’est-ce qui fait un développeur Edge ?

“Lorsque nous parlons d’appareils périphériques, nous parlons bien sûr de rapprocher le traitement et l’analyse des données de l’appareil”, a déclaré Alessandro Chimera, directeur de la stratégie de numérisation de la société de plateforme de données d’entreprise Tibco. “Cela nous donne naturellement une chance de réduire la latence et d’augmenter les temps de réponse des logiciels de pointe.”

En nous rappelant que tant d’appareils de périphérie sont installés dans les voitures connectées, Chimera souligne qu’il y aurait trop de latence pour se connecter à n’importe quel type de service cloud dans ces environnements – et de toute façon, cette action serait rendue impossible si la voiture est dans un tunnel. Ainsi, à bien des égards, nous parlons d’inverser notre notion moderne d’informatique connectée en permanence.

« Tout cela signifie que les développeurs de périphérie doivent réfléchir à la quantité de données qu’ils renvoient à un centre de données cloud à un moment donné ; ils doivent réfléchir plus attentivement aux données qui peuvent être traitées localement », a ajouté Chimera. « Lorsque les périphériques de périphérie sont limités en puissance, les développeurs de périphérie doivent penser à l’utilisation de la batterie lorsqu’ils conçoivent et créent leurs applications de périphérie. La transmission vers le cloud consomme de l’énergie, donc si une application peut différer une connexion d’une fois toutes les 15 minutes à une fois toutes les heures – en particulier lorsqu’elle n’est pas critique en termes de temps ou de mission en termes de fonctionnalité de l’application – alors cela fait du bon sens technique .”

Joe Drumgoole, directeur principal des relations avec les développeurs chez MongoDB, est largement d’accord avec les sentiments de Chimera mais pense que nous sommes déjà venus ici.

“Développeurs Edge : Quelle notion pittoresque et chimérique”, a déclaré Drumgoole. “J’ai grandi avec le langage de programmation Ada, qui a été spécialement conçu pour cette idée de développeurs Edge. À l’époque, on les appelait ingénieurs temps réel ou développeurs de systèmes embarqués. Le langage Ada est en grande partie relégué à l’histoire, mais le développement de pointe a encore bon nombre des mêmes contraintes. Cependant, maintenant, les outils sont meilleurs, les langages sont plus diversifiés et le monde construit des boîtes à outils pour les développeurs de pointe.

Mais Drumgoole est philosophique sur l’état de l’évolution et des progrès des logiciels en général et pense que certaines choses ne changent pas. Comme nous le savons, les capteurs de bord sont souvent de simples unités matérielles qui exécutent un programme unique relativement simple. Les contraintes de mémoire sont réelles – qui exécute un programme Python aujourd’hui s’inquiète de la consommation de mémoire ? — mais les difficultés de travailler sur du matériel sans écran, clavier ou souris demeurent.

“C’est la source de la torture et de la joie de la programmation de pointe”, a déclaré Drumgoole. « Il y a quelque chose de très honnête dans la gravure de périphériques de mémoire programmables en lecture seule. Cela fonctionne ou non, et le coût d’un non-fonctionnement peut être dramatique. Les meilleurs programmeurs de pointe comprennent le matériel et les logiciels, ne sont pas opposés à un peu de soudure, peuvent lire un oscilloscope et se souviennent encore de la loi d’Ohm.

Comment gérer des micro-clusters massifs

Beaucoup de choses changent dans cet espace. Aujourd’hui, un développeur Edge doit comprendre nativement les meilleures pratiques de développement cloud natif. Plus fondamentalement peut-être encore, ils doivent être conscients des adaptations qu’ils devront effectuer pour respecter le caractère unique de la périphérie.

Le directeur général de Edge chez SUSE, Keith Basil, pense que cela peut être assez difficile. Il dit que c’est parce qu’il combine des ensembles de compétences provenant d’industries généralement disparates, toutes nécessaires dans une seule équipe. Avec son équipe edge dédiée, SUSE possède une expérience spécifique dans ce domaine ; il y a même une suggestion ici que nous devrions peut-être penser aux zones périphériques bien peuplées avec un nouveau terme.

“Dans un sens DevOps, l’idée [of edge as] un ensemble de « micro-clusters » à grande échelle a un impact considérable », a déclaré Basil. “Ici, nous voyons les développeurs devoir travailler avec de nouvelles contraintes lors de la création de logiciels dans des conteneurs, qui doivent tous prendre en compte différentes architectures de processeur, une mémoire limitée et des tailles de disque plus petites trouvées sur le matériel à la périphérie.”

Avec la périphérie, les clusters Kubernetes sont exécutés sur un site distant et les appareils IOT industriels sont des pairs sur le même réseau.

“En tant que développeur Edge, l’une des premières questions qui me vient à l’esprit est celle de la connectivité à ces appareils IIOT”, a déclaré Basil. “Est-ce qu’on intègre la prise en charge du protocole IIOT dans l’application, ou est-ce qu’on étend un projet open source existant pour gérer la gestion de l’accès aux appareils à la place?”

C’est la partie la plus difficile de l’informatique de pointe : une partie de cette discussion est encore ouverte au débat, telle est la nature encore naissante de tant de déploiements.

Edge : vitesse, ressources et intelligibilité

Étant donné que les capteurs de périphérie sont conçus et en effet nécessaires pour fournir des données extrêmement rapidement en temps réel ou quasi réel dans des espaces de calcul très contraints, il est assez clair que chaque microgramme de puissance compte. Selon Alan Jacobson, responsable des données et de l’analyse chez Alteryx, société d’analyse et de science des données en libre-service, les principaux domaines d’intervention d’un développeur Edge sont triples : vitesse, ressources de calcul restreintes et intelligibilité.

Dans le cas du partenaire technologique d’Alteryx, McLaren Racing, chaque voiture de course de Formule 1 dispose de quelque 300 capteurs de télémétrie qui fournissent plus de 100 000 paramètres de piste tout au long d’un week-end de course. D’énormes ensembles de données sont envoyés dans le monde entier en quelques secondes pour certains types d’analyses, tandis que dans d’autres cas, les données sont utilisées soit au sol, soit analysées sur le véhicule.

Avec de tels volumes de données de capteurs de bord générés, il n’est pas toujours viable d’apporter des données à l’analyse. Disposer de plates-formes analytiques qui permettent à l’utilisateur de déplacer la puissance de calcul là où elle est nécessaire est essentiel dans un monde défini par des données volumineuses, un calcul rapide et le besoin de systèmes résilients. L’analyse de ces grands ensembles de données est ce que fait Alteryx.

“Cette exigence de vitesse nécessite une technologie compréhensible par les développeurs et les experts du domaine”, a expliqué Jacobson. “Toutes les informations générées sont inutiles si l’ingénieur au sol n’est pas en mesure de les comprendre facilement. Pour l’edge computing où la rapidité d’accès aux informations est essentielle, il y a peu de temps pour l’assurance qualité sur les résultats – les informations sont soit immédiatement utiles, soit elles sont ignorées. Des développeurs flexibles qui savent quand sortir des calculs ou importer des données. »

Le développement Edge est toujours un développement

Si nous avons peint une image d’une nouvelle zone informatique dystopique où les développeurs de pointe font ce qu’ils font d’une manière beaucoup plus clinique et granulaire, ne rampant qu’occasionnellement vers le haut hors du marais primordial pour se nourrir de pizza et de soda, alors ce serait faux.

VOIR: Kit de recrutement : Développeur Back-end (TechRepublic Premium)

Le développement Edge est toujours en fait le développement d’applications logicielles, déclare Chris Darvill, vice-président des solutions EMEA et de la société d’API cloud native Kong.

“Les exigences des développeurs de pointe ne sont pas différentes de celles de votre développeur plus traditionnel à l’avenir, et à l’avenir, ce ne sera pas l’un ou l’autre, mais en fait, les deux seront nécessaires pour fournir des solutions sur le marché”, Darvill a dit. “Les développeurs Edge devront utiliser des pratiques de développement modernes caractérisées par des API bien définies pour accélérer la création de nouvelles applications et de nouveaux services grâce à la réutilisation des API Edge et centralisées existantes – et ils devront également adopter des outils cohérents qui peuvent être utilisés pour assurer les normes appropriées sont appliquées aux applications en cours de développement en mettant l’accent sur la sécurité, la gouvernance et l’observabilité.

Oui, il y aura probablement une utilisation accrue des microservices, des conteneurs et de Kubernetes dans la programmation de logiciels en périphérie. Et, indéniablement, pratiquement tous les travaux d’ingénierie logicielle dans cet espace devraient être poussés vers un statut natif du cloud, même lorsque le calcul sur site se produit.

Mais le développement en périphérie reste du code, et peut-être que dans 10 ans, nous l’accepterons comme faisant partie de l’éventail des compétences de codage que chaque développeur est censé être en mesure de présenter et d’exécuter, tout comme le développement mobile fait désormais partie de l’establishment. aujourd’hui.

Le code sur le bord s’affûte, tout comme les outils et les ensembles d’outils, alors assurez-vous d’emporter des gants tout temps.

Leave a Comment