CI/CD sur AWS - Intégration et livraison continues pour les réseaux 5G sur AWS

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.

Diagramme illustrant un exemple de pipeline de code AWS

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 automatise les phases de génération, de test et de déploiement du processus de publication chaque fois qu'il y a un changement de code, en fonction du modèle de publication défini. Il en résulte une livraison rapide et fiable des fonctions et des mises à jour.

Les pipelines de code peuvent s'intégrer à d'autres services. Il peut s'agir de services AWS, tels qu'Amazon Simple Storage Service (Amazon S3), ou de produits tiers, tel que GitHub. AWS CodePipeline peut répondre à divers cas d'utilisation liés au développement et à l'exploitation, notamment :

  • 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

Diagramme illustrant les composants du pipeline CI/CD AWS

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 et d'AWS CloudFormation. Dans le domaine de la virtualisation des fonctions réseau, cette automatisation native AWS peut être intégrée dans un cadre de gestion et d'orchestration (MANO) et dans le cadre d'orchestration des services du fournisseur de services de communication.

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 illustrant le flux du pipeline CI/CD AWS.

Diagramme de flux du pipeline CI/CD AWS

Le pipeline CI/CD est généré à l'aide d'AWS CodePipeline et utilise un service de livraison continue qui modélise, visualise et automatise les phases nécessaires à la publication du logiciel. En définissant des étapes dans un pipeline, vous pouvez récupérer du code à partir d'un référentiel de code source, générer ce code source dans un artefact publiable, tester l'artefact et le déployer en production. Seul le code qui réussit toutes ces étapes sera déployé. Vous pouvez éventuellement ajouter d'autres exigences à votre pipeline, telles que des approbations manuelles, pour garantir que seules les modifications approuvées sont déployées en production.