Ontwerpen voor schalen

Schaalbaarheid is het vermogen van een systeem om toegenomen belasting te verwerken. Services die worden gedekt door Automatische schaalvergroting van Azure, kunnen automatisch worden geschaald om aan de vraag te voldoen om aan de workload te voldoen. Deze services worden uitschaald om ervoor te zorgen dat de capaciteit tijdens pieken in de workload weer normaal wordt wanneer de piek daalt.

Voor efficiëntie van prestaties kunt u overwegen hoe uw toepassingsontwerp wordt geschaald en PaaS-aanbiedingen met ingebouwde schaalbewerkingen implementeert.

Twee belangrijke manieren waarop een toepassing kan worden geschaald, zijn verticaal schalen en horizontaal schalen. Verticaal schalen (omhoog schalen) verhoogt de capaciteit van een resource, bijvoorbeeld door gebruik te maken van een grotere virtuele machine (VM). Horizontaal schalen (uitschalen) voegt nieuwe exemplaren van een resource toe, zoals VM's of databasereplica's.

Horizontaal schalen heeft aanzienlijke voordelen ten opzichte van verticaal schalen, zoals:

  • Echte cloudschaal: toepassingen zijn ontworpen om te worden uitgevoerd op honderden of zelfs duizenden knooppunten, en bereiken schaalschalen die niet mogelijk zijn op één knooppunt.
  • Horizontaal schalen is elastisch: u kunt meer exemplaren toevoegen als de belasting toeneemt of instanties verwijderen tijdens stille perioden.
  • Uitschalen kan automatisch gebeuren volgens een schema of als reactie op wijzigingen in de belasting.
  • Uitschalen is mogelijk goedkoper dan omhoog schalen. Het uitvoeren van meerdere kleine VM's kan minder kosten dan één grote VM.
  • Horizontaal schalen kan ook de flexibiliteit verbeteren door redundantie toe te voegen. Als een exemplaar uitvalt, blijf de toepassing actief.

Een voordeel van verticaal schalen is dat u dit kunt doen zonder wijzigingen aan te brengen in de toepassing. Maar op een bepaald moment bereikt u een limiet, waar u niet meer omhoog kunt schalen. Op dat punt moet u verder horizontaal schalen.

Horizontaal schalen moet in het systeem zijn ontworpen. U kunt bijvoorbeeld VM's uitschalen door ze achter een load balancer te plaatsen. Maar elke VM in de pool moet elke clientaanvraag verwerken, dus de toepassing moet staatloos zijn of de status extern opslaan (bijvoorbeeld in een gedistribueerde cache). Bij beheerde PaaS-services is horizontaal schalen en automatisch schalen vaak ingebouwd. Het gemak waarmee deze services kunnen worden geschaald, is een belangrijk voordeel van het gebruik van PaaS-services.

Meer exemplaren toevoegen betekent echter niet meteen dat een toepassing wordt geschaald. Dit kan het knelpunt ergens anders pushen. Als u bijvoorbeeld een webfront-end schaalt, zodat deze meer clientaanvragen kan verwerken, kunnen hiervoor vergrendelingsconflicten in de database ontstaan. U wilt andere metingen, zoals optimistische gelijktijdigheid of gegevenspartities, overwegen om meer doorvoer naar de database mogelijk te maken.

Voer altijd prestatie- en belastingtests uit om deze mogelijke knelpunten op te sporen. De stateful onderdelen van een systeem, zoals databases, zijn de meest voorkomende oorzaken van knelpunten en vereisen een zorgvuldig ontwerp om horizontaal te kunnen schalen. Bij het oplossen van een knelpunt kunnen andere knelpunten elders worden blootgelegd.

Gebruik de controlelijst voor prestatie-efficiëntie om uw ontwerp te controleren vanuit het oogpunt van schaalbaarheid.

In de cloud is de mogelijkheid om te profiteren van schaalbaarheid afhankelijk van uw infrastructuur en services. Platformen, zoals Kubernetes, zijn gebouwd met het oog op schalen. Virtuele machines kunnen mogelijk niet zo eenvoudig worden geschaald, hoewel schaalbewerkingen wel mogelijk zijn. Met virtuele machines kunt u vooruit plannen om te voorkomen dat de infrastructuur in de toekomst wordt geschaald om aan de vraag te voldoen. Een andere optie is om een ander platform te selecteren, zoals virtuele-machineschaalsets van Azure.

Wanneer u schaalbaarheid gebruikt, kunt u het huidige gemiddelde en de piektijden voor uw workload voorspellen. Met opties voor betalingsplannen kunt u deze voorspelling beheren. U betaalt per minuut of per uur, afhankelijk van de service voor een gekozen periode.

Groei plannen

Planning voor groei begint met het begrijpen van uw huidige workloads, waarmee u kunt anticiperen op schaalbehoeften op basis van voorspellende gebruiksscenario's. Een voorbeeld van een voorspellend gebruiksscenario is een e-commercesite die herkent dat de infrastructuur op de juiste wijze moet worden geschaald voor een verwachte grote hoeveelheid vakantieverkeer.

Voer belastingstests en stresstests uit om de benodigde infrastructuur te bepalen ter ondersteuning van de voorspelde pieken in workloads. Een goed plan omvat het opnemen van een buffer om rekening te houden met willekeurige pieken.

Voor meer informatie over het bepalen van de boven- en maximumlimieten van de capaciteit van een toepassing, verwijzen wij u naar Prestatietesten in de pijler prestatie-efficiëntie.

Een ander essentieel onderdeel van het plannen van de schaal is ervoor te zorgen dat de regio die als host voor uw toepassing wordt gebruikt, de benodigde capaciteit ondersteunt die nodig is om de belasting te verhogen. Als u een architectuur met meerdere regio's gebruikt, moet u ervoor zorgen dat de secundaire regio's de toename ook kunnen ondersteunen. Een regio kan het product aanbieden, maar biedt mogelijk geen ondersteuning voor de voorspelde belastingsverhoging zonder de benodigde SKU's (Stock Keeping Units), dus u moet de capaciteit controleren.

Als u uw regio en beschikbare SKU's wilt controleren, selecteert u eerst het product en de regio's in Beschikbare producten per regio.

Beschikbare producten per regio

Controleer vervolgens de SKU's die beschikbaar zijn in Azure Portal.

Schaaleenheden toevoegen

Voor elke resource moet u de bovenste schaallimieten kennen en sharding of uitcompositie gebruiken om deze limieten te overschrijden. Ontwerp de toepassing zo dat deze eenvoudig kan worden geschaald door een of meer schaaleenheden toe te voegen, bijvoorbeeld met behulp van het patroon Implementatiestempels. Bepaal de schaaleenheden voor het systeem voor goed gedefinieerde sets resources.

De volgende stap kan zijn om ingebouwde schaalfuncties of hulpprogramma's te gebruiken om te begrijpen welke resources gelijktijdig moeten worden geschaald met andere resources. Als u bijvoorbeeld X aan front-end-VM's toevoegt, zijn er mogelijk Y extra wachtrijen en Z-opslagaccounts nodig om de extra werkbelasting te verwerken. Een schaaleenheid kan dus bestaan uit X VM-exemplaren, Y-wachtrijen en Z-opslagaccounts.

Automatisch schalen gebruiken om toe- en afnamen van de belasting te beheren

Met automatische schalen kunt u de juiste hoeveelheid resources uitvoeren om de belasting van uw app te verwerken. Er worden resources toegevoegd (uitschalen genoemd) om een toename van de belasting te verwerken, zoals seizoensgebonden workloads. Automatisch schalen bespaart geld door inactieve resources (inschalen genoemd) te verwijderen tijdens een afname van de belasting, zoals 's avonds en in het weekend voor sommige zakelijke apps.

U kunt automatisch schalen tussen het minimum- en maximumaantal exemplaren dat moet worden uitgevoerd en automatisch VM's toevoegen of verwijderen op basis van een set regels.

Automatisch schalen

Zie Automatisch schalen voor meer informatie.

Schaaldoelen begrijpen

Schaalbewerkingen (horizontaal: het wijzigen van het aantal identieke exemplaren, verticaal - overschakelen naar meer/minder krachtige exemplaren) kunnen snel zijn, maar het duurt meestal even om dit te voltooien. Het is belangrijk om te begrijpen hoe deze vertraging van invloed is op de toepassing die wordt geladen en of verslechteerde prestaties acceptabel zijn.

Voor meer informatie verwijzen we naar Best practices for Autoscale (Best practices voor automatisch schalen).

Profiteren van functies voor automatisch schalen van platformen

Hier ziet u hoe u kunt profiteren van functies voor automatisch schalen:

  • Gebruik indien mogelijk ingebouwde functies voor automatisch schalen in plaats van aangepaste mechanismen of mechanismen van derden.
  • Gebruik waar mogelijk geplande schaalregels om ervoor te zorgen dat resources beschikbaar zijn.
  • Voeg waar nodig reactieve automatische schalen toe aan de regels om te kunnen omgaan met onverwachte veranderingen in de vraag.

Notitie

Als uw toepassing expliciet is ontworpen voor het afhandelen van de beëindiging van sommige exemplaren, moet u ervoor zorgen dat u automatisch schalen gebruikt om omlaag te schalen en resources in te schalen die niet langer nodig zijn voor de opgegeven belasting om de operationele kosten te verlagen.

Voor meer informatie verwijzen we naar Automatisch schalen.

CPU- of geheugenintensieve toepassingen automatisch schalen

Voor CPU- of geheugenintensieve toepassingen moet omhoog worden geschaald naar een grotere machine-SKU met meer CPU of geheugen. Zodra u de vraag naar CPU of geheugen hebt verminderd, kunnen exemplaren terugkeren naar het oorspronkelijke exemplaar.

U kunt bijvoorbeeld een toepassing hebben die afbeeldingen, video's of muziek verwerkt. Gezien het proces en de vereisten kan het zinvol zijn om een server omhoog te schalen door CPU of geheugen toe te voegen om het grote mediabestand snel te verwerken. Bij uitschalen kan het systeem tegelijkertijd meer bestanden verwerken, maar dit heeft geen invloed op de verwerkingssnelheid van elk afzonderlijk bestand.

Automatisch schalen met Azure Compute-services

Automatisch schalen werkt door het verzamelen van metrische gegevens voor de resource (CPU- en geheugengebruik) en de toepassing (aanvragen in de wachtrij en aanvragen per seconde). Regels kunnen vervolgens worden gemaakt om exemplaren toe te voegen en te verwijderen, afhankelijk van hoe de regel wordt geëvalueerd. Met App Services app-abonnement kunt u regels voor automatisch schalen instellen voor uitschalen/inschalen en omhoog/omlaag schalen. Schalen is ook van toepassing op Azure Automation.

In het voorbeeld van automatisch schalen van Application Service ziet u hoe u een Azure App Service maakt, waaronder een Azure App Service.

Azure Kubernetes Service (AKS) biedt twee niveaus van automatisch schalen:

  • Horizontaal automatisch schalen: kan worden ingeschakeld voor servicecontainers om meer of minder pod-exemplaren toe te voegen aan het cluster.
  • Automatisch schalen van clusters: kan worden ingeschakeld op de agent-VM-exemplaren met een agentknooppuntgroep om meer VM-exemplaren dynamisch toe te voegen of te verwijderen.

Andere Azure-services omvatten de volgende services:

Elke service documenteert de mogelijkheden voor automatisch schalen. Bekijk Overzicht van automatisch schalen voor een algemene discussie over automatisch schalen op het Azure-platform.

Notitie

Als uw toepassing geen ingebouwde mogelijkheid heeft om automatisch te schalen of niet is geconfigureerd om automatisch uit te schalen als de belasting toeneemt, is het mogelijk dat de services van uw toepassing mislukken als ze oververzadigd raken met aanvragen van gebruikers. Naslag Azure Automation mogelijke oplossingen.

Volgende stappen