Prestatie-efficiëntie

Voltooid

Stel dat er een nieuwsbericht wordt gepubliceerd over een van de recente productaankondigingen van uw organisatie. De toegevoegde publiciteit uit het nieuwsverhaal brengt een grote toestroom van verkeer naar uw website. Kan uw website deze verkeerstoename afhandelen? Kan uw site de extra belasting overnemen zonder langzaam of niet meer te reageren?

In deze eenheid kijken we naar enkele van de basisprincipes van het garanderen van uitstekende toepassingsprestaties. Met name de principes voor schalen en optimalisatie waaruit de prestatieefficiëntiepijler bestaat.

Wat is efficiëntie van prestaties?

Prestatie-efficiëntie komt overeen met de beschikbare resources van een toepassing met de vraag die deze ontvangt. 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. Ook wel verticaal schalen genoemd.

    An illustration that shows scaling up by adding resources to a virtual machine.

  • Bij het uitschalen worden meer instanties toegevoegd. Ook wel horizontaal schalen genoemd.

    An illustration that shows scaling out by adding instances to increase performance.

Omhoog schalen houdt zich bezig met het toevoegen van meer resources, zoals CPU of geheugen, aan één exemplaar. 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 hebben zelf 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.

Uitschalen houdt zich bezig met het toevoegen van meer exemplaren aan een service. 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. Een load balancer die bijvoorbeeld aanvragen over beschikbare servers distribueert, of een mechanisme voor servicedetectie voor het identificeren van actieve servers waarnaar aanvragen moeten worden verzonden.

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). Naarmate de vraag afgenomen wordt en de toegevoegde resources niet meer nodig zijn, kunnen ze de toewijzing ongedaan worden gemaakt om de kosten te minimaliseren.

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 de prestaties optimaliseert, bekijkt u de prestaties van het netwerk en de opslag om ervoor te zorgen dat hun niveaus binnen acceptabele limieten vallen. Deze prestatieniveaus kunnen van invloed zijn op de reactietijd van uw toepassing. Door de juiste netwerk- en opslagtechnologieën voor uw architectuur te selecteren, kunt u ervoor zorgen dat u de beste ervaring biedt voor uw consumenten.

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 door de aanvragen werkt, 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 caching ook gebruiken tussen uw gebruikers en uw webservers door statische inhoud dichter bij gebruikers te plaatsen. Dit type caching vermindert de tijd die nodig is om webpagina's terug te keren naar de gebruikers. Het heeft ook een secundair effect van het offloaden van aanvragen van uw database of webservers, waardoor de prestaties voor andere aanvragen worden verhoogd.

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 een productieomgeving is het belangrijk dat u de manier kunt bijhouden waarop gebruikers uw systeem gebruiken. Het is ook belangrijk om het resourcegebruik te traceren en over 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.

Prestatieoptimalisatie omvat inzicht in hoe de toepassingen zelf presteren. Fouten, slecht presterende code en knelpunten in afhankelijke systemen kunnen allemaal worden gedetecteerd via een hulpprogramma voor prestatiebeheer van toepassingen. Deze problemen kunnen vaak verborgen of verborgen zijn voor gebruikers, ontwikkelaars en beheerders, maar ze kunnen een nadelig effect hebben op de algehele prestaties van uw toepassing.

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 grondige benadering van prestatiebewaking kunt u de typen patronen en procedures bepalen waaruit uw architectuur kan profiteren.

Test uw kennis

1.

Welke van de volgende is een voorbeeld van omhoog schalen (verticaal schalen)?

2.

Welke van de volgende is een voorbeeld van uitschalen (horizontaal schalen)?