DocsComment ça marche ?GénéralFonctionnement Cadence.CI est une plateforme DevOps construite autour de trois principes : l’observabilité, la collaboration et la sécurité. Cette page présente l’architecture et les concepts qui sous-tendent la plateforme. Technologie centrale Cadence.CI repose sur Mélodium pour implémenter des pipelines distribués, en gérant les flux de données, les réactions aux événements et la gestion des processus de manière scalable, reproductible et tolérante aux pannes. Les flux de données comme entités de premier ordre Mélodium traite les flux de données comme l’unité fondamentale du calcul. Ces flux peuvent être distribués, transformés et traités sur plusieurs nœuds, permettant une gestion des données en temps réel et scalable. Ils sont typés et génériques, ce qui permet un code sûr et réutilisable pour différents types de données et environnements. Programmation événementielle et réactive Les traitements réagissent aux données ou événements entrants plutôt que de suivre un ordre d’exécution prédéfini. C’est particulièrement utile pour les pipelines d’intégration, l’analyse en temps réel et le traitement distribué des tâches, où l’exécution dépend de la disponibilité des données. Support multiplateforme Le système de distribution de Mélodium fonctionne sur des plateformes variées, des systèmes embarqués contraints aux infrastructures cloud à grande échelle. Des couches d’abstraction gèrent les spécificités des plateformes, permettant aux auteurs de pipelines de se concentrer sur la logique plutôt que sur le déploiement. Infrastructure et distribution Cadence.CI génère dynamiquement des runners sur des infrastructures et fournisseurs cloud variés, de manière totalement agnostique. Agnosticisme de l’infrastructure Cadence.CI laisse les utilisateurs libres de choisir et de combiner des environnements cloud et on-premises. Les runners peuvent être déployés sur : Clouds publics (Scaleway et AWS aujourd’hui, d’autres fournisseurs sont prévus) Infrastructures on-premises (tout cluster Kubernetes, auto-géré ou opéré par Mélodium) Environnements hybrides (mélangeant cloud et on-prem) Génération dynamique des runners Les runners sont provisionnés à la demande et supprimés à la fin de la tâche : Provisionnement à la demande : les runners sont générés uniquement lorsque nécessaire, éliminant les coûts liés aux ressources inactives. Auto-scaling : le système s’adapte en fonction des besoins des pipelines. Runners éphémères : chaque runner est créé pour une tâche spécifique et détruit après exécution, améliorant à la fois l’efficacité et la posture de sécurité. Couche d’abstraction unifiée Mélodium partage les spécifications des pipelines avec Cadence.CI indépendamment de l’infrastructure sous-jacente. Cadence.CI traduit les requêtes de Mélodium en actions spécifiques au fournisseur, lancer une instance EC2 sur AWS, une instance sur Scaleway, ou un pod sur Kubernetes, tout en présentant une interface cohérente à l’auteur du pipeline. Monitoring et débogage Cadence.CI fournit un monitoring et un débogage des exécutions Mélodium, en agrégeant les logs et les données d’exécution des runners, quelle que soit l’infrastructure, cloud, on-prem ou hybride. Agrégation des logs et données de débogage Les runners envoient les logs et les données de débogage à Cadence.CI par blocs au fur et à mesure de l’exécution, ceux-ci apparaissant dans le tableau de bord peu après chaque envoi, et vous pouvez les consulter par exécution, avec un dump complet du programme exécuté. Données d’exécution par run Pour chaque run, Cadence.CI enregistre : État d’exécution : heures de demande, de début et de fin, statut courant (planification, en cours, terminé, non planifiable) et résultat de succès/échec. Point d’entrée et paramètres : le point d’entrée exact du traitement et les paramètres d’entrée utilisés pour lancer le run. Ressources demandées : CPU, mémoire et stockage demandés pour le moteur, les conteneurs et les conteneurs de service du run. Le débogage au niveau des traitements, la relecture en mode time-travel, les alertes et l’export de métriques figurent sur la feuille de route. Organisation et sécurité Rôles et invitations Les utilisateurs appartiennent à une organisation et possèdent un rôle (Admin, Operator ou Lambda) qui définit ce qu’ils peuvent faire, comme gérer les jetons de cluster ou consulter les détails d’un cluster. Les administrateurs peuvent inviter de nouveaux utilisateurs dans l’organisation par e-mail, et les rôles et l’accès s’appliquent au niveau de l’organisation. Le regroupement en équipes et la délimitation des permissions par projet/runner figurent sur la feuille de route. Apportez votre propre infrastructure (BYOI) Cadence.CI suit un modèle « Apportez votre propre infrastructure » (BYOI) : l’orchestration des pipelines s’exécute sur Cadence.CI, tandis que le calcul s’exécute sur une infrastructure que vous contrôlez, votre propre compte fournisseur de cloud ou votre propre cluster Kubernetes. Ce modèle garantit : Souveraineté des données : les données sensibles restent au sein de votre infrastructure privée, et les runners peuvent être placés dans des régions spécifiques pour respecter les exigences de résidence des données (RGPD, CCPA, etc.). Isolation réseau : les runners peuvent être déployés dans des VPC isolés, des centres de données on-prem ou des environnements air-gapped. Alignement avec la conformité : en contrôlant l’infrastructure, vous pouvez satisfaire des exigences strictes (HIPAA, PCI DSS, SOC 2, ISO 27001) en utilisant des environnements déjà certifiés. Runners éphémères : les runners sont de courte durée, ce qui élimine toute surface d’attaque inutilisée. Les organisations qui préfèrent s’exécuter sur une infrastructure opérée par Mélodium peuvent utiliser des clusters partagés ou dédiés à la place, voir Intégration Kubernetes pour la distinction. La délimitation des runners/secrets par équipe et l’intégration IAM avec des fournisseurs d’identité externes figurent sur la feuille de route. Sécurité au niveau du cœur Cadence.CI s’appuie sur les propriétés d’exécution de Mélodium pour des garanties de sécurité intégrées directement à la couche d’exécution : Validation fail-fast : l’ensemble du programme est validé au démarrage. Les configurations invalides ou non sécurisées sont stoppées immédiatement, avant qu’un runner soit créé ou qu’une ressource de calcul soit provisionnée. Gestion des secrets en mémoire : les valeurs sensibles sont identifiées en mémoire, maintenues isolées au traitement qui les utilise, et supprimées en toute sécurité après utilisation. Connecter un cloud