Dans ce blog, nous pouvons configurer un pipeline d’intégration continue/livraison continue (CI/CD) à l’aide d’AWS Code-Commit, AWS Code-Build et AWS Code-Deploy pour le développement et les tests d’applications et d’AWS Code Pipeline pour l’orchestration des flux de travail. Avec l’aide de ce pipeline, les applications peuvent être automatiquement testées, créées et déployées sur des services AWS tels qu’Amazon EC2, Elastic Beanstalk et d’autres cibles de déploiement AWS appropriées.
Dans le paysage numérique actuel, en évolution rapide, la capacité à fournir des applications rapidement et efficacement est primordiale. Les pratiques DevOps, combinées aux capacités robustes d’Amazon Web Services (AWS), permettent aux organisations de rationaliser leurs processus de développement et opérationnels, garantissant ainsi une mise sur le marché plus rapide et une fiabilité améliorée. Ce blog explore comment AWS DevOps peut révolutionner votre flux de travail, en offrant des informations sur les services clés, les meilleures pratiques et les applications du monde réel.
Qu’est-ce qu’AWS DevOps ?
La combinaison des méthodologies DevOps avec les capacités de cloud computing d’AWS est connue sous le nom d’AWS DevOps. En automatisant et en intégrant les processus de développement logiciel et des équipes informatiques, les approches DevOps cherchent à permettre une livraison continue tout en améliorant la productivité et la qualité du développement logiciel.
Services AWS DevOps clés
AWS propose une suite d’outils et de services conçus pour faciliter les pratiques DevOps. Voici quelques-uns des services clés :
Pipeline de codes AWS
AWS Code Pipeline est un service d’intégration et de livraison continues (CI/CD) pour des mises à jour rapides et fiables des applications et de l’infrastructure. Il s’agit d’un service de livraison continue entièrement configuré qui aide l’utilisateur à automatiser ses pipelines publiés pour des mises à niveau fiables et rapides de son infrastructure et de ses applications.
AWS CodeBuild
Il contrôle entièrement le service d’intégration continue sur un serveur de build construit de manière dynamique qui crée des progiciels, effectue des tests et assemble le code source.
AWS CodeDeploy
Automatisation des déploiements de code à l’aide du service AWS Code-Deploy sur n’importe quelle instance, y compris les instances sur site et Amazon EC2.
Ce service de déploiement entièrement géré rationalise le processus de déploiement de logiciels sur de nombreux services informatiques, tels que vos serveurs sur site, AWS Lambda, AWS Fargate et Amazon EC2. Cela vous permet de proposer de nouvelles fonctionnalités plus rapidement, de minimiser les temps d’arrêt pendant le déploiement et de gérer la complexité de la mise à niveau de vos applications.
AWS CodeCommit
AWS CodeCommit est un service de contrôle de source permettant de stocker et de gérer en privé des actifs dans le cloud. Il prend en charge la fonctionnalité Git standard et s’intègre à d’autres services AWS pour rationaliser le processus CI/CD.
Flux de travail du pipeline CICD
- Code: stocké dans notre machine locale
- JE SUIS: AWS Identity and Access Management (IAM) est un service qui vous aide à contrôler en toute sécurité l’accès aux services et ressources AWS pour vos utilisateurs.
- EC2 : Elastic Compute Cloud, parfois appelé Amazon EC2, est un service de cloud computing offrant une puissance de calcul évolutive. Il est conçu pour faciliter le cloud computing à l’échelle du Web pour les développeurs.
- S3: Le service de stockage d’objets connu sous le nom d’Amazon Simple Storage Service (Amazon S3) offre des performances, une sécurité, une évolutivité et une disponibilité des données parmi les meilleures du secteur.
Engagement de code AWS
Étape 1
Créez un référentiel sécurisé pour stocker votre code, il vous suffit d’ajouter le nom et la description du référentiel qui sont facultatifs. Je crée le nom du référentiel comme « Devops-Repo » dans la validation de code AWS.
Étape 2
Ensuite, créez un utilisateur IAM pour générer les informations d’identification HTTP. Accordez à l’utilisateur les autorisations « AWScodecommitPowerUser » et « IAMUserChangePassword » pour accéder au référentiel Code-Commit à partir de la machine locale.
Étape 3
Générez des informations d’identification AWS afin de pouvoir accéder au référentiel localement.
Après avoir sélectionné l’utilisateur IAM, sélectionnez Informations d’identification de sécurité. Faites défiler vers le bas pour voir vos informations d’identification AWS Code HTTPS Git. Après vous être engagé, sélectionnez « Générer les informations d’identification ».
Assurez-vous de télécharger le fichier CSV ou de stocker l’identifiant et le mot de passe dans un emplacement sécurisé (une fois cet identifiant disparu, vous ne pourrez plus le voir).
Étape 4
L’AWS CodeCommit est privé. Nous devons donc cloner le dépôt sur notre machine locale, puis appliquer les modifications.
Maintenant, nous allons cloner le dépôt dans VS-Code Editor. Ensuite, vous devez vous authentifier en fournissant votre nom d’utilisateur et votre mot de passe, que nous extrairons du fichier.csv.
Créez un nouveau fichier « index.html » et ajoutez un exemple de code pour les tests.
Étape 5
Ensuite, enregistrez les modifications et transférez-les vers le référentiel distant
Étape 6
Créez une branche de développement pour les tests. Dans la branche dev, créez un fichier index.html et ajoutez quelques modifications.
Vous pouvez fusionner les modifications du développeur vers le maître à l’aide d’une demande d’extraction en sélectionnant les branches source et destination.
Assurez-vous de vérifier vos modifications avant de fusionner.
Cliquez sur « Créer une pull request » et voyez les modifications fusionnées avec succès.
Création de code AWS
Créez un projet de build et donnez-lui un nom. Sélectionnez « AWS CodeCommit » comme fournisseur source et choisissez votre référentiel et votre branche.
Créez un rôle de service dans AWS Identity and Access Management (IAM) qui établit une connexion entre deux services, comme CodeCommit vers EC2 ou CodeBuild vers CodeDeploy. Comme indiqué ci-dessous, nous devons ajouter les politiques au rôle « codebuild-devops-app-service-role ».
Le fichier buildspec.yaml est une spécification pour AWS CodeBuild qui définit les commandes et les paramètres de génération. C’est la partie la plus importante de la construction du code.
Créez un fichier buildspec.yaml dans votre référentiel local, validez-le dans la branche dev, transférez-le vers le référentiel distant, puis fusionnez-le dans la branche master. J’ai configuré buildspec.yaml avec les phases et commandes suivantes.
version 0.2
- étapes :
- installer:
- commandes :
- echo Installation de NGINX
- sudo apt-get mise à jour
- sudo apt-get install -y
- commandes :
- construire:
- commandes :
- echo Build démarré le ‘date’
- cp index.html /var/www/html/
- commandes :
- post-construction :
- artefacts :
- fichiers :
- /var/www/html/index.html
- fichiers :
- installer:
Créez une pull request et intégrez le code de développement dans master pour exécuter le code-build dans master (nous avons choisi la branche master lors de la configuration du code-build).
Vérifiez les modifications et fusionnez-les.
Utilisez S3bucket pour stocker l’artefact ; créez un compartiment sur S3, créez un dossier à l’intérieur du compartiment, puis ajoutez la configuration du compartiment à la section d’artefact de construction de code. Certains emballages d’artefacts sont « zip ».
Cliquez sur Démarrer la construction pour exécuter le travail.
La construction s’est terminée avec succès, comme indiqué ci-dessus. Pour plus d’informations, vous pouvez consulter le journal de build et les détails des phases.
Déploiement de code AWS
Dans le service AWS CodeDeploy, sélectionnez « Créer une application ».
Assurez-vous que votre instance EC-2 est créée avant de développer une application de déploiement de code. Si ce n’est pas le cas, créez-en un, je l’ai créé en utilisant le système d’exploitation Ubuntu.
Une fois l’instance lancée, confirmez que le serveur EC-2 est configuré avec l’agent de déploiement de code. Consultez le document AWS ci-dessous pour configurer l’agent de déploiement de code dans votre instance EC2 :
À l’aide des stratégies suivantes, créez un rôle IAM pour connecter EC2 à S3 et EC2 pour déployer du code :
Pour attacher le rôle IAM :
Sélectionnez l’instance que vous souhaitez modifier. Cliquez sur le bouton « Actions ». Sélectionnez « Sécurité » dans la liste déroulante. Choisissez «Modifier le rôle IAM».
Une fois l’instance ec2 lancée avec succès, vous devez établir une application à l’aide de code-deploy et choisir la plateforme cloud (Ec2, par exemple) sur laquelle vous souhaitez déployer le code. Accédez à Code-deploy et créez une application.
Après avoir créé l’application, cliquez sur son nom pour l’ouvrir. Cliquez sur « Créer un groupe de déploiement ». Entrez le nom du groupe de déploiement. Sélectionnez un rôle de service que CodeDeploy utilisera pour interagir avec vos instances.
Ce rôle doit disposer des autorisations nécessaires pour interagir avec vos instances EC2 et d’autres services AWS, comme indiqué ci-dessous :
Choisissez « Sur place » si vous souhaitez mettre à jour les instances existantes ou « Bleu/Vert » si vous souhaitez créer de nouvelles instances pour le déploiement, et toutes les configurations restantes sont sélectionnées par défaut.
Dans la console CodeDeploy, sélectionnez l’application que vous avez créée précédemment. Cliquez sur « Déployer l’application ».
Configurer les paramètres de déploiement
- Nom de la demande : Assurez-vous que le nom de votre application est correct.
- Groupe de déploiement : Choisissez le groupe nouvellement créé.
- Type de révision : Choisissez où se trouvent vos fichiers de candidature.
- Amazon S3 : Entrez le nom du compartiment S3 et la clé de l’objet si vos fichiers se trouvent dans un compartiment S3. Cliquez sur créer un déploiement
Vous pouvez maintenant voir que le déploiement a commencé.
Cliquez sur l’ID de déploiement pour lequel vous souhaitez afficher les détails. Sur la page des détails du déploiement, vous verrez un résumé de l’état et de la progression du déploiement. Faites défiler jusqu’à la section Événements du cycle de vie de déploiement. Cette section fournit des informations détaillées sur chaque phase du déploiement. Cliquez sur Afficher les événements pour afficher un journal détaillé du processus de déploiement, y compris des informations sur chaque événement du cycle de vie tel que BeforeInstall, Install, AfterInstall, ApplicationStart, ApplicationStop et ValidateService.
Pipeline de code AWS
Pour automatiser le processus de déploiement à l’aide d’AWS CodePipeline, vous devez créer un pipeline qui intègre AWS CodeCommit, AWS CodeBuild et AWS CodeDeploy. Il y a 4 étapes pour configurer le pipeline :
Étape 1
Cliquez sur Créer un pipeline. Entrez les paramètres du pipeline :
Nom du pipeline : Donnez un nom à votre pipeline.
Sélectionnez le mode d’exécution – En file d’attente
Rôle de service :
- Nouveau rôle de service: si vous n’avez pas de rôle de service existant, sélectionnez cette option. CodePipeline créera un nouveau rôle avec les autorisations nécessaires.
- Rôle de service existant: choisissez cette option si vous disposez déjà d’un rôle de service. Vous devrez sélectionner le rôle dans la liste déroulante.
Étape 2
Sur la page Ajouter une étape source, vous configurerez le fournisseur source pour votre pipeline.
Fournisseur source: Choisissez le fournisseur source de votre pipeline.
AWS CodeCommit: Pour les référentiels hébergés dans AWS CodeCommit.
Ajoutez le nom du référentiel et le nom de la branche, puis sélectionnez les options de détection des modifications.
Cliquez sur Suivant pour passer à la configuration de l’étape de construction.
Étape 3
Sur la page Ajouter une étape de build, configurez les paramètres du fournisseur de build.
Fournisseur de build: Choisissez le fournisseur de build pour votre pipeline.
Nom du projet : Sélectionnez le projet CodeBuild que vous souhaitez utiliser.
Région: Sélectionnez une région
Artefact d’entrée: Sélectionnez l’artefact de l’étape source précédente.
Pour passer à la configuration de l’étape de déploiement, cliquez sur Suivant.
Étape 4
Configurez les paramètres du fournisseur de déploiement sur la page Ajouter une étape de déploiement.
Déployer le fournisseur: Pour votre pipeline, sélectionnez le fournisseur de déploiement. (Déploiement du code AWS)
Nom de la demande : Sélectionnez l’application CodeDeploy que vous souhaitez utiliser.
Groupe de déploiement: sélectionnez le groupe de déploiement que vous avez configuré dans CodeDeploy.
Artefact d’entrée: Sélectionnez l’artefact à partir de l’étape de construction (par exemple, BuildOutput).
Cliquez sur Suivant pour passer aux étapes d’approbation facultatives.
AWS CodePipeline commencera à configurer votre pipeline avec les configurations spécifiées en cliquant sur Créer un pipeline. Ce pipeline utilisera AWS CodeCommit, AWS CodeBuild et AWS CodeDeploy pour automatiser la validation du code dans le processus de déploiement.
Sortir
Le pipeline a été exécuté avec succès. Toutes les étapes (Source, Build, Deploy) ont été réalisées sans erreur.
En mettant en place ce pipeline, nous avons automatisé le processus depuis la validation du code jusqu’au déploiement, garantissant ainsi un flux de travail CI/CD rationalisé.
Vous pouvez accéder à votre application via l’adresse IP de l’instance EC2 pour voir les modifications que vous avez apportées au fichier index.html.
Ouvrez un navigateur Web. Saisissez l’adresse IP publique de votre instance EC2 dans la barre d’adresse (par exemple, http://).
La sortie du fichier index.html que vous avez déployé devrait maintenant être visible.
Source link