Skala containrar och serverlösa program
Dricks
Det här innehållet är ett utdrag från eBook, Architecting Cloud Native .NET Applications for Azure, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.
Det finns två sätt att skala ett program: upp eller ut. Den förra avser att lägga till kapacitet till en enskild resurs, medan den senare syftar på att lägga till fler resurser för att öka kapaciteten.
Den enkla lösningen: skala upp
Uppgradering av en befintlig värdserver med ökad processor-, minnes-, disk-I/O-hastighet och nätverks-I/O-hastighet kallas för uppskalning. Att skala upp ett molnbaserat program innebär att välja mer kompatibla resurser från molnleverantören. Du kan till exempel skapa en ny nodpool med större virtuella datorer i ditt Kubernetes-kluster. Migrera sedan dina containerbaserade tjänster till den nya poolen.
Serverlösa appar skalas upp genom att välja Premium Functions-planen eller premiuminstansstorlekarna från en dedikerad App Service-plan.
Skala ut molnbaserade appar
Molnbaserade program upplever ofta stora variationer i efterfrågan och kräver skalning med ett ögonblicks varsel. De föredrar att skala ut. Utskalning görs horisontellt genom att lägga till ytterligare datorer (kallas noder) eller programinstanser i ett befintligt kluster. I Kubernetes kan du skala manuellt genom att justera konfigurationsinställningarna för appen (till exempel skala en nodpool) eller genom automatisk skalning.
AKS-kluster kan skala automatiskt på något av två sätt:
Först övervakar horizontal Pod Autoscaler resursefterfrågan och skalar automatiskt dina POD-repliker för att uppfylla den. När trafiken ökar etableras ytterligare repliker automatiskt för att skala ut dina tjänster. På samma sätt tas de bort för att skala in dina tjänster när efterfrågan minskar. Du definierar det mått som du vill skala om, till exempel CPU-användning. Du kan också ange det minsta och högsta antalet repliker som ska köras. AKS övervakar måttet och skalar därefter.
Sedan kan du med funktionen autoskalning av AKS-kluster automatiskt skala beräkningsnoder över ett Kubernetes-kluster för att möta efterfrågan. Med den kan du automatiskt lägga till nya virtuella datorer i den underliggande Skalningsuppsättningen för virtuella Azure-datorer när mer beräkningskapacitet krävs. Den tar också bort noder när de inte längre behövs.
Bild 3–11 visar relationen mellan dessa två skalningstjänster.
Bild 3-11. Skala ut en App Service-plan.
Genom att arbeta tillsammans säkerställer båda ett optimalt antal containerinstanser och beräkningsnoder för att stödja fluktuerande efterfrågan. Den vågräta autoskalningsappen optimerar antalet poddar som krävs. Autoskalning av kluster optimerar antalet noder som krävs.
Skala Azure Functions
Azure Functions skalar ut automatiskt på begäran. Serverresurser allokeras och tas bort dynamiskt baserat på antalet utlösta händelser. Du debiteras bara för beräkningsresurser som förbrukas när dina funktioner körs. Fakturering baseras på antalet körningar, körningstid och minne som används.
Standardförbrukningsplanen ger en ekonomisk och skalbar lösning för de flesta appar, men premiumalternativet ger utvecklare flexibilitet för anpassade Azure Functions-krav. Uppgradering till Premium-planen ger kontroll över instansstorlekar, förvärmda instanser (för att undvika fördröjningar i kallstart) och dedikerade virtuella datorer.