Stratégies de déploiement : versions, alias et transfert de trafic

Applications sans serveur avec AWS Lambda

Claudio Canales

Senior DevOps Engineer

Pourquoi la stratégie de déploiement compte

  • Détecter vite les bogues.
  • Limiter le rayon d'impact.
  • Revenir rapidement.

Déploiement risqué vs sécuritaire

Applications sans serveur avec AWS Lambda

$LATEST vs versions publiées

$LATEST

  • Bouge à chaque mise à jour du code.

Versions

  • Instantanés immuables.
  • Faciles à épingler pour retours arrière et partage de trafic.

Dernière vs versions

Applications sans serveur avec AWS Lambda

Une version est un instantané immuable

  • Traitez les versions comme des artéfacts de publication.
  • Chacune saisit le code et la configuration.
  • Une fois publiée, elle ne change plus.
  • Retour possible à un état connu stable.

Instantané de version immuable

Applications sans serveur avec AWS Lambda

Les alias sont des pointeurs stables

  • Un pointeur stable.
  • Invoquez l'alias plutôt qu'une version.
  • Mettez à jour sa cible sans changer les appelants.

Un alias pointe vers une version

Applications sans serveur avec AWS Lambda

Alias dev et prod

  • Idéal pour les environnements.
  • Déplacez souvent dev.
  • Promouvez en prod en déplaçant l'alias.

Correspondance d'alias dev et prod

Applications sans serveur avec AWS Lambda

Transfert de trafic avec alias pondérés

  • Tester en production de façon sûre.
  • La plupart du trafic reste sur la version actuelle.
  • Un petit pourcentage va au candidat.

Concept d'acheminement pondéré par alias

Applications sans serveur avec AWS Lambda

Étape canari 1 : 90/10

  • 90 % reste sur la version actuelle.
  • 10 % teste le candidat sous vraie charge.
  • Surveillez erreurs et latence.

Fraction canari 90/10

Applications sans serveur avec AWS Lambda

Étape canari 2 : 50/50

  • Si les 10 % vont bien, augmentez la pondération.
  • 50 % actuel, 50 % candidat.
  • Les problèmes ressortent vite en 50/50.
  • La surveillance est essentielle.

Fraction canari 50/50

Applications sans serveur avec AWS Lambda

Étape canari 3 : 100 % nouveau

  • Dirigez tout le trafic vers la nouvelle version.
  • L'ancienne version reste disponible.
  • Retour arrière simple.

Canari 100 % nouveau

Applications sans serveur avec AWS Lambda

Modèle mental bleu/vert

  • Bleu = version stable actuelle.
  • Vert = nouvelle version candidate.
  • Basculez en déplaçant l'alias.
  • L'acheminement pondéré rend le basculement graduel.

Basculement bleu-vert

Applications sans serveur avec AWS Lambda

Retour arrière = reculer l'alias

  • Aucun redéploiement requis.
  • Déplacez l'alias vers la dernière version stable connue.
  • Rétablir en secondes, pas en heures.
  • Versions immuables et alias stables fonctionnent ensemble.

Retour arrière en déplaçant l'alias

Applications sans serveur avec AWS Lambda

Surveiller pendant le transfert

  • Erreurs et délais d'expiration.
  • Durée et latence en queue.
  • Limitation si vous utilisez des plafonds.
  • Mettre en pause ou revenir vite.

Indicateurs de surveillance de déploiement

Applications sans serveur avec AWS Lambda

Piège courant : traiter $LATEST comme prod

  • S'appuyer sur $LATEST fait perdre en prédictibilité.
  • Versions et alias clarifient ce qui s'exécute.
  • Les retours arrière sont sécuritaires.

Avertissement de dérive du dernier

Applications sans serveur avec AWS Lambda

Ignorer

Applications sans serveur avec AWS Lambda

Liste de vérification : déploiement sécuritaire

  • Publier une version.
  • Transférer le trafic graduellement avec un alias.
  • Surveiller les résultats.
  • Garder le retour arrière prêt à chaque étape.

Liste de vérification d'un déploiement sécuritaire

Applications sans serveur avec AWS Lambda

Points clés à retenir

  • Les versions offrent la prédictibilité.
  • Les alias assurent la stabilité.
  • L'acheminement pondéré ajoute de la sécurité.
  • Retour arrière = déplacer l'alias.

Points clés du déploiement

Applications sans serveur avec AWS Lambda

Passons à la pratique !

Applications sans serveur avec AWS Lambda

Preparing Video For Download...