Fonctions d’AWS CodeDeploy

Pourquoi CodeDeploy ?

AWS CodeDeploy est un service qui automatise les déploiements d'applications vers divers services informatiques, notamment Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate, AWS Lambda et des instances sur site. CodeDeploy automatise entièrement les déploiements de vos applications, éliminant ainsi les opérations manuelles. CodeDeploy protège votre application des temps d'arrêt pendant les déploiements grâce aux mises à jour continues et au suivi de l'état du déploiement. CodeDeploy vous offre un contrôle centralisé de vos déploiements via la console de gestion AWS, l'interface de ligne de commande AWS (AWS CLI), les kits SDK ou les API, ce qui vous permet de lancer, de contrôler et de surveiller vos déploiements. Vous pouvez voir la progression du déploiement en fonction d'événements de configuration individuels. CodeDeploy suit et stocke l'historique récent de vos déploiements, afin que vous puissiez étudier le calendrier et modifier l'historique de vos anciens déploiements.

CodeDeploy ne dépend pas de la plateforme ni de la langue et fonctionne avec n'importe quelle application, vous pouvez donc réutiliser votre code de configuration existant. Vous pouvez également intégrer facilement vos déploiements d'applications avec votre processus de déploiement de logiciels existant ou dans une chaîne d'outils de déploiement continue à l'aide des API CodeDeploy.

Déploiements automatisés

Vous pouvez facilement reproduire un déploiement d'application dans les différents groupes des instances avec CodeDeploy. CodeDeploy utilise un modèle d'installation basé sur un fichier et une commande, ce qui lui permet de déployer n'importe quelle application et de réutiliser le code de configuration existant. Le même code de configuration peut être utilisé pour déployer et tester de manière cohérente des mises à jour sur vos étapes de déploiement, de test et de production pour les instances Amazon EC2. La suppression des étapes manuelles des déploiements augmente à la fois la vitesse et la fiabilité de votre processus de déploiement de logiciels.

CodeDeploy vous permet d'intégrer des activités de déploiement et de dimensionnement logiciel pour maintenir votre application à jour dans un environnement de production dynamique. Pour les instances Amazon EC2, CodeDeploy s'intègre à Auto Scaling. Auto Scaling vous permet d'augmenter ou de réduire la capacité d'Amazon EC2 selon les conditions que vous définissez tels que les pics de trafic. CodeDeploy est notifié lorsqu'une nouvelle instance se lance dans un groupe Auto Scaling et effectuera automatiquement un déploiement d'application sur la nouvelle instance avant que celui-ci soit ajouté à un équilibreur de charge Elastic Load Balancing (ELB).

Vous pouvez utiliser CodeDeploy pour automatiser les déploiements de logiciel dans vos environnements de développement, de test et de production sur toute instance, notamment les instances de vos centres de données (vos instances devront être en mesure de se connecter aux points de terminaison publics d’AWS). Cela vous permet d'utiliser un service unique pour déployer des applications de manière cohérente sur des architectures hybrides.

Limiter les temps d'arrêt

Les applications ne nécessitent pas de temps d'arrêt lorsqu'elles sont en cours de mise à niveau vers une nouvelle révision avec CodeDeploy. AWS CodeDeploy peut effectuer des déploiements bleu/vert sur des instances Amazon EC2, un service Amazon Elastic Container Service (Amazon ECS) (types de lancement Amazon EC2 et Fargate) ou une fonction Lambda. Le déploiement bleu/vert permet de lancer la nouvelle version de votre application parallèlement à l’ancienne. Une fois la nouvelle version testée conforme, CodeDeploy peut acheminer le trafic de votre ancienne version vers la nouvelle, en fonction de vos spécifications.

CodeDeploy peut également effectuer une mise à jour continue dans un groupe d'instances Amazon EC2 où seulement une partie à la fois des instances est mise hors ligne. CodeDeploy avance progressivement d'une instance à l'autre, ce qui permet aux applications de rester disponibles et de continuer à servir le trafic. Pour les fonctions Lambda, le trafic entrant est progressivement routé de l'ancienne vers la nouvelle version.

Le suivi de l'état du déploiement fonctionne avec les mises à jour continues afin que les applications restent hautement disponibles pendant les déploiements. Des temps d'arrêt inattendus peuvent se produire si de mauvaises mises à jour sont déployées. CodeDeploy surveille votre déploiement et en cessera un s'il y a trop d'échecs de mise à jour.

Vous pouvez arrêter le déploiement d'une application qui est en cours à tout moment à l'aide de la console, l'interface de ligne de commande AWS ou tout kit de développement logiciel AWS. Il vous suffit de déployer à nouveau cette révision si vous souhaitez poursuivre le déploiement arrêté à un moment ultérieur. Vous pouvez également annuler immédiatement en redéployant la précédente révision.

Contrôle centralisé

Vous pouvez lancer, contrôler et surveiller les déploiements de votre logiciel directement depuis la console ou à l'aide de l'interface de ligne de commande, des kits de développement ou des API AWS. En cas d'échec, vous pouvez marquer le script comportant l'échec. Vous pouvez également définir des notifications push qui vous permettent de surveiller l'état de vos déploiements par SMS ou par e-mail avec Amazon Simple Notification Service (Amazon SNS).

Une application peut être déployée vers plusieurs groupes de déploiement. Les groupes de déploiement sont utilisés pour mettre en correspondance des configurations vers des environnements spécifiques, comme des environnements de simulation et de production. Vous pouvez tester une révision en simulation, puis déployer ce même code avec les mêmes instructions de déploiement vers la production une fois que vous êtes satisfait.

CodeDeploy suit et stocke l'historique récent de vos déploiements. Vous pouvez consulter quelles versions de l'application sont actuellement déployées vers chacun de vos groupes de déploiement cibles. Vous pouvez inspecter l'historique des modifications ainsi que les taux de réussite des précédents déploiements vers les groupes de déploiement spécifiques. Vous pouvez également étudier un calendrier de vos anciens déploiements pour avoir une vue détaillée des réussites et des erreurs de vos déploiements.

Facile à adopter

CodeDeploy utilise un modèle d'installation basé sur un fichier et une commande, ce qui lui permet de déployer n'importe quelle application et de réutiliser le code de configuration existant. CodeDeploy utilise un fichier de configuration AppSpec unique pour exécuter des actions, des tests ou des vérifications à chaque événement de cycle de vie (phase de déploiement). Les commandes peuvent être un code, tel que le script d'une enveloppe, un programme personnalisé ou même un outil de gestion de configuration.

Il est facile d'intégrer les déploiements d'applications avec votre chaîne d'outils de livraison de logiciels existante à l'aide des API CodeDeploy. AWS CodePipeline et certains partenaires AWS proposent des intégrations CodeDeploy prédéfinies pour les services d'intégration continue et de livraison continue (CI/CD), simplifiant ainsi le déploiement automatique de votre application mise à jour.

Recevoir des notifications

Vous pouvez créer des notifications pour des événements influençant vos déploiements. Les notifications se présenteront sous la forme de notifications 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.