CodeDeploy-basics en appspec.yml

Deployments automatiseren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Wat CodeDeploy doet

stroom

  • Publiceert code naar EC2, Lambda of ECS
  • Haalt het build-artifact op uit S3, GitHub of Bitbucket
  • Voert je deploymentscript uit via lifecycle-events
  • Rolt automatisch terug als er iets faalt
Deployments automatiseren op AWS

Belangrijkste onderdelen van CodeDeploy

stroom

  • Application: een naam die deployments groepeert
  • Deployment group: welke targets de release krijgen
  • Deployment configuration: hoe de rollout verloopt (batches of traffic shift)
  • Revision: het artifact-bundle dat wordt gedeployed
Deployments automatiseren op AWS

Maak kennis met appspec.yml

appspec

  • YAML-bestand in de root van de revision
  • version: 0.0 en os: linux vereist bovenaan
  • Vertelt CodeDeploy welke files waarheen gaan
  • Vertelt CodeDeploy wat te draaien, en wanneer
Deployments automatiseren op AWS

Lifecycle-events op EC2

  • Je schrijft: ApplicationStop, BeforeInstall, AfterInstall
  • Je schrijft: ApplicationStart, ValidateService
  • Systeem draait: DownloadBundle, Install
  • Elke hook is een shell- of PowerShell-script op de instance

diagram

Deployments automatiseren op AWS

Lifecycle-events op Lambda

  • Lambda heeft maar twee hooks: BeforeAllowTraffic, AfterAllowTraffic
  • Hooks zijn Lambda-functions, geen shellscripts
  • CodeDeploy verschuift het alias naar de nieuwe versie
  • Geen instances om in te loggen; geen files om te kopiëren

vergelijking

Deployments automatiseren op AWS

Een echte appspec.yml voor EC2

  • version: 0.0 en os: linux bovenaan
  • files: kopieer de inhoud van app.zip naar /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: lifecycle-scripts
  • ValidateService: smoke-test bevestigt succes

zip

Deployments automatiseren op AWS

Laten we oefenen!

Deployments automatiseren op AWS

Preparing Video For Download...