Integrace IaC do CI/CD pipeline

Automatizace deploymentů na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Nejdřív kód, infrastruktura později

nejprve kód

  • Kód se nasazuje přes CodePipeline, infrastruktura se upravuje ručně
  • Vývojáři škálují Lambdu, provoz mění velikost fronty SQS
  • Rozdíl mezi kódem a infrastrukturou způsobuje výpadky
  • Zapoj CloudFormation do stejné pipeline
Automatizace deploymentů na AWS

CloudFormation jako akce v pipeline

akce v pipeline

  • CodePipeline podporuje nasazovací akci CloudFormation
  • Pipeline předá akci artefakt šablony
  • Režimy: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Běží společně s akcemi pro zdroj, sestavení a nasazení aplikace
Automatizace deploymentů na AWS

Typická end-to-end pipeline

typický postup

  • Zdroj: git push spustí pipeline
  • Sestavení: vytvoří šablonu a artefakt aplikace
  • Nasazení infrastruktury: CloudFormation vytvoří nebo aktualizuje stack
  • Nasazení aplikace: CodeDeploy doručí novou verzi
Automatizace deploymentů na AWS

Automatické vrácení při selhání stacku

  • Neúspěšné aktualizace se automaticky vrátí do posledního funkčního stavu
  • Fáze pipeline selže a zastaví další fáze
  • Upozornění na chyby z kapitoly 1 se spustí automaticky

automaticky

Automatizace deploymentů na AWS

Vnořené stacky pro modulární šablony

  • Vnořený stack se deklaruje jako typ AWS::CloudFormation::Stack
  • Rozděl šablonu o 2 000 řádcích na znovupoužitelné moduly
  • Nadřazený stack předává parametry a čte výstupy
  • Každý modul se nasazuje nezávisle uvnitř nadřazeného stacku

vnořený stack

Automatizace deploymentů na AWS

StackSets pro více účtů a regionů

  • StackSet nasadí jednu šablonu napříč mnoha účty a regiony
  • Hodí se pro bezpečnostní standardy, ochranná pravidla a sdílenou infrastrukturu
  • Přidávej nebo odebírej instance stacku bez úprav šablony
  • Centrálně spravováno, lokálně nasazováno

StackSet

Automatizace deploymentů na AWS

Jak zvolit správný přístup

správná volba

  • Jeden stack: malá aplikace, jedno prostředí
  • Vnořené stacky: velká šablona, modulární komponenty
  • StackSets: stejná šablona, mnoho účtů a regionů
  • Všechny tři přístupy dobře fungují s CodePipeline
Automatizace deploymentů na AWS

Pojďme cvičit!

Automatizace deploymentů na AWS

Preparing Video For Download...