Notions de base CodeDeploy et appspec.yml

Automatiser les déploiements sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Rôle de CodeDeploy

flux

  • Déploie le code vers EC2, Lambda ou ECS
  • Récupère l'artefact de build depuis S3, GitHub ou Bitbucket
  • Exécute votre script de déploiement via des événements du cycle de vie
  • Rétablit automatiquement en cas d'échec
Automatiser les déploiements sur AWS

Composants clés de CodeDeploy

flux

  • Application : nom qui regroupe les déploiements
  • Groupe de déploiement : quelles cibles reçoivent la release
  • Configuration de déploiement : déroulé (lots d'instances ou bascule de trafic)
  • Révision : bundle d'artefacts 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
  • Exécuté par le système : DownloadBundle, Install
  • Chaque hook 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 hooks : BeforeAllowTraffic, AfterAllowTraffic
  • Les hooks sont des fonctions Lambda, pas des scripts shell
  • CodeDeploy bascule l'alias vers la nouvelle version
  • Pas d'instances à ouvrir ; pas de fichiers à copier

comparaison

Automatiser les déploiements sur AWS

Un appspec.yml concret 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 : smoke test 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...