Fonctionnalités d’AWS CodePipeline

Pourquoi CodePipeline ?

AWS CodePipeline est un service d'intégration et de diffusion continues (CI/CD) qui permet des mises à jour rapides et fiables des applications et de l'infrastructure. CodePipeline peut servir à la modélisation et à l'automatisation complète de vos processus de publication de logiciels.

Questions d’ordre général

Un pipeline définit le flux de travail de votre processus de publication, et décrit la manière dont une nouvelle modification du code progresse dans votre processus de publication. Un pipeline comprend une série d'étapes (par exemple, création, test et déploiement), qui constituent des divisions logiques dans votre flux de travail. Chaque étape est composée d'une séquence d'actions, c'est-à-dire des tâches à effectuer, comme la compilation du code ou le déploiement dans les environnements de test. CodePipeline propose une interface utilisateur graphique pour créer, configurer et gérer votre pipeline, ainsi que ses différentes étapes et actions, ce qui vous permet de visualiser et de modéliser sans effort le flux de travail de votre processus de publication.

Exécution en parallèle

Vous pouvez utiliser CodePipeline pour modéliser vos actions de compilation, de test et de déploiement afin de les exécuter en parallèle et augmenter ainsi la vitesse de votre flux de travail.

CodePipeline peut extraire le code source de votre pipeline directement depuis AWS CodeCommit, GitHub, Amazon Elastic Container Registry (Amazon ECR) ou Amazon Simple Storage Service (Amazon S3). Il peut exécuter des générations et des tests unitaires AWS CodeBuild. CodePipeline peut déployer vos modifications à l'aide d'AWS CodeDeploy, AWS Elastic Beanstalk, Amazon Elastic Container Service (Amazon ECS) ou AWS Fargate.

Il est possible de modéliser des actions AWS CloudFormation permettant de mettre en service, d'actualiser ou de supprimer des ressources AWS dans le cadre de votre processus de publication. Cela vous permet également de diffuser en continu des applications sans serveur développées avec AWS Lambda, Amazon API Gateway et Amazon DynamoDB grâce au modèle d'application sans serveur AWS Serverless Application Model (AWS SAM).

Vous pouvez également activer des fonctions personnalisées définies par du code à n'importe quel stade de votre pipeline grâce à l'intégration de CodePipeline à Lambda. Par exemple, vous pouvez déclencher une fonction Lambda qui vérifie si votre application Web a été correctement déployée.

CodePipeline vous permet de configurer un pipeline qui lie ces services entre eux avec des outils de développement tiers et des systèmes personnalisés.

CodePipeline vous permet d'intégrer en un seul clic des outils de développement tiers, comme GitHub ou Jenkins, et ce à n'importe quelle étape de votre processus de publication. Vous pouvez vous servir d'outils tiers pour contrôler les sources, créer le code, le tester et le déployer. En savoir plus sur nos intégrations.

CodePipeline vous permet d'intégrer vos propres systèmes personnalisés. Vous pouvez enregistrer une action personnalisée qui vous permet d'accrocher vos serveurs dans votre pipeline en intégrant l'agent à code source libre CodePipeline à vos serveurs. Vous pouvez également utiliser un module d'extension CodePipeline pour Jenkins afin d'enregistrer facilement vos serveurs de développement existants en tant qu'action personnalisée.

CodePipeline vous permet de définir la structure de votre pipeline grâce à un document JSON déclaratif qui spécifie votre flux de travail de publication ainsi que ses étapes et actions. Avec ces documents, vous pouvez mettre à jour des pipelines existants et fournir des modèles de départ pour créer de nouveaux pipelines.

CodePipeline utilise AWS Identity and Access Management (IAM) pour gérer qui peut apporter des modifications à votre flux de publication, ainsi que qui peut le contrôler. Vous pouvez autoriser l'accès à des utilisateurs par le biais des utilisateurs IAM, des rôles IAM et des répertoires intégrés à SAML.

Vous pouvez créer des notifications pour des événements impactant vos déploiements. Les notifications prendront la forme de notifications Amazon Simple Notification Service (Amazon SNS). Chaque notification inclut un message d'état et un lien vers les ressources dont l'événement a généré cette notification.