Notions de base de CodeDeploy et appspec.yml

Automatiser les déploiements sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Ce que fait CodeDeploy

flux

  • Publie le code vers EC2, Lambda ou ECS
  • Récupère l'artéfact de construction depuis S3, GitHub ou Bitbucket
  • Exécute votre script de déploiement selon les événements du cycle de vie
  • Rétablit automatiquement en cas d'échec
Automatiser les déploiements sur AWS

Composants essentiels de CodeDeploy

flux

  • Application : nom qui regroupe les déploiements
  • Groupe de déploiement : cibles recevant la publication
  • Configuration de déploiement : déroulement (lots d'instances ou bascule du trafic)
  • Révision : paquet d'artéfacts déployé
Automatiser les déploiements sur AWS

Découvrir appspec.yml

appspec

  • Fichier YAML à la racine de la révision
  • version: 0.0 et os: linux requis en tête
  • Indique à CodeDeploy quels fichiers vont où
  • Indique à CodeDeploy quoi exécuter, et quand
Automatiser les déploiements sur AWS

Événements du cycle de vie sur EC2

  • À écrire par vous : ApplicationStop, BeforeInstall, AfterInstall
  • À écrire par vous : ApplicationStart, ValidateService
  • Système : DownloadBundle, Install
  • Chaque crochet est un script shell ou PowerShell sur l'instance

schéma

Automatiser les déploiements sur AWS

Événements du cycle de vie sur Lambda

  • Lambda n'a que deux crochets : BeforeAllowTraffic, AfterAllowTraffic
  • Les crochets sont des fonctions Lambda, pas des scripts shell
  • CodeDeploy bascule l'alias vers la nouvelle version
  • Aucune instance où se connecter ; aucun fichier à copier

comparaison

Automatiser les déploiements sur AWS

Un vrai appspec.yml pour EC2

  • version: 0.0 et os: linux en tête
  • files : copier le contenu de app.zip vers /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart : scripts du cycle de vie
  • ValidateService : test sommaire pour confirmer la réussite

zip

Automatiser les déploiements sur AWS

Passons à la pratique !

Automatiser les déploiements sur AWS

Preparing Video For Download...