CI/CD sur AWS
L'intégration continue/livraison continue (CI/CD) peut être représentée comme un pipeline, où le nouveau code est envoyé d'un côté, testé au cours d'une série de phases (source, génération, test, intermédiaire et production), puis publié en tant que code prêt pour la production.
Présentation du pipeline CI/CD
Chaque phase du pipeline CI/CD est structurée comme une unité logique dans le processus de livraison. Chaque phase agit comme une barrière qui vérifie un certain aspect du code. Au fur et à mesure que le code progresse dans le pipeline, on suppose que le code est de meilleure qualité aux phases ultérieures, car d'autres aspects de ce code continuent d'être vérifiés. Les problèmes décelés à un stade précoce empêchent la progression du code dans le pipeline. Les résultats des tests sont immédiatement envoyés à l'équipe, et toutes les versions et tous les lancements sont interrompus si le logiciel échoue à une phase.
AWS propose un ensemble complet d'outils de développement CI/CD permettant d'accélérer les cycles de développement et de publication de logiciels. AWS CodePipeline
Les pipelines de code peuvent s'intégrer à d'autres services. Il peut s'agir de services AWS, tels qu'Amazon Simple Storage Service
-
Compilation, génération et test du code avec AWS CodeBuild
-
Livraison continue au cloud d'applications basées sur un conteneur
-
Validation avant le déploiement des artefacts (tels que les descripteurs et les images de conteneur) requis pour le service réseau ou des fonctions de réseau natif cloud spécifiques
-
Tests fonctionnels, d'intégration et de performances pour la fonction réseau en conteneur/fonction de réseau virtuel (CNF/VNF), y compris les tests de référence et de régression
-
Tests de fiabilité et de reprise après sinistre
Composants du pipeline CI/CD AWS
AWS peut configurer des pipelines CI/CD à l'aide des outils pour développeur AWS suivants :
La création d'un pipeline CI/CD peut être automatisée à l'aide d'AWS CDK
Le processus CI/CD comprend les étapes suivantes :
-
Configuration du réseau : AWS CDK et AWS CloudFormation initient la création des prérequis réseau :
-
Déploiement de l'infrastructure : AWS CDK et AWS CloudFormation lancent la création des piles de ressources suivantes :
-
Déploiement de la fonction réseau cloud (CNF) : à ce stade, la CNF est déployée sur des clusters EKS à l'aide des outils Kubectl
et des Charts de Helm. Cette phase déploie également toutes les applications ou tous les outils spécifiques nécessaires aux fonctions CNF pour fonctionner efficacement (tels que Prometheus ou Fluentd ). Les fonctions CNF peuvent être déployées au moyen de fonctions Lambda ou avec AWS CodeBuild. -
Mises à jour et déploiement continus : il s'agit d'une séquence d'étapes qui sont effectuées de manière itérative pour déployer les modifications qui font partie des modifications de conteneur/de configuration entraînant des mises à niveau. Comme dans le cas du déploiement de fonctions CNF, les mises à jour et le déploiement continus peuvent être automatisés à l'aide des services AWS, avec le déclencheur d'AWS CodeCommit
, d'Amazon Elastic Container Registry (Amazon ECR) ou d'un système source tiers tel que GitLab Webhooks .
Diagramme de flux du pipeline CI/CD AWS
Le pipeline CI/CD est généré à l'aide d'AWS CodePipeline