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 n’enferme pas les utilisateurs dans un seul cloud ou environnement on-premises. Les runners peuvent être déployés sur : Clouds publics (Scaleway , AWS, GCP, Azure, et plus) Clouds privés (OpenStack, VMware, etc.) Infrastructures on-premises (bare metal, clusters Kubernetes) Environnements hybrides (mélangeant cloud et on-prem) Runners tiers (GHA Runners, GitLab Runners) 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 VM sur OpenStack, 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 complet et un débogage granulaire des exécutions Mélodium, avec streaming de logs en temps réel, analyse au niveau des traitements et traçage complet des connexions. Streaming de logs en temps réel Cadence.CI agrège les logs de tous les runners Mélodium en temps réel, quelle que soit l’infrastructure, cloud, on-prem ou hybride. Les logs sont structurés et étiquetés avec des métadonnées, ID du runner, ID du traitement, horodatage, statut d’exécution, ce qui les rend filtrables et consultables depuis le tableau de bord. Débogage au niveau des traitements Chaque traitement d’un pipeline Mélodium est surveillé individuellement. Pour tout traitement, il est possible d’inspecter : Entrées et sorties : les données exactes passées en entrée et en sortie au moment de l’exécution. État d’exécution : heures de début et de fin, durée et codes de sortie. Contexte environnemental : variables, configurations et dépendances actives pendant l’exécution. Valeurs intermédiaires : transformations de données à tout moment du traitement. Traces d’erreur : messages d’erreur détaillés pour les traitements en échec. Utilisation des ressources : métriques CPU, mémoire et I/O pendant l’exécution. Traçage des connexions Cadence.CI cartographie les connexions entre les traitements, montrant comment les sorties d’un traitement deviennent les entrées d’un autre : Cela permet de répondre à la question « d’où vient cette valeur ? » même dans des pipelines multi-runners complexes, une question structurellement impossible à répondre avec des systèmes d’observabilité basés uniquement sur les logs. Le graphe de dépendances des traitements et connexions est toujours visible, quel que soit le nombre de runners impliqués. Débogage en mode time-travel Tout traitement peut être rejoué avec exactement les mêmes entrées et le même environnement capturés au moment de l’exécution, reproduisant les erreurs de manière déterministe sans relancer l’ensemble du pipeline. Alertes et notifications Des alertes personnalisées peuvent être configurées pour des motifs de logs spécifiques, des codes d’erreur, des seuils de ressources ou des anomalies comme des temps d’exécution anormalement longs. Les logs et métriques peuvent être exportés vers Prometheus, Grafana ou Datadog pour une analyse approfondie. Organisation et sécurité Équipes et rôles Les utilisateurs sont organisés en équipes au sein d’une organisation. Les rôles définissent les permissions pour les projets, pipelines et runners. Les runners et secrets peuvent être limités à des équipes ou projets spécifiques, et la collaboration inter-équipes est facilitée via des invitations à des projets partagés. 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, mais le calcul s’exécute sur une infrastructure que vous contrôlez. Ce modèle garantit : Souveraineté des données : les données sensibles ne quittent jamais 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 et dédiés : les runners sont de courte durée et peuvent être limités à des équipes spécifiques, éliminant les risques inter-locataires. Intégration IAM : connectez votre fournisseur d’identité existant (Active Directory, LDAP) pour gérer l’accès aux runners et aux ressources. 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é appliquées au niveau de l’exécution, et non ajoutées par-dessus : 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 et ne sont jamais partagées entre traitements ni écrites dans les logs. Elles sont supprimées en toute sécurité après utilisation. Langage de programmation