Une introduction aux outils DevOps sur AWS

Une introduction aux outils DevOps sur AWS
DevOps (opérations de développement) est un ensemble d'outils et de pratiques utilisés pour développer et fournir des applications logicielles plus rapidement. DevOps lui-même n'est pas un outil qui est utilisé pour accélérer le développement, la libération et la livraison des logiciels. Il existe de nombreux outils open source qui sont utilisés pour implémenter DevOps dans une organisation. En général, les étapes de base suivantes sont effectuées pour implémenter les meilleures pratiques DevOps pour développer et fournir du code plus rapidement.
  • Plan
  • Code
  • Construire
  • Test
  • Libérer
  • Déployer
  • Fonctionner
  • Moniteur

Outre les outils open source, différents fournisseurs de services cloud fournissent leurs outils natifs du cloud pour implémenter les pratiques DevOps sur le cloud. Cet article décrit différents outils et technologies fournis par AWS pour implémenter DevOps sur AWS.

Codecommit AWS

AWS CodeCommit est un service utilisé pour le contrôle de version et hébergé par AWS. Tout comme les autres services de contrôle de version comme Github, Bitbucket et GitLab, le code source peut être poussé vers des référentiels privés dans CodeCommit. Il n'y a pas de référentiels publics sur AWS Codecommit.

AWS CodeCommit est un service hautement disponible, sécurisé et évolutif utilisé pour héberger des référentiels de code privé. En utilisant AWS CodeCommit, vous n'avez pas besoin de mettre à niveau le service si vos référentiels augmentent au-delà d'une limite. Il évolue automatiquement avec l'augmentation du nombre de référentiels ou de taille de référentiel.

Voici la liste de certains avantages fournis par le service Codecommit AWS.

  • Service hautement disponible et entièrement géré
  • Stocke le code avec le cryptage au repos
  • Collaboration de travail
  • Service de contrôle de version évolutif
  • Intégré à certains services AWS et tiers
  • Migration facile à partir d'autres référentiels
  • Prend en charge les commandes GIT que vous connaissez déjà

La console AWS CodeCommit fournit une interface utilisateur graphique conviviale pour visualiser les demandes de traction, les commits, les branches et les balises GIT. Les référentiels de CodeCommit peuvent être clonés à l'aide d'URL SSH et HTTPS.

Dans les paramètres du référentiel CodeCommit, vous pouvez permettre aux notifications et déclencheurs de notif.

AWS CodeBuild

AWS CodeBuild est un service entièrement géré utilisé pour exécuter des tests, créer le code et générer les artefacts de construction à partir du code. En utilisant AWS CodeBuild, vous n'avez pas besoin de fournir un serveur de construction supplémentaire pour créer le code source. Il fournit des environnements préconfigurés pour la plupart des langages de programmation populaires comme Python, Java, Nodejs et construit des outils comme Maven, NPM et Gradle. Vous pouvez également créer vos propres environnements personnalisés pour créer votre projet en utilisant AWS CodeBuild.

AWS CodeBuild est un service sans serveur, et vous n'êtes facturé que lorsqu'une version est en cours d'exécution. De cette façon, vous pouvez économiser de l'argent pour un serveur supplémentaire pour la construction des projets. Voici quelques avantages de l'utilisation du service CodeBuild à partir d'AWS.

  • CodeBuild est un service entièrement géré, et vous n'avez pas besoin de mettre à jour et de gérer le serveur de construction.
  • Il s'agit d'un service et d'échelles évolutives avec l'augmentation du traitement. Vous ne payez que pour le temps que la construction fonctionne.
  • Il fournit des environnements de construction préconfigurés qui facilitent l'utilisation.
  • Vous pouvez également créer vos propres environnements de construction personnalisables sur CodeBuild.

AWS CodeBuild peut être intégré à différents services de fournisseur de code source pour récupérer le code. Vous pouvez récupérer le code à partir de GitHub, Bitbucket, GitHub Enterprise, CodeCommit et S3. Vous pouvez également configurer le service CodeBuild pour envoyer les journaux de construction aux journaux CloudWatch qui peuvent aider à diagnostiquer les défaillances de construction. Pour communiquer avec CloudWatch, AWS CodeBuild a besoin d'un rôle IAM avec des autorisations spécifiques.

AWS CodePloy

AWS CodePloy est un service entièrement géré fourni par AWS pour déployer l'application prédéfinie à différents services de calcul comme EC2, AWS Lambda, AWS ECS et serveurs sur site. Le service AWS CodeDepLoy peut déployer automatiquement le type de contenu suivant.

  • Fonction AWS Lambda
  • Fichiers exécutables
  • Fichiers multimédias
  • Scripts
  • Code
  • Paquets

AWS CodeDeploy est un service sans serveur, et vous n'êtes facturé que lorsqu'un déploiement est en cours d'exécution, et le reste du temps, vous n'êtes pas facturé. Tout comme AWS CodeBuild, AWS CodePloy élimine également la nécessité de provisionner un serveur supplémentaire à des fins de déploiement. Voici quelques avantages de l'utilisation du service AWS CodeDeploy.

  • CodePloy peut être utilisé pour déployer des applications traditionnelles sur les serveurs et les applications qui déploient les fonctions lambda à AWS Lambda.
  • Il peut être utilisé pour automatiser complètement le processus de déploiement de code dans différents environnements comme (Dev, Test, Prod).
  • Il peut être utilisé pour effectuer un déploiement bleu / vert qui évite le temps d'arrêt de l'application pendant le déploiement.
  • Le déploiement peut être annulé si une erreur se produit lors du déploiement de la dernière version.

AWS CodePipeline

AWS CodePipeline est un service utilisé pour visualiser un pipeline CICD complet à l'aide d'une interface utilisateur graphique conviviale. Il crée une belle interface graphique d'un pipeline en combinant différents services comme AWS Codecommit, AWS CodeBuild, AWS CodePloy. Il facilite le processus de libération du logiciel en visualisant chaque étape du pipeline.

Lorsqu'un développeur pousse le code vers le CodeCommit, le codepipeline, s'il est configuré de manière appropriée, date le nouveau code et transmet le dernier code au service AWS CodeBuild pour exécuter des tests et créer des artefacts de code. Après avoir construit les artefacts, ces artefacts sont transmis au service AWS CodePloy pour déployer la dernière version de l'application sur le serveur.

Toutes ces étapes peuvent être visualisées et intégrées les unes avec les autres dans le service de codepiline. Lors du déploiement du code de la mise en scène à un environnement de production, une étape d'approbation manuelle peut être ajoutée à l'aide de CodePipeline AWS. Afin de déployer le code dans l'environnement de production, une personne ayant des autorisations spécifiques doit approuver le déploiement. Il évite de déployer un engagement non authentique dans la production, ce qui peut briser l'environnement de production.

AWS Codeguru

Amazon Codeguru est un service fourni par AWS pour examiner le code source. AWS CodeGuru utilise l'apprentissage automatique et l'analyse de programme pour revoir le code source et trouver les défauts potentiels du code. Après avoir trouvé les défauts dans le code source, AWS CodeGuru donne des suggestions pour résoudre ces défauts pour les langages de programmation Java et Python.

Actuellement, AWS CodeGuru ne prend en charge que les langages de programmation Java et Python et peut lire le code source des fournisseurs source suivants.

  • Codecommit AWS
  • AWS S3
  • Cloud GitHub Enterprise
  • Serveur d'entreprise GitHub
  • Github
  • Bitbucket

Conclusion

Il existe différents services AWS Cloud-Native qui peuvent être utilisés pour créer un pipeline CICD complet. Le principal avantage de l'utilisation des services propriétaires AWS est que ces services sont des services sans serveur entièrement gérés et interagissent les uns avec les autres en privé. Il existe différents services pour stocker le code source (AWS CodeCommit), la création et l'exécution de tests sur le code (AWS CodeBuild), le déploiement du code sur les serveurs (AWS CodeDeploy) sur AWS. Ces services peuvent être intégrés les uns aux autres pour créer un pipeline complet à l'aide du service CodePipeline AWS. Cet article donne une brève compréhension de tous ces services AWS pour mettre en œuvre des pratiques DevOps sur AWS.