Prestanda- och resursoptimering

Driftsättning av applikationer på AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Långsam och dyr

  • Appen känns långsam vid trafikspikar
  • Lambda-kostnaden stiger samma månad
  • Optimering gör den snabbare och billigare

En hastighets- och kostnadsmätare som visar en funktion som är både långsam och dyr, med pil mot optimering

Driftsättning av applikationer på AWS

Samtidighet: kostnad kontra kallstart


Reserverad: begränsa och skydda

  • Begränsar och garanterar kapacitet för en funktion
  • Billigaste styrmetoden, men löser inte kallstarter

Etablerad: betala för värme

  • Håller instanser förvärmda – inga kallstarter
  • Kostar mer; använd bara där låg latens verkligen krävs
Driftsättning av applikationer på AWS

Rätt minnesstorlek med varaktighets- och kostnadskurvan

Kurva över varaktighet och kostnad vid ökad minnesallokering: varaktighetslinjen sjunker och planar ut, totalkostnaden bildar en U-form med det billigaste optimala minnesinställningen markerat

  • Mer minne = mer CPU = kortare varaktighet
  • Kostnad = minnespris × varaktighet
  • Den billigaste punkten ligger ofta i mitten
  • Testa flera storlekar och välj sedan
Driftsättning av applikationer på AWS

Cachelagring på applikationsnivå

  • Återanvänd arbete inom exekveringskontexten
  • En varm Lambda behåller globala variabler mellan anrop
  • Cacha konfiguration, klienter och frekventa uppslag
  • ElastiCache för delad cache mellan instanser

Cachelagring i Lambdas exekveringskontext: globalt klientobjekt återanvänds vid varma anrop, och ElastiCache-kluster delar frekvent data mellan flera funktionsinstanser

Driftsättning av applikationer på AWS

CloudFront-cachelagring vid edge

  • CloudFront: cacha svar vid edge-platser
  • Hantera upprepade förfrågningar utan att nå backend
  • Cache-nycklar kan inkludera headers, frågesträngar, cookies
  • Statiskt och cachebart innehåll skalas utan extra kostnad

CloudFront edge-cachelagring: glob med edge-platser som levererar cachade svar till närliggande användare utan att nå backend, med cache-nyckelkonfiguration som visar headers och frågesträngar

Driftsättning av applikationer på AWS

Välj rätt cachelager

Tre staplade cachelager: CloudFront vid edge för statiskt och brett delat innehåll, minnesintern cache per instans för frekventa objekt, och ElastiCache eller DAX för delade högfrekventa läsningar

  • Edge (CloudFront): statiskt, brett delat innehåll
  • Applikation (minnesintern): frekventa objekt per instans
  • Data (ElastiCache/DAX): delade frekventa läsningar
  • Kombinera lagren – varje lager sänker en annan kostnad
Driftsättning av applikationer på AWS

Sätt ihop optimeringen

  • Välj rätt minnesstorlek med varaktighets- och kostnadskurvan
  • Använd etablerad samtidighet bara där latens spelar roll
  • Cacha vid edge, app- och datanivå
  • Mät, ändra en sak, mät igen

Optimeringsöversikt: varaktighets- och kostnadskurva för minnesdimensionering, beslut om etablerad samtidighet, diagram över tre cachelager och mät-ändra-mät-cykeln

Driftsättning av applikationer på AWS

Nu kör vi en övning!

Driftsättning av applikationer på AWS

Preparing Video For Download...