Efficiëntie van prestaties

Voltooid

Stel dat er zojuist een nieuwsartikel is gepubliceerd over een van de recente productaankondigingen van uw organisatie. De extra publiciteit van het nieuwsartikel zal ongetwijfeld een grote hoeveelheid verkeer naar uw website te brengen. Kan uw website deze verkeerstoename aan of leidt de extra belasting ertoe dat uw site traag wordt of niet reageert?

In deze eenheid bekijkt u enkele basisbeginselen die u kunt toepassen om ervoor te zorgen dat uw toepassing uitstekend presteert dankzij de principes van schaalbaarheid en optimalisatie die deel uitmaken van de pijler efficiëntie van prestaties.

Wat is efficiëntie van prestaties?

Efficiëntie van prestaties gaat over het afstemmen van de beschikbare resources voor een toepassing op de binnenkomende vraag. Efficiëntie van prestaties omvat het schalen van resources, het identificeren en optimaliseren van mogelijke knelpunten en het optimaliseren van de toepassingscode voor topprestaties.

Laten we eens enkele patronen en procedures bekijken waarmee de schaalbaarheid en prestaties van uw toepassing worden verbeterd.

Omhoog schalen en uitschalen

Berekeningsresources kunnen in twee richtingen worden geschaald:

  • Omhoog schalen betekent dat meer resources worden toegevoegd aan één instantie. Dit wordt ook wel verticale schaalbaarheid genoemd.

    Een illustratie van omhoog schalen door resources toe te voegen aan een virtuele machine.

  • Bij het uitschalen worden meer instanties toegevoegd. Dit wordt ook wel horizontaal schalen genoemd.

    Een illustratie van uitschalen door instanties toe te voegen om de prestaties te verbeteren.

Bij omhoog schalen worden meer resources, zoals CPU of geheugen, toegevoegd aan één instantie. Deze instantie kan een virtuele machine of een PaaS-service zijn.

Als meer capaciteit wordt toegevoegd aan het exemplaar, nemen de beschikbare resources voor uw toepassing toe, maar hiervoor geldt wel een limiet. Virtuele machines zijn beperkt tot de capaciteit van de host waarop ze worden uitgevoerd en hosts zelf hebben fysieke beperkingen. Uiteindelijk kunt u bij het omhoog schalen van een instantie tegen deze limieten aanlopen. Ze beperken de mogelijkheid om meer resources aan de instantie toe te voegen.

Bij uitschalen worden extra instanties aan een service toegevoegd. Dit kunnen virtuele machines of PaaS-services zijn. In plaats van meer capaciteit toe te voegen door één instantie krachtiger te maken, voegen we capaciteit toe door het totale aantal instanties te verhogen.

Het voordeel van uitschalen is dat u in feite tot in het oneindige kunt uitschalen door meer computers aan de architectuur toe te voegen. Bij uitschalen is een of andere vorm van taakverdeling vereist. Hiervoor kan een load balancer worden gebruikt waarmee aanvragen over beschikbare servers worden verdeeld. Het is ook mogelijk gebruik te maken van een servicedetectiemechanisme voor het identificeren van actieve servers om aanvragen naar te verzenden.

In beide gevallen van schalen kunnen resources worden verminderd, wat leidt tot kostenoptimalisatie.

Automatisch schalen is het proces van het dynamisch toewijzen van resources zodat deze overeenkomen met de prestatievereisten. Als de hoeveelheid werk toeneemt, heeft een toepassing mogelijk meer resources nodig om het gewenste prestatieniveau te behouden en te voldoen aan de SLA's (Service Level Agreements). Wanneer de vraag afneemt en de extra resources niet meer nodig zijn, kan de toewijzing ervan ongedaan worden gemaakt om de kosten te verlagen.

Automatisch schalen maakt gebruik van de elasticiteit van cloudomgevingen terwijl tegelijkertijd de beheeroverhead wordt vereenvoudigd. Het verkleint de noodzaak om de prestaties van een systeem voortdurend te laten bijhouden door een operator die vervolgens beslissingen moet nemen over het toevoegen of verwijderen van resources.

Netwerkprestaties optimaliseren

Wanneer u optimaliseert voor prestaties, bekijkt u de prestaties van het netwerk en de opslag om ervoor te zorgen dat hun niveaus binnen acceptabele grenzen liggen. Deze prestatieniveaus kunnen van invloed zijn op de reactietijd van uw toepassing. Door de juiste netwerk- en opslagtechnologieën voor uw architectuur te selecteren, zorgt u ervoor dat u uw klanten de beste ervaring biedt.

Het toevoegen van een berichtlaag tussen services kan bevorderlijk zijn voor de prestaties en schaalbaarheid. Met de berichtlaag wordt een buffer gemaakt, zodat aanvragen zonder fouten kunnen blijven binnenkomen als de ontvangende toepassing deze niet kan bijhouden. Terwijl de toepassing de aanvragen verwerkt, worden ze beantwoord in de volgorde waarin ze zijn ontvangen.

Opslagprestaties optimaliseren

In veel grootschalige oplossingen zijn gegevens onderverdeeld in afzonderlijke partities die afzonderlijk kunnen worden beheerd en geopend. De strategie voor partitioneren moet zorgvuldig worden gekozen om de voordelen te maximaliseren en nadelige gevolgen te minimaliseren. Partitioneren kan helpen de schaalbaarheid te verbeteren, conflicten te verminderen en de prestaties te optimaliseren.

Gebruik caching in uw architectuur om de prestaties te helpen verbeteren. Caching is een mechanisme om veelgebruikte gegevens of assets (webpagina's, afbeeldingen) zo op te slaan dat ze sneller kunnen worden opgehaald. U kunt caching in verschillende lagen van uw toepassing gebruiken. U kunt caching gebruiken tussen de toepassingsservers en een database om te zorgen dat gegevens sneller worden opgehaald.

U kunt ook caching gebruiken tussen de gebruikers en uw webservers door statische inhoud dichter bij de gebruikers te plaatsen, waardoor het minder tijd kost om webpagina's voor de gebruikers op te halen. Dit heeft als neveneffect het offloaden van aanvragen vanaf uw database of webservers, waardoor de prestaties van andere aanvragen toenemen.

Prestatieknelpunten in uw toepassing identificeren

Gedistribueerde toepassingen en services die worden uitgevoerd in de cloud, zijn complexe stukjes software die veel bewegende onderdelen bevatten. In de productieomgeving is het belangrijk om de manier bij te houden waarop gebruikers uw systeem en resources gebruiken en om in het algemeen de status en prestaties van uw systeem te bewaken. U kunt deze informatie als diagnostisch hulpmiddel gebruiken om problemen te detecteren en te verhelpen. U kunt deze informatie ook gebruiken om potentiële problemen op te sporen en te voorkomen dat deze zich voordoen.

Optimalisatie van prestaties betekent dat u moet begrijpen hoe de toepassingen zelf presteren. Fouten, slecht presterende code en knelpunten in afhankelijke systemen kunnen worden opgespoord door een programma voor beheer van applicatieprestaties. Deze problemen zijn vaak niet zichtbaar voor gebruikers, ontwikkelaars en beheerders. Maar ze kunnen de algehele prestaties van uw toepassing nadelig beïnvloeden.

Bekijk alle lagen van uw toepassing en identificeer en verhelp knelpunten in de prestaties. Een knelpunt kan bijvoorbeeld een slechte geheugenafhandeling in de toepassing zijn of zelfs het toevoegen van indexen in de database. Dit kan een iteratief proces zijn waarbij u het ene knelpunt oplost en vervolgens een ander knelpunt ontdekt waarvan u zich niet bewust was.

Met een nauwkeurige benadering voor het controleren van de prestaties kunt u de typen patronen en procedures bepalen die u nodig hebt voor uw architectuur.

Test uw kennis

1.

Welke van de volgende items is een voorbeeld van omhoog schalen?

2.

Welke van de volgende items is een voorbeeld van uitschalen?