Integrera IaC i CI/CD-pipelines

Automatisera driftsättningar på AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Kod först, infrastruktur senare

code-first

  • Kod driftsätts via CodePipeline; infrastruktur uppdateras manuellt
  • Utvecklare skalar Lambda; drift ändrar SQS-kön
  • Avvikelser mellan kod och infrastruktur orsakar driftstopp
  • Koppla in CloudFormation i samma pipeline
Automatisera driftsättningar på AWS

CloudFormation som pipeline-action

pipeline-action

  • CodePipeline har stöd för en CloudFormation-deploy-action
  • Pipelinen skickar en mallartefakt till actionen
  • Lägen: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Körs tillsammans med källa-, bygg- och app-deploy-actions
Automatisera driftsättningar på AWS

En typisk end-to-end-pipeline

typical

  • Källa: Git push startar pipelinen
  • Bygg: skapar en mall- och appartefakt
  • Driftsätt infrastruktur: CloudFormation skapar eller uppdaterar stacken
  • Driftsätt app: CodeDeploy levererar den nya versionen
Automatisera driftsättningar på AWS

Automatisk återställning vid stackfel

  • Misslyckade uppdateringar återställs automatiskt till senaste fungerande läge
  • Pipelinesteget misslyckas och stoppar följande steg
  • Larmkopplingen från kapitel 1 utlöses automatiskt

automatic

Automatisera driftsättningar på AWS

Nästlade stackar för modulära mallar

  • En nästlad stack deklareras med typen AWS::CloudFormation::Stack
  • Dela upp en mall på 2000 rader i återanvändbara moduler
  • Föräldrastacken skickar parametrar och läser utdata
  • Varje modul driftsätts oberoende inom föräldern

nested

Automatisera driftsättningar på AWS

StackSets för flera konton och regioner

  • Ett StackSet driftsätter en mall i flera konton och regioner
  • Användbart för säkerhetsbaslinjer, skyddsregler, delad infrastruktur
  • Lägg till eller ta bort stackinstanser utan att skriva om mallen
  • Centralt hanterat, lokalt driftsatt

stackset

Automatisera driftsättningar på AWS

Välj rätt struktur

right-shape

  • Enskild stack: liten app, en miljö
  • Nästlade stackar: stor mall, modulära komponenter
  • StackSets: samma mall, flera konton och regioner
  • Alla tre fungerar bra med CodePipeline
Automatisera driftsättningar på AWS

Nu kör vi en övning!

Automatisera driftsättningar på AWS

Preparing Video For Download...