Share via


Afwegingen tussen prestaties en efficiëntie

Een workload die voldoet aan de prestatiedoelen zonder overprovisioning is efficiënt. Het doel van prestatie-efficiëntie is om te allen tijde voldoende aanbod te hebben om de vraag aan te kunnen. Belangrijke strategieën voor prestatie-efficiëntie zijn het juiste gebruik van code-optimalisaties, ontwerppatronen, capaciteitsplanning en schaalaanpassing. Duidelijke prestatiedoelen en testen ondersteunen deze pijler.

Tijdens het onderhandelen over de prestatiedoelen van een workload en het ontwerpen van een workload voor prestatie-efficiëntie, is het belangrijk om te weten hoe de ontwerpprincipes voor prestatieefficiëntie en de aanbevelingen in de controlelijst voor ontwerpbeoordeling voor prestatie-efficiëntie van invloed kunnen zijn op de optimalisatiedoelen van andere pijlers. Bepaalde beslissingen over prestatie-efficiëntie kunnen voordelen opleveren voor sommige pijlers, maar vormen compromissen voor andere. Dit artikel bevat voorbeelden van compromissen die een workloadteam kan tegenkomen bij het ontwerpen van een workloadarchitectuur en bewerkingen voor prestatieefficiëntie.

Prestatie efficiëntie compromissen met betrouwbaarheid

Afweging: Verminderde replicatie en verhoogde dichtheid. Een hoeksteen van betrouwbaarheid is het garanderen van tolerantie door gebruik te maken van replicatie en het beperken van de straal van storingen.

  • Een workload die efficiëntie bereikt door het schalen uit te stellen tot het laatste verantwoorde moment nauw aansluit bij de vraag, maar die kwetsbaar is voor onvoorziene knooppuntfouten en schaalvertragingen.

  • Het consolideren van workloadresources kan overtollige capaciteit gebruiken en de efficiëntie verbeteren. Het verhoogt echter de straal van een storing in het co-located onderdeel of toepassingsplatform.

  • Door in- of omlaag te schalen om overtollige capaciteit te minimaliseren, kan een workload te weinig worden ingericht tijdens gebruikspieken, wat leidt tot serviceonderbrekingen vanwege onvoldoende aanbod.

Compromis: Meer complexiteit. Betrouwbaarheid geeft prioriteit aan eenvoud.

  • Het gebruik van automatische schaalaanpassing om het aanbod van workloads in balans te houden met de vraag, leidt tot variabiliteit in de topologie van de workload en voegt een onderdeel toe dat correct moet werken om het systeem betrouwbaar te maken. Automatische schaalaanpassing leidt tot het activeren van meer gebeurtenissen voor de levenscyclus van toepassingen, zoals starten en stoppen.

  • Gegevenspartitionering en sharding helpen prestatieproblemen in grote of veelgebruikte gegevenssets te voorkomen. De implementatie van deze patronen neemt echter de complexiteit toe omdat (uiteindelijke) consistentie moet worden gehandhaafd voor aanvullende resources.

  • Het denormaliseren van gegevens voor geoptimaliseerde toegangspatronen kan de prestaties verbeteren, maar dit leidt tot complexiteit omdat meerdere weergaven van gegevens gesynchroniseerd moeten blijven.

  • Prestatiegerichte cloudontwerppatronen vereisen soms de introductie van extra onderdelen. Het gebruik van deze onderdelen vergroot de oppervlakte van de werkbelasting. De onderdelen moeten dan zelf betrouwbaar worden gemaakt om de hele workload betrouwbaar te houden. Enkele voorbeelden:

    • Een berichtenbus voor herverdeling van de belasting, waarmee een kritiek, stateful onderdeel wordt geïntroduceerd.
    • Een load balancer voor automatisch geschaalde replica's, waarvoor een betrouwbare werking en het in dienst worden genomen van replica's vereist.
    • Het offloaden van gegevens naar caches, waarvoor een betrouwbare benadering van cache-ongeldigheid vereist is.

Afweging: testen en observeren van actieve omgevingen. Het vermijden van onnodig gebruik van productiesystemen is een zelfbehoudbenadering voor betrouwbaarheid.

  • Het testen van prestaties in actieve omgevingen, zoals het gebruik van synthetische transacties, brengt het risico met zich mee dat er storingen ontstaan als gevolg van de testacties of configuraties.

  • Workloads moeten worden geïnstrueerd met een APM-systeem (Application Performance Monitoring) waarmee teams kunnen leren van actieve omgevingen. De APM-hulpprogramma's worden geïnstalleerd en geconfigureerd in de toepassingscode of in de hostingomgeving. Onjuist gebruik, overschrijding van beperkingen of onjuiste configuratie van het hulpprogramma kan de functionaliteit en het onderhoud in gevaar komen, waardoor de betrouwbaarheid mogelijk wordt ondermijnd.

Compromissen tussen prestaties en beveiliging

Afweging: Vermindering van beveiligingscontroles. Beveiligingscontroles worden ingesteld op meerdere lagen, soms redundant, om diepgaande verdediging te bieden.

Een strategie voor prestatieoptimalisatie is het verwijderen of omzeilen van onderdelen of processen die bijdragen aan vertragingen in een stroom, met name wanneer de verwerkingstijd niet is gerechtvaardigd. Deze strategie kan echter de veiligheid in gevaar komen en moet vergezeld gaan van een grondige risicoanalyse. Bekijk de volgende voorbeelden:

  • Als u versleuteling tijdens overdracht of inactieve versleuteling verwijdert om overdrachtssnelheden te verbeteren, worden de gegevens blootgesteld aan mogelijke schendingen van de integriteit of vertrouwelijkheid.

  • Het verwijderen of verminderen van beveiligingsscans of het inspecteren van hulpprogramma's om verwerkingstijden te verkorten, kan de vertrouwelijkheid, integriteit of beschikbaarheid van deze hulpprogramma's in gevaar brengen.

  • Als u de frequentie van beveiligingspatching verlaagt om de impact op de prestaties te beperken, kan een workload kwetsbaarder worden voor opkomende bedreigingen.

  • Het verwijderen van firewallregels uit netwerkstromen om de netwerklatentie te verbeteren, kan ongewenste communicatie mogelijk maken.

  • Het minimaliseren van gegevensvalidatie voor snellere gegevensverwerking kan de gegevensintegriteit in gevaar komen, met name als invoer schadelijk is.

  • Het gebruik van minder entropie in versleutelings- of hashingalgoritmen, bijvoorbeeld op de initialisatievector (IV), is efficiënter, maar maakt de versleuteling gemakkelijker te kraken.

Afweging: Grotere werkbelasting. Beveiliging geeft prioriteit aan een beperkt en ingesloten oppervlak om aanvalsvectoren te minimaliseren en het beheer van beveiligingscontroles te verminderen.

Prestatiegerichte cloudontwerppatronen vereisen soms de introductie van extra onderdelen. Deze onderdelen vergroten de oppervlakte van de werkbelasting. De nieuwe onderdelen moeten worden beveiligd, mogelijk op manieren die nog niet in het systeem worden gebruikt, en ze vergroten vaak het nalevingsbereik. Houd rekening met deze veelgebruikte onderdelen:

  • Een berichtenbus voor herverdeling van de belasting

  • Een load balancer voor automatisch geschaalde replica's

  • Gegevens offloaden naar caches, netwerken voor toepassingslevering of netwerken voor contentlevering

  • Verwerking offloaden naar achtergrondtaken of zelfs clientberekeningen

Afweging: segmentatie verwijderen. De beveiligingspijler geeft prioriteit aan sterke segmentatie om verfijnde beveiligingscontroles mogelijk te maken en de straal van de explosie te verminderen.

Het delen van resources is een benadering voor het verbeteren van de efficiëntie. Het verhoogt de dichtheid om het capaciteitsgebruik te optimaliseren. Voorbeelden zijn scenario's met meerdere tenants of het combineren van verschillende toepassingen in een architectuur op een gemeenschappelijk toepassingsplatform. De verhoogde dichtheid kan leiden tot de volgende beveiligingsproblemen:

  • Verhoogd risico op onbevoegde laterale verplaatsing van de ene tenant naar de andere.

  • Een gedeelde workloadidentiteit die het principe van minimale bevoegdheden schendt en afzonderlijke audittrails in toegangslogboeken verhult.

  • Besturingselementen voor perimeterbeveiliging, bijvoorbeeld netwerkregels, die worden beperkt tot alle co-locatieonderdelen, waardoor afzonderlijke onderdelen meer toegang krijgen dan nodig is.

  • Een inbreuk op de toepassingsplatformhost of een afzonderlijk onderdeel vanwege een grotere straal. Deze toename wordt veroorzaakt door eenvoudigere toegang tot co-locatieonderdelen.

  • Het co-lokaliseren van verschillende onderdelen, wat leidt tot meer onderdelen binnen het nalevingsbereik vanwege hun gedeelde host.

Balans tussen prestaties en kostenoptimalisatie

Afweging: Te veel aanbod voor vraag. Zowel Kostenoptimalisatie als Prestatie-efficiëntie geven prioriteit aan voldoende aanbod om aan de vraag te voldoen.

  • Overprovisioning is een risico wanneer teams prestatieproblemen in een workload proberen te beperken. Enkele veelvoorkomende oorzaken van overprovisioning zijn:

    • Initiële capaciteitsplanning is verkeerd ingeschat omdat het team zich alleen richt op piekbelastingsschattingen, waarbij strategieën voor piekvereffening in het ontwerp van de werkbelasting worden genegeerd.
    • Een resource omhoog of uitschalen tijdens een probleemoplossingsstap van een incidentrespons.
  • Automatisch schalen kan onjuist zijn geconfigureerd. Enkele voorbeelden van onjuist geconfigureerde automatische schaalaanpassing zijn:

    • Omhoog schalen met minimale wijzigingen in de vraag of een verlengde afkoelperiode kan meer kosten met zich meebrengt dan de vraag vereist.
    • Het gebruik van automatisch schalen zonder een ingestelde bovengrens kan leiden tot ongecontroleerde groei als gevolg van systeemstoringen of -misbruik en kan de verwachte workloadvereisten overschrijden.
  • Uitbreiden naar meerdere regio's kan de prestaties verbeteren door workloads dichter bij de gebruiker te brengen en tijdelijke beperkingen van de resourcecapaciteit te voorkomen. Het voegt echter ook complexiteit en duplicatie van resources toe.

Compromis: Meer onderdelen. Een techniek voor kostenoptimalisatie is het samenvoegen met een kleiner aantal resources door de dichtheid te verhogen, duplicatie te verwijderen en co-locatiefunctionaliteit te gebruiken.

  • Prestatiegerichte cloudontwerppatronen vereisen soms de introductie van extra onderdelen. Deze extra onderdelen leiden meestal tot een toename van de totale kosten voor de workload. U kunt bijvoorbeeld een berichtenbus opnemen voor het herverdelingen of offloaden van taken naar een toepassing of netwerk voor inhoudslevering voor verbeterde reactietijden.

  • Met resourcesegmentatie kunnen verschillende onderdelen van een workload verschillende prestatiekenmerken hebben, waardoor onafhankelijk afstemmen voor elk segment mogelijk is. Het kan echter de totale eigendomskosten verhogen, omdat hiervoor meerdere geoptimaliseerde segmenten nodig zijn in plaats van één gegeneraliseerd onderdeel.

Afweging: Verhoogde investeringen voor items die niet zijn afgestemd op functionele vereisten. Eén benadering voor kostenoptimalisatie is het evalueren van de waarde die wordt geboden door elke geïmplementeerde oplossing.

  • Premium-services en SKU's kunnen helpen een workload te voldoen aan de prestatiedoelen. Deze services kosten meestal meer en kunnen extra functies bieden. Ze worden mogelijk te weinig gebruikt als veel van de Premium-functies niet specifiek worden gebruikt om te voldoen aan de prestatiedoelen.

  • Een goed presterende workload vereist telemetriegegevens voor waarneembaarheid die moeten worden overgedragen en opgeslagen. Een toename van de prestatietelemetrie die wordt verzameld, kan de kosten van de overdracht en opslag van telemetriegegevens verhogen.

  • Activiteiten voor prestatietests voegen kosten toe die niet zijn gekoppeld aan de waarde van het productiesysteem. Voorbeelden van kosten voor prestatietests zijn:

    • Instantiërende omgevingen die zijn gewijd aan prestatiegerichte tests.
    • Gespecialiseerde prestatiehulpprogramma's gebruiken.
    • Tijd besteden aan het uitvoeren van de tests.
  • Het trainen van teamleden voor gespecialiseerde prestatieoptimalisatietaken of het betalen voor services voor het afstemmen van prestaties draagt bij aan de kosten van een workload.

Balans tussen prestaties en operationele uitmuntendheid

Afweging: Verminderde waarneembaarheid. Waarneembaarheid is nodig om een workload te voorzien van zinvolle waarschuwingen en om ervoor te zorgen dat een incident reageert.

  • Het verminderen van het logboek- en metrische volume om de verwerkingstijd te verminderen die wordt besteed aan het verzamelen van telemetrie in plaats van andere taken, vermindert de algehele waarneembaarheid van het systeem. Enkele voorbeelden van de resulterende verminderde waarneembaarheid zijn:

    • Hiermee worden de gegevenspunten beperkt die worden gebruikt voor het maken van zinvolle waarschuwingen.
    • Dit leidt tot hiaten in de dekking voor incidentresponsactiviteiten.
    • Het beperkt de waarneembaarheid in interacties en grenzen die gevoelig zijn voor beveiliging of naleving.
  • Wanneer ontwerppatronen voor prestaties worden geïmplementeerd, neemt de complexiteit van de workload vaak toe. Onderdelen worden toegevoegd aan kritieke stromen. De strategie voor workloadbewaking en prestatiebewaking moeten deze onderdelen bevatten. Wanneer een stroom meerdere onderdelen of toepassingsgrenzen omspant, neemt de complexiteit van het bewaken van de prestaties van die stroom toe. Stroomprestaties moeten worden gecorreleerd tussen alle onderling verbonden onderdelen.

Afweging: meer complexiteit in bewerkingen. Een complexe omgeving heeft complexere interacties en een grotere kans op een negatieve impact van routine-, ad-hoc- en noodbewerkingen.

  • Het verbeteren van de prestatie-efficiëntie door het verhogen van de dichtheid verhoogt het risico in operationele taken. Een fout in één proces kan een grote straal hebben.

  • Wanneer er prestatieontwerppatronen worden geïmplementeerd, beïnvloeden ze operationele procedures zoals back-ups, sleutelrotaties en herstelstrategieën. Gegevenspartitionering en sharding kunnen bijvoorbeeld routinetaken bemoeilijken wanneer teams ervoor proberen te zorgen dat deze taken geen invloed hebben op de gegevensconsistentie.

Compromis: Cultuurstress. Operational Excellence is geworteld in een cultuur van onschuld, respect en continue verbetering.

  • Het uitvoeren van een hoofdoorzaakanalyse van prestatieproblemen identificeert tekortkomingen in processen of implementaties die moeten worden gecorrigeerd. Het team moet de oefening beschouwen als een leermogelijkheid. Als teamleden de schuld krijgen van problemen, kan het moreel worden beïnvloed.

  • Routine- en ad-hocprocessen kunnen van invloed zijn op de prestaties van workloads. Het wordt vaak als beter beschouwd om deze activiteiten buiten de piekuren uit te voeren. Buiten de piekuren kan echter lastig zijn of buiten de normale uren vallen voor de teamleden die verantwoordelijk zijn voor of vaardig zijn in deze taken.

Verken de compromissen voor de andere pijlers: