CI/CD pour applications MuleSoft (Course #cicd)
For ingénieurs DevOps.
À la fin, vous saurez
À l'issue de cette formation, vous serez capable d'automatiser les pipelines build-test-déploiement des applications Mule — Maven, gates MUnit, promotion CloudHub/RTF, IaC — afin de livrer au quotidien avec rollback en moins de 5 min.
Cas fil rouge
Shopwave Group livre 40 applications Mule via builds manuels et déploiements du vendredi soir ; deux rollbacks ratés le trimestre dernier ont coûté 6 heures d'indisponibilité aux API partenaires. Le métier exige désormais des évolutions partenaires livrées le jour même. Cibles : pipeline entièrement automatisé, déploiement production sous 10 min, rollback sous 5 min, gate de couverture MUnit à 75 % à chaque merge.
Programme chaque ligne est quelque chose que vous faites
6 modules · 18 sujets · dans l'ordre du cours
-
Module 1
Même commit, même artefact
Objectif. Industrialiser les builds Maven avec versions verrouillées et repositories gérés afin que tout commit reconstruise l'artefact identique.
- Structurer un projet Maven Mule : POM parent, version épinglée du mule-maven-plugin, profils de properties par environnement
- Servir toutes les dépendances depuis un miroir privé Nexus ou Artifactory — aucun téléchargement internet direct depuis les agents
- Garantir la reproductibilité : promouvoir le binaire testé à travers les étapes au lieu de le reconstruire par environnement
-
Module 2
Des étapes de pipeline qui rapportent
Objectif. Assembler le pipeline Mule canonique afin que toute branche traverse des étapes automatisées identiques quel que soit le moteur CI.
- Peser Jenkins, Azure DevOps, GitLab CI et GitHub Actions : plugins Mule, taille des agents, authentification Exchange supportée
- Scripter la séquence build → MUnit → contrôles de gouvernance → déploiement sandbox → smoke tests, cible : moins de 15 minutes
- Conserver les identifiants Anypoint en variables secrètes CI issues d'une connected app dédiée — jamais en clair dans le YAML
-
Module 3
Déployer par pipeline, revenir par pipeline
Objectif. Piloter les releases CloudHub et Runtime Fabric depuis le CLI afin que promotion et rollback s'exécutent sans clic avec health checks.
- Déployer sur CloudHub depuis le pipeline (CLI Anypoint ou plugin Maven) : région, taille des workers, autoscale, properties par env
- Publier sur Runtime Fabric via CI : images tirées du registre d'artefacts, limites CPU/mémoire fixées par application
- Automatiser le rollback : redéployer l'artefact précédent en moins de 5 minutes et retenir le trafic jusqu'aux health checks verts
-
Module 4
Promouvoir des artefacts, pas de l'espoir
Objectif. Concevoir la promotion dev-vers-production afin que seuls des binaires testés et approuvés voyagent, la configuration variant seule par environnement.
- Promouvoir un binaire immuable Dev → QA → Staging → Prod en injectant les secure properties au déploiement, jamais cuites dans l'artefact
- Conditionner la mise en production à une règle à deux approbations tracée dans l'audit du pipeline
- Aligner sémantiquement versions applicatives et versions API Manager afin que tags pipeline et contrats gateway restent synchrones
-
Module 5
La plateforme comme code revu
Objectif. Coder les ressources Anypoint dans des dépôts versionnés afin que tout changement plateforme passe par une pull request, comme le code.
- Déclarer les actifs API Manager — versions d'API, policies, paliers SLA — via les API Anypoint exécutées par le pipeline
- Faire relire les changements d'infrastructure avec un template de PR couvrant impact, plan de rollback et environnements touchés
- Détecter la dérive de configuration par des jobs planifiés comparant l'état vivant de la plateforme à la baseline déclarée
-
Module 6
Merge bloqué tant que ce n'est pas prouvé
Objectif. Imposer suites MUnit et coverage gates en CI afin que les régressions meurent dans le build avant d'atteindre tout environnement partagé.
- Exécuter MUnit headless en CI avec suites parallèles et rapports d'échec publiés en artefacts du pipeline
- Faire échouer le build sur les gates de couverture — p. ex. 75 % global, 100 % sur les chemins d'erreur — au-delà des rapports cosmétiques
- Échouer vite : mettre en quarantaine les tests instables, garder main vert en permanence, plafonner les relances automatiques à une tentative
Références & documentation officielle chaque affirmation ci-dessus a une source
Module 1
- Référence MavenDoc MuleSoft
- Plugin Mule MavenDoc MuleSoft
Module 2
- Connected Apps dans Anypoint PlatformDoc MuleSoft
Module 3
Module 4
- Propriétés de configuration sécuriséesDoc MuleSoft
Module 5
- Anypoint CLI pour API ManagerDoc MuleSoft
Module 6
- Configuration Maven de la couverture MUnitDoc MuleSoft