avec AWS CodePipeline
Dans ce didacticiel, vous apprendrez à créer un pipeline de mise à disposition de logiciel automatisé capable de déployer un exemple d'application dynamique. Vous créerez le pipeline en utilisant AWS CodePipeline, un service qui crée, teste et déploie votre code dès que ce dernier est modifié. Vous utiliserez votre compte GitHub, un compartiment Amazon Simple Storage Service (S3) ou un référentiel AWS CodeCommit comme emplacement source pour le code de l'exemple d'application. Vous utiliserez également AWS Elastic Beanstalk comme cible de déploiement pour l'exemple d'application. Une fois terminé, votre pipeline pourra détecter les modifications apportées au référentiel source contenant l'exemple d'application, pour ensuite mettre à jour automatiquement votre exemple d'application dynamique.
Le déploiement continu permet de déployer les révisions automatiquement vers un environnement de production, sans approbation explicite de la part d'un développeur. Le processus de publication de logiciel est alors entièrement automatisé.
Toutes les étapes de ce didacticiel sont éligibles à une offre gratuite.
Gérez vos ressources AWS
Connectez-vous à la consoleVotre pipeline de déploiement continu aura besoin d'un environnement cible contenant des serveurs virtuels ou des instances Amazon EC2, dans lequel l'exemple de code sera déployé. Vous préparerez cet environnement avant de créer le pipeline.
a. Pour simplifier la procédure d'installation et de configuration d'instances EC2 pour ce didacticiel, vous lancerez un exemple d'environnement grâce à AWS Elastic Beanstalk. Elastic Beanstalk permet d'héberger vos applications web en toute simplicité sans avoir à lancer, configurer ou faire fonctionner des serveurs virtuels vous-même. Il met en service et pilote automatiquement l'infrastructure (par ex. des serveurs virtuels, des équilibreurs de charge, etc.) et vous fournit la pile d'application (par ex. système d'exploitation, langue et infrastructure, serveur web et d'applications, etc.).
b. Choisissez PHP dans le menu déroulant, puis cliquez sur Launch Now.
Remarque : Si vous avez déjà créé une application Elastic Beanstalk, cliquez sur : Create New Application dans l'angle supérieur droit. Attribuez un nom à l'application et créez un environnement de serveur web. Sélectionnez PHP comme plateforme et Single Instance comme type d'environnement. Si vous prévoyez de vous connecter à distance à vos instances, sélectionnez une paire de clés. Dans le cas contraire, conservez les valeurs par défaut pour les autres options et créez l'environnement pour votre pipeline de déploiement continu.
c. Elastic Beanstalk commencera à créer un exemple d'environnement dans lequel vous déploierez votre application. Il créera une instance Amazon EC2, un groupe de sécurité, un groupe Auto Scaling, un compartiment Amazon S3, des alarmes Amazon CloudWatch et un nom de domaine pour votre application.
Remarque : cette opération prendra plusieurs minutes
Au cours de cette étape, vous extrairez une copie du code de l'exemple d'application, puis vous choisirez une source pour héberger le code. Le pipeline prend le code de la source, puis effectue des actions dessus.
Vous pouvez utiliser l'une de ces trois options comme source : un référentiel GitHub, un compartiment Amazon S3 ou un référentiel AWS CodeCommit. Sélectionnez votre préférence et appliquez la procédure ci-après :
Au cours de cette étape, vous allez créer et configurer un pipeline simple avec deux actions : source et déployer. Vous fournirez CodePipeline avec les emplacements de votre référentiel source et de votre environnement de déploiement.
a. Cliquez ici pour ouvrir la console AWS CodePipeline.
- Sur la page Welcome, cliquez sur Create pipeline.
- Si vous utilisez AWS CodePipeline pour la première fois, une page d'introduction s'affiche au lieu de la page Welcome. Cliquez sur Get started.
b. Sur la page Step 1: Name :
- Pipeline name : entrez le nom pour votre pipeline, DemoPipeline.
- Cliquez sur Next Step.
Remarque : Une fois le pipeline créé, vous ne pouvez plus modifier son nom.
c. Sur la page Step 2: Source, sélectionnez l'emplacement de la source que vous avez sélectionnée et suivez la procédure ci-après :
d. Un véritable pipeline de déploiement continu nécessite une étape de génération, au cours de laquelle le code est compilé et l'unité testée. CodePipeline vous permet de connecter votre fournisseur de génération à votre pipeline. Cependant, vous passez l'étape de génération au cours de ce didacticiel.
- Sur la page Step 3: Build, choisissez No Build.
- Cliquez sur Next Step.
e. Sur la page Step 4: Beta :
- Deployment provider : cliquez sur AWS Elastic Beanstalk.
- Application name : cliquez sur My First Elastic Beanstalk Application.
- Environment name : cliquez sur Default-Environment.
- Cliquez sur Next Step.
Remarque : Le nom « Bêta » est simplement le nom donné par défaut à cette étape du pipeline, tout comme « Source » était le nom donné à la première étape du pipeline.
f. Sur la page Step 5: Service Role :
- Service Role : cliquez sur Create role.
- Vous serez redirigé vers une page de la console IAM qui décrit le rôle AWS-CodePipeline-Service qui sera créé. Cliquez sur Allow
- Après avoir créé le rôle, vous êtes redirigé vers la page Step 5: Service Role, où AWS-CodePipeline-Service apparaît dans Role name. Cliquez sur Next Step.
Remarque : La création d'un rôle de service n'est requise que la première fois où vous créez un pipeline dans AWS CodePipeline. Si un rôle de service a déjà été créé, vous pourrez le choisir dans le menu déroulant des rôles. Etant donné que la liste déroulante affiche tous les rôles de service IAM associés à votre compte, si vous choisissez un nom différent de celui par défaut, assurez-vous qu'il soit reconnaissable en tant que rôle de service pour AWS CodePipeline.
Dans cette étape, vous allez lancer votre pipeline. Une fois votre pipeline créé, il s'exécute automatiquement. Dans un premier temps, il détecte l'exemple de code d'application dans votre emplacement source, il regroupe les fichiers, puis les transfère vers la deuxième étape que vous avez définie. Au cours de cette étape, il transmet le code à Elastic Beanstalk, qui contient l'instance EC2 qui hébergera votre code. Elastic Beanstalk gère le déploiement du code dans l'instance EC2.
a. Sur la page Step 6: Review, vérifiez les informations puis cliquez sur Create pipeline.
b. Une fois votre pipeline créé, la page d'état du pipeline s'ouvre et le pipeline commence à s'exécuter automatiquement. Vous pouvez voir l'état d'avancement ainsi que les messages de réussite et d'échec à mesure que le pipeline effectue chaque action.
Pour vérifier que votre pipeline s'est exécuté correctement, surveillez son avancement à chaque étape. L'état de chaque étape passe de No executions yet à In Progress, puis affiche soit Succeeded soit Failed. Le pipeline doit terminer la première exécution en quelques minutes.
c. Dans la zone d'état de l'étape Bêta, cliquez sur AWS Elastic Beanstalk.
d. La console AWS Elastic Beanstalk s'ouvre et présente les détails du déploiement.
- Cliquez sur l'environnement que vous avez créé précédemment, nommé Default-Environment.
e. Cliquez sur l'URL qui apparaît dans la partie supérieure droite de la page pour afficher l'exemple de site web que vous avez déployé.
Au cours de cette étape, vous allez réviser l'exemple de code, puis valider les modifications dans votre référentiel. CodePipeline détecte l'exemple de code mis à jour puis commence automatiquement à le déployer dans votre instance EC2 via Elastic Beanstalk.
Notez que l'exemple de page web que vous avez déployé fait référence à AWS CodeDeploy, un service qui automatise les déploiements de code. Dans CodePipeline, CodeDeploy constitue une alternative à l'utilisation d'Elastic Beanstalk pour les actions de déploiement. Actualisons l'exemple de code afin qu'il indique que vous l'avez déployé avec Elastic Beanstalk.
d. Retournez au pipeline dans la console CodePipeline. Dans quelques minutes, vous verrez la Source devenir bleue, ce qui indique que le pipeline a détecté les modifications que vous avez apportées à votre référentiel source. Le code mise à jour est ensuite transféré automatiquement vers Elastic Beanstalk.
- Une fois que l'état du pipeline affiche Succeeded, dans la zone d'état de l'étape Beta, cliquez sur AWS Elastic Beanstalk.
e. La console AWS Elastic Beanstalk s'ouvre et présente les détails du déploiement. Sélectionnez l'environnement que vous avez créé précédemment, nommé Default-Environment.
f. Cliquez sur l'URL qui apparaît dans la partie supérieure droite de la page pour afficher à nouveau l'exemple de site web que vous avez déployé. Votre texte a été mis à jour automatiquement via le pipeline de déploiement continu.
Afin d'éviter des frais à l'avenir, vous allez supprimer toutes les ressources que vous avez lancées au cours de ce didacticiel, à savoir le pipeline, l'application Elastic Beanstalk et la source que vous avez configurée pour héberger le code.
a. Vous devez d'abord supprimer votre pipeline :
- Dans la vue du pipeline, cliquez sur Edit.
- Cliquez sur Delete.
- Saisissez le nom de votre pipeline, puis cliquez sur Delete.
b. Vous devez ensuite supprimer votre application Elastic Beanstalk :
- Accédez à la console Elastic Beanstalk.
- Cliquez sur Actions.
- Cliquez ensuite sur Terminate Environment.
Vous avez créé un pipeline de publication logicielle automatisée avec AWS CodePipeline. Grâce à CodePipeline, vous avez créé un pipeline qui utilise GitHub, Amazon S3 ou AWS CodeCommit comme emplacement source du code de l'application, puis qui déploie le code dans une instance Amazon EC2 gérée par AWS Elastic Beanstalk. Votre pipeline déploiera automatiquement votre code à chaque modification. Vous vous rapprochez d'une étape de l'adoption du déploiement continu !
Maintenant que vous appris à créer un pipeline simple grâce à AWS CodePipeline, vous pouvez en savoir plus en consultant les ressources suivantes.
- Créez un pipeline plus avancé à quatre étapes en suivant ce guide. Ce pipeline utilise un référentiel GitHub pour votre source, un serveur de génération Jenkins pour générer et tester le projet, et une application AWS CodeDeploy pour déployer le code généré sur un serveur intermédiaire.
- Développez rapidement un pipeline à quatre étapes grâce à un serveur de génération Jenkins en utilisant notre kit de démarrage du pipeline.
- En savoir plus sur la livraison continue.