Driftsättningsstrategier: versioner, alias och trafikomstyrning

Serverlösa applikationer med AWS Lambda

Claudio Canales

Senior DevOps Engineer

Varför driftsättningsstrategin spelar roll

  • Upptäck buggar snabbt.
  • Begränsa skadeverkningarna.
  • Återhämta dig snabbt.

Riskfylld vs säker driftsättning

Serverlösa applikationer med AWS Lambda

$LATEST kontra publicerade versioner

$LATEST

  • Flyttas varje gång du uppdaterar koden.

Versioner

  • Oföränderliga ögonblicksbilder.
  • Enkelt att låsa för återställningar och trafikdelning.

Latest kontra versioner

Serverlösa applikationer med AWS Lambda

En version är en oföränderlig ögonblicksbild

  • Behandla versioner som release-artefakter.
  • Varje version innehåller kod och konfiguration.
  • När den väl publicerats ändras den inte.
  • Du kan alltid återgå till ett känt fungerande tillstånd.

Oföränderlig versionsögonblicksbild

Serverlösa applikationer med AWS Lambda

Alias är stabila pekare

  • En stabil pekare.
  • Anropa aliaset i stället för en version.
  • Uppdatera vart det pekar utan att ändra anroparna.

Alias pekar på en version

Serverlösa applikationer med AWS Lambda

Dev- och prod-alias

  • Passar utmärkt för miljöer.
  • Flytta dev ofta.
  • Befordra till prod genom att flytta aliaset.

Aliasmappning för dev och prod

Serverlösa applikationer med AWS Lambda

Trafikomstyrning med viktade alias

  • Testa i produktion på ett säkert sätt.
  • Merparten av trafiken stannar på den aktuella versionen.
  • En liten andel skickas till kandidatversionen.

Konceptet viktad aliasroutning

Serverlösa applikationer med AWS Lambda

Canary steg 1: 90/10

  • 90 % stannar på den aktuella versionen.
  • 10 % testar kandidaten under verklig belastning.
  • Bevaka fel och svarstider.

Canary 90/10-delning

Serverlösa applikationer med AWS Lambda

Canary steg 2: 50/50

  • Om 10 %-segmentet ser bra ut, öka vikten.
  • 50 % aktuell, 50 % kandidat.
  • Problem syns snabbt vid 50/50.
  • Övervakning är avgörande.

Canary 50/50-delning

Serverlösa applikationer med AWS Lambda

Canary steg 3: 100 % ny

  • Skicka all trafik till den nya versionen.
  • Den gamla versionen finns fortfarande kvar.
  • Återställning är enkel.

Canary 100 % ny

Serverlösa applikationer med AWS Lambda

Blå/grön-modellen

  • Blå = aktuell stabil version.
  • Grön = ny kandidatversion.
  • Byt genom att flytta aliaset.
  • Viktad routning gör bytet gradvis.

Blå-grön omstyrning

Serverlösa applikationer med AWS Lambda

Återställning = flytta aliaset tillbaka

  • Ingen omdriftsättning krävs.
  • Flytta aliaset till den senast kända fungerande versionen.
  • Återhämta dig på sekunder, inte timmar.
  • Oföränderliga versioner och stabila alias samverkar.

Återställning genom aliasflyttning

Serverlösa applikationer med AWS Lambda

Övervaka under omstyrningen

  • Fel och timeouts.
  • Körtid och svarstider i svansen.
  • Begränsningar om du använder kapacitetstak.
  • Pausa eller återställ snabbt.

Övervakningsvärden vid driftsättning

Serverlösa applikationer med AWS Lambda

Vanlig fallgrop: att använda $LATEST i produktion

  • Att förlita sig på $LATEST minskar förutsägbarheten.
  • Versioner och alias visar tydligt vad som körs.
  • Återställningar är säkra.

Varning för drift med $LATEST

Serverlösa applikationer med AWS Lambda

Ignore

Serverlösa applikationer med AWS Lambda

Checklista för säker driftsättning

  • Publicera en version.
  • Flytta trafiken gradvis med ett alias.
  • Övervaka resultaten.
  • Ha återställning redo i varje steg.

Diagram med checklista för säker driftsättning

Serverlösa applikationer med AWS Lambda

Viktiga lärdomar

  • Versioner ger förutsägbarhet.
  • Alias ger stabilitet.
  • Viktad routning ökar säkerheten.
  • Återställning = flytta aliaset.

Viktiga lärdomar om driftsättning

Serverlösa applikationer med AWS Lambda

Nu kör vi en övning!

Serverlösa applikationer med AWS Lambda

Preparing Video For Download...