Avril 2025 : 7 ans d'Astarté. Rétrospective et développement futur.

En 2018, Astarte a entrepris de changer la façon dont les entreprises exploitent les données IoT.

Au cours des sept années suivantes, Astarte est devenu un pilier des applications IoT industrielles dans le monde entier. La demande croissante a été alimentée par un changement rapide du marché vers des modèles de servitisation, stimulé par la valeur croissante des données extraites des appareils sur le terrain ; les entreprises recherchaient des solutions qui pouvaient non seulement rationaliser les opérations dans le domaine de l'automatisation industrielle, mais aussi créer des flux de revenus durables et récurrents. Astarte a permis aux entreprises de dépasser les ventes de matériel ponctuelles en permettant des modèles de service flexibles basés sur l'abonnement, fournissant une plateforme robuste d'orchestration de données conçue pour conduire cette transformation.

Aujourd'hui, Astarte se tient comme la plateforme d'orchestration de données au sein de la suite logicielle Clea, permettant aux entreprises du monde entier d'exploiter tout le potentiel de leurs appareils connectés, de rationaliser les opérations et de stimuler l'innovation grâce à une gestion des données fluide. Découvrons l'histoire de sa naissance.

La naissance d'Astarte : passer de l'appareil aux données

Ispirata Srl, une jeune entreprise fondée en 2012 et plus tard acquise par SECO Spa, a d'abord concentré ses efforts sur le développement et la commercialisation de HemeraOS.

HemeraOS était une plateforme open-source conçue pour simplifier le développement d'applications pour les appareils embarqués, répondant aux défis de la configuration, de l'audit à distance et de la gestion des appareils. Construit autour de Qt5, HemeraOS fournissait un kit de développement logiciel (SDK) complet incluant tous les outils nécessaires au développement d'applications, prenant en charge plusieurs langages de programmation via des liaisons ou des applications proxy. Il prenait en charge plusieurs systèmes d'exploitation, y compris Linux et Windows, et fournissait un installateur universel testé sur des plateformes comme Ubuntu 14.04 LTS et Windows 7 et suivants. Le SDK comportait également un aperçu du plugin Qt Creator, offrant un environnement de développement intégré pour les applications Hemera. Dans l'ensemble, HemeraOS visait à rationaliser le développement d'applications embarquées en fournissant une plateforme sécurisée, indépendante du matériel, avec des capacités de communication robustes, répondant ainsi à de nombreuses complexités inhérentes au développement de systèmes embarqués. Malgré ses capacités, HemeraOS manquait de la capacité de prendre en charge l'orchestration de données IoT à grande échelle.

Il est devenu de plus en plus clair que la prochaine grande opportunité résidait dans la fourniture aux entreprises des moyens d'exploiter leurs données IoT sur le terrain pour offrir des services à valeur ajoutée à leurs clients, une plateforme middleware capable d'orchestrer et de consommer les données générées par les appareils en informations exploitables pour les pipelines AI/ML. À l'époque, de nombreux proof-of-concepts (PoC) IoT étaient construits sur Kubernetes, mais l'équipe d'Ispirata voulait créer un middleware qui abstrait les complexités de Kubernetes et donne aux développeurs de produits intelligents un moyen de s'intégrer facilement à leur pile et aux logiciels tiers. Grâce à sa licence ouverte, Astarte se présenterait comme un choix robuste mais non engageant pour les projets de proof-of-concept qui, une fois réussis, pourraient évoluer sans heurts vers des déploiements en production complète. L'équipe d'Ispirata s'est mise à construire une solution évolutive, flexible et, surtout, conviviale pour les développeurs. Au fur et à mesure que le projet évoluait, l'équipe a construit un PoC en Java, profitant de son écosystème et de la familiarité des développeurs. Alors qu'Elixir commençait à gagner du terrain, l'équipe d'Ispirata a rapidement reconnu son potentiel pour améliorer l'architecture d'Astarte. Compte tenu des exigences des applications IoT - gérer un grand nombre de connexions simultanées, assurer la fiabilité et gérer efficacement les données distribuées - les forces d'Elixir sont devenues de plus en plus évidentes. Sa grande concurrence, sa tolérance aux pannes intégrée et ses processus légers en faisaient un choix idéal pour une plateforme qui devait évoluer sans heurts. Reconnaissant les avantages d'Elixir, Astarte est passé d'un système Java monolithique à une architecture basée sur des microservices alimentée par Elixir et la machine virtuelle BEAM, améliorant l'évolutivité et la résilience.

Réingénierie avec Elixir

Après la phase de PoC, le développement d'Astarte s'est concentré sur l'évolutivité, la résilience, la facilité de déploiement, l'interopérabilité et la convivialité.

Avec son approche de gestion des données déclarative, Astarte exige que les utilisateurs définissent les structures de données avant la transmission en utilisant des interfaces. Les interfaces dans Astarte définissent comment les appareils communiquent avec la plateforme, assurant un échange de données structuré. La gestion des versions garantit que les mises à niveau ne cassent pas la compatibilité, rendant Astarte adaptable pour les déploiements IoT à long terme. Cette approche assure une gestion automatisée des schémas et une séparation claire des préoccupations entre les producteurs et les consommateurs de données. Les interfaces sont versionnées en imitant le versionnage sémantique - des changements arbitraires peuvent se produire exclusivement entre différentes versions majeures (par exemple, suppression de membres, changement de types, etc.), tandis que les versions mineures permettent uniquement des changements additifs incrémentaux (par exemple, ajout de membres), permettant des mises à niveau fluides et une compatibilité ascendante pour les déploiements IoT. Ce modèle permet une intégration transparente des données dans les applications tout en simplifiant les complexités de la gestion des bases de données et de la validation des données.

Astarte est principalement écrit en Elixir et suit une architecture de microservices répliquée, rendant chaque composant autonome. Cela permet à des parties du système de tomber en panne sans perturber l'ensemble de l'infrastructure. Les services communiquent via une API basée sur Protobuf sur AMQP, permettant une extensibilité inter-langages. Astarte suppose que les appareils échangent des données via un transport ou un protocole prenant en charge SSL/TLS, tel que MQTT, ce qui assure une communication sécurisée et une authentification fiable des appareils via des certificats SSL clients. Chaque implémentation de transport doit être capable de mapper des interfaces et des messages hors bande par-dessus. Cependant, Astarte lui-même reste agnostique aux détails de l'implémentation de la couche de transport, car son rôle est de traiter les messages AMQP conformes à sa spécification API interne. L'implémentation de transport officielle et recommandée pour Astarte est MQTT, utilisant VerneMQ avec son plugin Astarte dédié pour faciliter une communication fluide et évolutive entre les appareils et la plateforme.

La plupart des plateformes existantes adoptent une approche verticale. Elles sont conçues pour servir une industrie spécifique, voire une seule ligne de produits. Contrairement aux plateformes IoT intégrées verticalement, Astarte ne restreint pas les appareils à une fonction prédéfinie. Au lieu de cela, il représente simplement tout appareil électronique capable de se connecter - qu'il s'agisse d'un réfrigérateur industriel, d'un routeur ou d'un satellite, etc. Chaque appareil se voit attribuer un identifiant unique de 128 bits, garantissant une identification cohérente et une gestion fluide.

Les SDK d'appareils peuvent tirer parti de la conception des interfaces pour générer dynamiquement du code pour échanger des données avec Astarte, et sont fournis en ciblant de nombreux langages de programmation et appareils, du C adapté aux petits MCU tels que ESP32 ou ZephyrOS, Java pour prendre en charge les appareils Android, C++ sur la plateforme Qt, aux langages modernes tels que Rust et Go, implémentant la sécurité mémoire par conception, et bien d'autres (Python, Elixir, C#). De cette façon, les développeurs utilisant les SDK d'appareils sont épargnés de connaître les détails des transports et protocoles sous-jacents, et peuvent utiliser une API axée sur les données en utilisant le framework ou le langage avec lequel ils sont le plus à l'aise.

Astarte est conçu pour évoluer, s'intégrant nativement avec Kubernetes pour simplifier le déploiement et la gestion. Astarte est construit sur l'API standard de Kubernetes, ce qui signifie qu'il ne nécessite pas de déploiement sur un fournisseur de cloud ou un environnement spécifique. Qu'il soit déployé dans le cloud, à la périphérie ou dans des scénarios sur site et hybrides, Astarte s'intègre parfaitement à toute installation Kubernetes standard. Cette flexibilité garantit que les organisations peuvent tirer parti de leur infrastructure existante tout en bénéficiant des capacités d'évolutivité et d'orchestration d'Astarte. L'opérateur Astarte automatise les opérations de cluster, y compris les mises à niveau, la surveillance et l'évolutivité, optimisant les performances dans les déploiements cloud, edge et sur site. Même les développeurs non familiers avec Kubernetes bénéficient de son abstraction des opérations d'infrastructure complexes.

Astarte en production : applications réelles

Entre 2019 et 2021, Astarte a connu une adoption généralisée dans divers secteurs. Explorons deux cas d'utilisation réels où Astarte s'est révélé être la solution idéale pour nos clients.

Dans l'industrie des réseaux, Astarte a été essentiel pour permettre des communications IoT massivement évolutives et sécurisées, en particulier pour un client gérant de vastes réseaux de routeurs. Nous ne pouvons pas divulguer de noms, mais croyez-nous, vous avez interagi avec leur technologie d'innombrables fois. Ce client avait besoin d'une solution capable de s'adapter à des milliards d'appareils. Astarte répond à ce défi grâce à son intégration avec ScyllaDB, une base de données distribuée NoSQL haute performance connue pour sa latence ultra-faible et son débit élevé. ScyllaDB surpasse les bases de données traditionnelles, garantissant qu'Astarte peut gérer une ingestion massive de données et un traitement en temps réel pour les déploiements IoT à grande échelle. Dans la technologie médicale, un OEM fabricant d'équipements médicaux haut de gamme a utilisé Astarte pour passer des ventes d'appareils à un modèle de revenus récurrents. Au lieu de vendre des appareils directement, l'entreprise a mis en place un système basé sur des crédits. Les médecins pouvaient acheter des crédits d'utilisation via un tableau de bord en ligne, Astarte orchestrant l'arrière-plan pour gérer et suivre le temps de thérapie disponible sur une base d'appareil. Cela permettait aux médecins d'accéder à des traitements avancés sans coûts initiaux élevés, tandis que l'OEM bénéficiait d'un flux de revenus prévisible, tout en conservant la propriété de leurs appareils.

Unification sous la suite logicielle Clea IoT de SECO

Une étape majeure dans l'évolution d'Astarte est survenue en 2021 lorsque Ispirata Srl a été acquise par SECO SpA pour former SECO Mind, la filiale de SECO dédiée aux logiciels IoT de pointe.

Cette phase a conduit au développement d'Edgehog, un système de gestion d'appareils open-source construit sur Astarte, conçu pour superviser les cycles de vie des appareils IoT. Edgehog simplifie la gestion de flotte avec des fonctionnalités telles que les mises à jour de firmware OTA, la surveillance de l'état en temps réel, le suivi de la géolocalisation et l'accès au terminal à distance. Prenant en charge à la fois les systèmes basés sur Linux et les appareils ESP32, Edgehog offre une orchestration transparente des appareils à travers divers environnements matériels.

De plus, Clea Portal a émergé comme une extension prête pour l'entreprise d'Astarte, permettant aux organisations de gérer les utilisateurs, les applications et les projets IoT avec une interface utilisateur personnalisable et des applications plug-and-play basées sur JavaScript.

SECO a introduit la marque Clea, consolidant tous les composants sous une offre commerciale IoT unifiée tout en maintenant une approche middleware ouverte. Ce mouvement a positionné Astarte comme un acteur clé dans les solutions IoT industrielles, accompagné d'une offre modulaire de matériel et de logiciels.

Maintenant, c'est à vous

La plupart des composants logiciels de la suite Clea sont disponibles sur GitHub sous la licence permissive Apache 2. Cela signifie que, bien que ce soit l'histoire d'Astarte, vous pouvez certainement faire partie de son avenir. Visitez SECO.com pour en savoir plus sur son code et comment contribuer, ou pas. Utilisez simplement Astarte comme bon vous semble, même dans des projets commerciaux.

Que vous cherchiez à rationaliser vos opérations, à passer à des modèles commerciaux basés sur l'abonnement ou à intégrer une orchestration de données de pointe dans vos produits, SECO est là pour vous aider. Contactez-nous dès aujourd'hui pour découvrir comment nos solutions, y compris Astarte et la suite logicielle Clea IoT, peuvent transformer votre entreprise.