top aws devops tools
Meilleurs outils Amazon AWS DevOps: un pipeline , référentiel de code source, construction et déploiement avec Amazon Web Services
Lorsque j'ai commencé ma carrière dans le domaine du logiciel il y a environ 20 ans, l'infrastructure (logiciel et matériel) pour tout type de développement et de déploiement devait être achetée.
Cela comprenait la commande de serveurs auprès du fournisseur, l'attente d'un certain temps pour obtenir les mêmes, une fois l'espace serveur livré, il fallait réserver, l'installation du serveur, du système d'exploitation, la configuration du stockage, etc. Nous devions également nous inquiéter. performances, disponibilité (24 * 7), maintenance, réseau, etc.
C'était trop d'efforts pour mettre en place un serveur pour les activités de développement et de déploiement d'applications.
Ce que vous apprendrez:
- Évolution du cloud computing
- Création et déploiement à l'aide des outils AWS
- Intégration de Jenkins avec les services AWS
- lecture recommandée
Évolution du cloud computing
Les choses ont dû changer avec l'évolution du Cloud Computing, ce qui signifie que vous accédez à toutes vos applications et bases de données sur Internet. Les fournisseurs de Cloud Computing gèrent donc tout le matériel nécessaire pour exécuter votre application Web.
Toutes les ressources avec une configuration appropriée dont vous avez besoin pour héberger votre application sont disponibles en un clic. Le temps est considérablement réduit pour mettre les ressources à la disposition des développeurs. Plus important encore, vous ne payez que ce dont vous avez besoin.
Les développeurs utilisant des services basés sur le Cloud se concentrent uniquement sur ce dont ils ont besoin pour travailler sur nos projets et ne pas se soucier de la disponibilité de l'infrastructure. Je ne me lance pas dans les types de cloud computing (IaaS, PaaS, SaaS), il existe des tonnes d'informations disponibles sur Internet pour décrire ce qu'elles sont.
Il existe de nombreux fournisseurs de cloud. Mais les 3 plus populaires avec lesquels j'ai travaillé sont:
- Services Web Amazon
- Microsoft Azure
- Google Cloud
Dans cette section, je me concentrerai sur les outils pour un pipeline , référentiel de code source, construction et déploiement avec Services Web Amazon . Sans oublier que les équipes utilisent toujours des outils DevOps comme Jenkins, Git, Maven et autres.
Il est donc impératif que, même si les équipes souhaitent déplacer leurs actifs et leurs artefacts vers une infrastructure cloud, nous devons également maximiser leurs investissements existants dans les outils et les données avec des intégrations / migrations dans la mesure du possible.
Cliquez sur Ici pour en savoir plus sur AWS et les différents services pour les architectes, les développeurs et SysOPS. Nous utiliserons le compte gratuit pour les outils mentionnés, mais bien sûr, dans un environnement de production, vous devrez vous procurer les services à utiliser.
Création et déploiement à l'aide des outils AWS
Du point de vue de la construction et du déploiement, nous examinerons les services AWS suivants
comment tester la compatibilité entre navigateurs
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline est similaire au pipeline Jenkins, ce qui permet d'avoir une vue visuelle du processus de livraison de bout en bout.
Ainsi, dans un CodePipeline, vous configurerez généralement les éléments suivants
- Référentiel de code source - Votre code source doit donc se trouver dans AWS CodeCommit ou dans le référentiel GitHub.
- Créer un service - Les détails AWS CodeBuild seront configurés dans le cadre du pipeline.
- Déployer - AWS CodeDeploy sera configuré dans le pipeline.
- Au cours du processus de déploiement dans différents environnements, si des approbations sont nécessaires, elles peuvent également être configurées
Donc, s'il y a un changement de code par le développeur, la représentation visuelle de Build and Deploy peut être considérée comme automatisée.
Configuration du référentiel de code source dans AWS CodePipeline
Configuration de la construction dans AWS CodePipeline qui utilise la construction Maven
Configuration du déploiement dans AWS CodePipeline
L'exécution complète est visible dans AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit est un service de contrôle de version en ligne sécurisé qui héberge des référentiels Git privés. Une équipe n'a pas besoin de maintenir son propre référentiel de contrôle de version au lieu de cela, elle utilise AWS CodeCommit pour stocker son code source ou même des binaires comme les fichiers WAR / JAR / EAR générés à partir de la construction.
Avec AWS CodeCommit, vous créez un référentiel et chaque développeur le clonera sur sa machine locale, y ajoutera des fichiers et le repoussera dans le référentiel AWS CodeCommit. L'un utilise les commandes GIT standard avec le référentiel AWS CodeCommit.
Pour Par exemple. une fois que le référentiel AWS CodeCommit est cloné sur la machine locale, vous utiliserez des commandes telles que «git pull», «git add», «git commit», «git push», etc.
Référentiel vide AWS CodeCommit illustratif créé
Cloner le référentiel sur la machine locale
Fichiers ajoutés au référentiel AWS CodeCommit
3. AWS CodeBuild
Comme nous l'avons vu, le code source et les autres artefacts du projet sont stockés dans le référentiel AWS CodeCommit.
Pour implémenter l'intégration continue, AWS CodeBuild comme Jenkins récupère les dernières modifications du code source à partir du référentiel AWS CodeCommit ou GitHub tel que configuré et basé sur la spécification de construction Fichier YAML (créé en tant que buildspec.yml) les commandes sont exécutées en fonction des quatre phases telles que l'installation, la pré-construction, la construction et la post-construction.
Une fois la construction terminée, les artefacts (WAR / ZIP / JAR / EAR) sont stockés dans le stockage AWS qui est un compartiment S3.
Exemple de fichier buildspec.yml
version: 0.2 phases: install: commands: - echo Nothing in the install phase... pre_build: commands: - echo Nothing in the pre_build phase... build: commands: - echo Build started on `date` - mvn clean install post_build: commands: - echo Build completed on `date` artifacts: files: - target/HelloWorld-Maven.war
Exemple de projet AWS Codebuild
Construire le succès
Artefact (fichier WAR) copié dans le compartiment S3
4. AWS CodeDeploy
Comme son nom l'indique, AWS Codedeploy est le service de déploiement qui automatise le déploiement de l'application (dans ce cas, le fichier WAR) sur les instances Amazon EC2 Linux ou Windows.
Étant donné que nous avons maintenant les artefacts stockés dans le compartiment S3 qui a été terminé à l'aide d'AWS CodeBuild, les artefacts sont ensuite récupérés du compartiment S3 et déployés de manière appropriée sur le serveur d'applications Tomcat ou JBoss, etc. dans le provisionnement d'instance AWS EC2.
AWS CodeDeploy dépend d'un fichier YAML appelé appspec.yml qui contient des instructions sur le déploiement sur les instances EC2.
Exemple de fichier appspec.yml dans lequel le fichier index.html est copié et déployé sur le serveur Apache
version:10.0 os:linux files: -source: /opt/deploy/index.html destination:/var/www/html/ hooks: BeforeInstall: -location:scripts/before_install runas:niranjan AfterInstall: -location:scripts/restart_server runas:niranjan
before_install scénario
restart_server scénario
Repo GitHub de tous les fichiers nécessaires pour exécuter AWS CodeDeploy
Exécution du déploiement dans AWS CodeDeploy
Intégration de Jenkins avec les services AWS
Comme mentionné précédemment, de nos jours, les équipes utilisent Jenkins comme l'outil de facto CI et dans la plupart des cas, elles n'aimeraient pas vraiment s'en éloigner mais plutôt s'intégrer aux services AWS dont nous avons discuté. Bien que certaines procédures soient impliquées et que j'ai montré des captures d'écran de l'intégration.
1. Intégration de Jenkins avec AWS CodeCommit
2. Intégration de Jenkins avec AWS CodeBuild
3. Intégration de Jenkins avec AWS CodeDeploy
Tout rassembler pour AWS DevOps Stack:
La pile recherche ci-dessous les services AWS décrits ci-dessus.
J'espère que ce tutoriel sur, des outils pour un pipeline , référentiel de code source, construction et déploiement avec Amazon Web Services, vous a été utile.
lecture recommandée
- Tutoriel AWS CodeCommit pour l'implémentation de DevOps dans le cloud
- Utilisation de l'outil AWS CodeDeploy DevOps pour un déploiement automatisé
- Déploiement continu dans DevOps
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Didacticiel AWS CodeBuild: extraction de code à partir de Maven Build
- Livraison continue dans DevOps
- 10 MEILLEURS outils de surveillance du cloud pour une gestion parfaite du cloud
- Tests continus dans DevOps