Compromissen voor prestatie-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 af te handelen. Belangrijke strategieën voor prestatie-efficiëntie omvatten het juiste gebruik van codeoptimalisaties, ontwerppatronen, capaciteitsplanning en schalen. 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 prestatie-efficiëntie en de aanbevelingen in de controlelijst Ontwerpbeoordeling voor Prestatie-efficiëntie van invloed kunnen zijn op de optimalisatiedoelen van andere pijlers. Bepaalde prestatie-efficiëntiebeslissingen kunnen enkele pijlers ten goede komen, maar vormen een compromis voor anderen. In dit artikel vindt u voorbeelden van compromissen die een workloadteam kan tegenkomen bij het ontwerpen van workloadarchitectuur en bewerkingen voor prestatie-efficiëntie.
Prestatie-efficiëntie compromissen met betrouwbaarheid
Compromis: verminderde replicatie en verhoogde dichtheid. Een hoeksteen van betrouwbaarheid is het garanderen van tolerantie door replicatie te gebruiken en de straalstraal van storingen te beperken.
Een workload die efficiëntie bereikt door het uitstellen van schaalaanpassing tot het laatste verantwoordelijke moment nauw aan de vraag voldoet, maar kwetsbaar is voor onvoorziene knooppuntfouten en vertragingen bij schalen.
Het consolideren van workloadresources kan overtollige capaciteit gebruiken en de efficiëntie verbeteren. Het verhoogt echter de straalstraal van een storing in het co-gelegen onderdeel of toepassingsplatform.
Door in- of omlaag te schalen om de overtollige capaciteit te minimaliseren, kan een workload onderbesteld blijven tijdens pieken in het gebruik, wat leidt tot serviceonderbrekingen vanwege onvoldoende aanbod.
Compromis: Verhoogde complexiteit. Betrouwbaarheid geeft prioriteit aan eenvoud.
Door automatisch schalen te gebruiken om het aanbod van workloads te verdelen op basis van de vraag, ontstaat variabiliteit in de topologie van de workload en wordt een onderdeel toegevoegd dat correct moet werken om het systeem betrouwbaar te maken. Automatisch schalen leidt tot het activeren van meer levenscyclus-gebeurtenissen voor toepassingen, zoals starten en stoppen.
Gegevenspartitionering en sharding helpen prestatieproblemen in grote of veelgebruikte gegevenssets te voorkomen. De implementatie van deze patronen verhoogt echter de complexiteit omdat (uiteindelijke) consistentie moet worden gehandhaafd voor aanvullende resources.
Het denormaliseren van gegevens voor geoptimaliseerde toegangspatronen kan de prestaties verbeteren, maar het introduceert complexiteit omdat er meerdere weergaven van gegevens moeten worden gesynchroniseerd.
Prestatiegerichte cloudontwerppatronen vereisen soms de introductie van extra onderdelen. Het gebruik van deze onderdelen verhoogt het oppervlak van de werkbelasting. De onderdelen moeten vervolgens betrouwbaar worden gemaakt om de hele workload betrouwbaar te houden. Voorbeelden zijn:
- Een berichtenbus voor het herverdelen van belasting, waarmee een kritiek, stateful onderdeel wordt geïntroduceerd.
- Een load balancer voor automatisch geschaalde replica's, waarvoor een betrouwbare bewerking en de opname van replica's vereist zijn.
- Het offloaden van gegevens naar caches, waarvoor betrouwbare methoden voor ongeldige cache zijn vereist.
Compromis: Testen en observeren van actieve omgevingen. Het vermijden van onnodig gebruik van productiesystemen is een zelfbehoud- en risicoontwijkingsbenadering voor betrouwbaarheid.
Prestatietests in actieve omgevingen, zoals het gebruik van synthetische transacties, lopen het risico dat 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 toepassingscode of in de hostingomgeving. Onjuist gebruik, het overschrijden van beperkingen of onjuiste configuratie van het hulpprogramma kan de functionaliteit en het onderhoud in gevaar komen, waardoor de betrouwbaarheid mogelijk wordt onderbroken.
Prestatie-efficiëntie compromissen met beveiliging
Compromis: vermindering van beveiligingscontroles. Beveiligingscontroles worden ingesteld op meerdere lagen, soms redundant, om diepgaande verdediging te bieden.
Een strategie voor optimalisatie van prestaties is het verwijderen of omzeilen van onderdelen of processen die bijdragen aan vertragingen in een stroom, met name wanneer de verwerkingstijd niet gerechtvaardigd is. Deze strategie kan echter een inbreuk maken op de beveiliging en moet vergezeld gaan van een grondige risicoanalyse. Bekijk de volgende voorbeelden:
Als u versleuteling tijdens overdracht of in rust verwijdert om de overdrachtssnelheden te verbeteren, worden de gegevens blootgesteld aan mogelijke integriteits- of vertrouwelijkheidsschendingen.
Het verwijderen of verminderen van beveiligingsscans of het inspecteren van hulpprogramma's om verwerkingstijden te verminderen, kan de vertrouwelijkheid, integriteit of beschikbaarheid die door deze hulpprogramma's worden beschermd, in gevaar brengen.
Door de frequentie van beveiligingspatching te verlagen om de invloed op de prestaties te beperken, kan een workload kwetsbaarder worden voor opkomende bedreigingen.
Door firewallregels uit netwerkstromen te verwijderen om de netwerklatentie te verbeteren, kan ongewenste communicatie worden toegestaan.
Het minimaliseren van gegevensvalidatie of veiligheidscontroles voor inhoud voor snellere gegevensverwerking kan leiden tot inbreuk op de integriteit van gegevens, met name als invoer schadelijk is.
Het gebruik van minder entropie in versleutelings- of hash-algoritmen, bijvoorbeeld op de initialisatievector (IV), is efficiënter, maar maakt de versleuteling gemakkelijker te kraken.
Compromis: verhoogd oppervlakteoppervlak voor werkbelastingen. Beveiliging geeft prioriteit aan een verminderd 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 het oppervlak van de werkbelasting. De nieuwe onderdelen moeten worden beveiligd, mogelijk op manieren die nog niet in het systeem worden gebruikt, en ze verhogen vaak het nalevingsbereik. Houd rekening met deze veelgebruikte onderdelen:
Een berichtenbus voor laden herverdeling
Een load balancer voor automatisch geschaalde replica's
Offloading van gegevens naar caches, netwerken voor toepassingslevering of netwerken voor contentlevering
Offloading van verwerking naar achtergrondtaken of zelfs client-rekenkracht
Compromis: segmentatie verwijderen. De beveiligingspijler geeft prioriteit aan sterke segmentatie om verfijnde beveiligingscontroles mogelijk te maken en straalstraal te verminderen.
Het delen van resources via een verhoogde dichtheid is een benadering voor het verbeteren van de efficiëntie. Voorbeelden hiervan zijn multitenancyscenario's 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 niet-geautoriseerde zijwaartse verplaatsing van de ene tenant naar de andere.
Een gedeelde workloadidentiteit die het principe van minimale bevoegdheden schendt en afzonderlijke audittrails in toegangslogboeken bedekt.
Besturingselementen voor perimeterbeveiliging, bijvoorbeeld netwerkregels, die worden gereduceerd tot alle co-locatieonderdelen, waardoor afzonderlijke onderdelen meer toegang hebben 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 vinden van verschillende onderdelen die leiden tot meer onderdelen binnen het bereik voor naleving vanwege hun gedeelde host.
Compromissen voor prestatie-efficiëntie met Kostenoptimalisatie
Compromis: te veel vraag. Zowel Kostenoptimalisatie als Prestatie-efficiëntie geven prioriteit aan voldoende aanbod om aan de vraag te voldoen.
Overprovisioning is een risico wanneer teams proberen prestatieproblemen in een workload te beperken. Enkele veelvoorkomende oorzaken van overprovisioning zijn:
- Initiële capaciteitsplanning is verkeerd geëvalueerd omdat het team zich alleen richt op piekbelastingsramingen, waarbij strategieën voor piekvereffening in het workloadontwerp worden genegeerd.
- Een resource omhoog of uitschalen tijdens een probleemoplossingsstap van een incidentrespons.
Automatisch schalen kan onjuist worden geconfigureerd. Enkele voorbeelden van onjuist geconfigureerde automatische schaalaanpassing zijn:
- Omhoog schalen met minimale wijzigingen in de vraag of een verlengde afkoelperiode kan meer kosten in rekening brengen dan nodig is voor de vraag.
- Het gebruik van automatische schaalaanpassing zonder een ingestelde bovengrens kan leiden tot onbeheerde groei als gevolg van storingen of misbruik van het systeem en de verwachte workloadvereisten overschrijden.
Als u zich uitbreidt in meerdere regio's, kunt u de prestaties verbeteren door workloads dichter bij de gebruiker te brengen en tijdelijke beperkingen van de resourcecapaciteit te voorkomen. Deze topologie voegt echter ook complexiteit en duplicatie van resources toe.
Compromis: Meer onderdelen. Een techniek voor kostenoptimalisatie is om samen te voegen met een kleiner aantal resources door de dichtheid te verhogen, duplicatie te verwijderen en functionaliteit samen te zoeken.
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 herverdelen of offloaden van taken naar een toepassing of netwerk voor contentlevering 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 zijn vereist in plaats van één gegeneraliseerde component.
Compromis: Toegenomen investeringen op items die niet zijn afgestemd op functionele vereisten. Een benadering van kostenoptimalisatie is het evalueren van de waarde die wordt geleverd door elke oplossing die wordt geïmplementeerd.
Premium-services en SKU's kunnen een workload helpen om te voldoen aan prestatiedoelen. Deze services kosten meestal meer en kunnen extra functies bieden. Ze kunnen te weinig worden gebruikt als veel van de premium-functies niet specifiek worden gebruikt voor het voldoen aan prestatiedoelen.
Voor een goed presterende workload zijn telemetriegegevens vereist voor waarneembaarheid die moet worden overgedragen en opgeslagen. Een toename van de prestatietelemetrie die wordt verzameld, kan de kosten van telemetriegegevensoverdracht en opslag verhogen.
Activiteiten voor prestatietests voegen kosten toe die niet zijn gekoppeld aan de waarde van het productiesysteem. Voorbeelden van kosten voor prestatietests zijn:
- Omgevingen instantiëren die zijn toegewezen aan prestatiegerichte tests.
- Gespecialiseerde hulpprogramma's voor prestaties gebruiken.
- Besteed tijd aan het uitvoeren van de tests.
Trainingsteamleden voor gespecialiseerde prestatieoptimalisatietaken of betalen voor services voor het afstemmen van prestaties, worden toegevoegd aan de kosten van een workload.
Prestatie-efficiëntie compromissen met Operational Excellence
Compromis: verminderde waarneembaarheid. Waarneembaarheid is nodig om een workload zinvolle waarschuwingen te bieden en te zorgen voor een geslaagde reactie op incidenten.
Het verminderen van het logboek- en metrische volume om de verwerkingstijd voor het verzamelen van telemetrie te verminderen in plaats van andere taken vermindert de algehele waarneembaarheid van het systeem. Enkele voorbeelden van de resulterende verminderde waarneembaarheid zijn:
- Het beperkt de gegevenspunten die worden gebruikt om zinvolle waarschuwingen te maken.
- Dit leidt tot hiaten in de dekking voor incidentresponsactiviteiten.
- Het beperkt de waarneembaarheid in beveiligingsgevoelige of nalevingsgevoelige interacties en grenzen.
Wanneer patronen voor prestatieontwerp worden geïmplementeerd, neemt de complexiteit van de werkbelasting vaak toe. Onderdelen worden toegevoegd aan kritieke stromen. De workloadbewakingsstrategie en prestatiebewaking moeten deze onderdelen bevatten. Wanneer een stroom meerdere onderdelen of toepassingsgrenzen omvat, neemt de complexiteit van het bewaken van de prestaties van die stroom toe. Stroomprestaties moeten worden gecorreleerd over alle onderling verbonden onderdelen.
Compromis: Toegenomen complexiteit in bewerkingen. Een complexe omgeving heeft complexere interacties en een hogere kans op negatieve gevolgen van routine-, ad-hoc- en noodoperaties.
Door de prestatie-efficiëntie te verbeteren door de dichtheid te verhogen, wordt het risico in operationele taken verhoogd. Een fout in één proces kan een grote straal hebben.
Naarmate patronen voor het ontwerpen van prestaties worden geïmplementeerd, beïnvloeden ze operationele procedures zoals back-ups, sleutelrotaties en herstelstrategieën. Gegevenspartitionering en sharding kunnen bijvoorbeeld routinetaken bemoeilijken wanneer teams proberen ervoor te zorgen dat deze taken geen invloed hebben op gegevensconsistentie.
Compromis: Cultuurstress. Operational Excellence is geroot in een cultuur van schuldloosheid, respect en continue verbetering.
Het uitvoeren van een hoofdoorzaakanalyse van prestatieproblemen identificeert tekortkomingen in processen of implementaties waarvoor correctie is vereist. Het team moet de oefening beschouwen als een leerkans. Als teamleden de schuld krijgen van problemen, kan moreel worden beïnvloed.
Routine- en ad-hocprocessen kunnen invloed hebben op de prestaties van de workload. Het wordt vaak beschouwd als de voorkeur om deze activiteiten uit te voeren tijdens daluren. Off-peak hours kunnen echter onhandig of buiten normale uren zijn voor de teamleden die verantwoordelijk zijn voor of verantwoordelijk zijn voor deze taken.
Verwante koppelingen
Verken de compromissen voor de andere pijlers: