Fondamenti di CodeDeploy e appspec.yml

Automatizzare i deployment su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Cosa fa CodeDeploy

flusso

  • Rilascia il codice su EC2, Lambda o ECS
  • Recupera l'artefatto di build da S3, GitHub o Bitbucket
  • Esegue il tuo deployment script tramite eventi di ciclo di vita
  • Esegue rollback automatico se qualcosa fallisce
Automatizzare i deployment su AWS

Componenti base di CodeDeploy

flusso

  • Application: un nome che raggruppa i deployment
  • Deployment group: quali target ricevono il rilascio
  • Deployment configuration: come procede il rollout (batch di istanze o spostamento traffico)
  • Revision: il bundle di artefatti distribuito
Automatizzare i deployment su AWS

Conosci appspec.yml

appspec

  • File YAML alla radice della revisione
  • version: 0.0 e os: linux richiesti in cima
  • Indica a CodeDeploy quali file vanno dove
  • Indica a CodeDeploy cosa eseguire e quando
Automatizzare i deployment su AWS

Eventi di ciclo di vita su EC2

  • Tu scrivi: ApplicationStop, BeforeInstall, AfterInstall
  • Tu scrivi: ApplicationStart, ValidateService
  • Sistema esegue: DownloadBundle, Install
  • Ogni hook è uno script shell o PowerShell sull'istanza

diagramma

Automatizzare i deployment su AWS

Eventi di ciclo di vita su Lambda

  • Lambda ha solo due hook: BeforeAllowTraffic, AfterAllowTraffic
  • Gli hook sono funzioni Lambda, non script shell
  • CodeDeploy sposta l'alias sulla nuova versione
  • Nessuna istanza su cui accedere; nessun file da copiare

confronto

Automatizzare i deployment su AWS

Un vero appspec.yml per EC2

  • version: 0.0 e os: linux in cima
  • files: copia i contenuti di app.zip in /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: script di ciclo di vita
  • ValidateService: smoke test che conferma il successo

zip

Automatizzare i deployment su AWS

Esercitiamoci!

Automatizzare i deployment su AWS

Preparing Video For Download...