Základy CodeDeploy a appspec.yml

Automatizace deploymentů na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Co CodeDeploy dělá

postup

  • Nasazuje kód do EC2, Lambda nebo ECS
  • Stáhne build artefakt z S3, GitHubu nebo Bitbucketu
  • Spustí tvůj deployment skript pomocí lifecycle events
  • Při selhání automaticky provede rollback
Automatizace deploymentů na AWS

Základní komponenty CodeDeploy

postup

  • Application: název, který sdružuje nasazení
  • Deployment group: cílové prostředí, které release obdrží
  • Deployment configuration: jak nasazení probíhá (dávky instancí nebo přesun provozu)
  • Revision: balíček artefaktů, který se nasazuje
Automatizace deploymentů na AWS

Poznej appspec.yml

appspec

  • YAML soubor v kořenovém adresáři revize
  • Na začátku musí být version: 0.0 a os: linux
  • Říká CodeDeploy, které soubory kam patří
  • Říká CodeDeploy, co a kdy spustit
Automatizace deploymentů na AWS

Lifecycle events na EC2

  • Píšeš ty: ApplicationStop, BeforeInstall, AfterInstall
  • Píšeš ty: ApplicationStart, ValidateService
  • Systém spouští: DownloadBundle, Install
  • Každý hook je shell nebo PowerShell skript na instanci

diagram

Automatizace deploymentů na AWS

Lifecycle events na Lambdě

  • Lambda má jen dva hooky: BeforeAllowTraffic, AfterAllowTraffic
  • Hooky jsou Lambda funkce, ne shell skripty
  • CodeDeploy přesune alias na novou verzi
  • Žádné instance k přihlášení, žádné soubory ke kopírování

porovnání

Automatizace deploymentů na AWS

Reálný appspec.yml pro EC2

  • Na začátku version: 0.0 a os: linux
  • files: zkopíruje obsah app.zip do /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: lifecycle skripty
  • ValidateService: smoke test potvrdí úspěch

zip

Automatizace deploymentů na AWS

Pojďme cvičit!

Automatizace deploymentů na AWS

Preparing Video For Download...