Intégrer l'IaC aux pipelines CI/CD

Automatiser les déploiements sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

D'abord le code, l'infrastructure après

code-first

  • Le code est déployé via CodePipeline ; l'infrastructure est mise à jour à la main
  • Les devs font évoluer Lambda ; les ops redimensionnent la file SQS
  • La dérive entre code et infra provoque des pannes
  • Brancher CloudFormation dans le même pipeline
Automatiser les déploiements sur AWS

CloudFormation comme action du pipeline

pipeline-action

  • CodePipeline prend en charge une action de déploiement CloudFormation
  • Le pipeline transmet un artefact de gabarit à l'action
  • Modes : CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • À exécuter avec les actions source, build et déploiement d'appli
Automatiser les déploiements sur AWS

Un pipeline de bout en bout typique

typical

  • Source : un push Git déclenche le pipeline
  • Build : produire un artefact gabarit + appli
  • Déployer l'infra : CloudFormation crée ou met à jour la pile
  • Déployer l'appli : CodeDeploy livre la nouvelle version
Automatiser les déploiements sur AWS

Rétablissement automatique si la pile échoue

  • Les mises à jour en échec reviennent automatiquement au dernier état sain
  • L'étape du pipeline échoue et bloque les suivantes
  • L'alerte d'échec câblée au chapitre 1 se déclenche automatiquement

automatic

Automatiser les déploiements sur AWS

Piles imbriquées pour des gabarits modulaires

  • Une pile imbriquée est déclarée de type AWS::CloudFormation::Stack
  • Découper un gabarit de 2 000 lignes en modules réutilisables
  • La pile parente transmet des paramètres et lit les sorties
  • Chaque module se déploie indépendamment dans la parente

nested

Automatiser les déploiements sur AWS

StackSets pour plusieurs comptes et régions

  • Un StackSet déploie un gabarit sur de nombreux comptes et régions
  • Utile pour socles de sécurité, garde-fous, infra partagée
  • Ajouter ou retirer des instances de pile sans réécrire le gabarit
  • Gestion centrale, déploiement local

stackset

Automatiser les déploiements sur AWS

Choisir la bonne structure

right-shape

  • Pile unique : petite appli, un environnement
  • Piles imbriquées : grand gabarit, composants modulaires
  • StackSets : même gabarit, plusieurs comptes et régions
  • Les trois s'intègrent bien à CodePipeline
Automatiser les déploiements sur AWS

Passons à la pratique !

Automatiser les déploiements sur AWS

Preparing Video For Download...