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.

Wanneer u onderhandelt over prestatiedoelen en het ontwerpen van een workload voor prestatie-efficiëntie, moet u overwegen hoe beslissingen op basis van de ontwerpprincipes en de aanbevelingen in de controlelijst voor ontwerpbeoordeling voor prestatie-efficiëntie van invloed kunnen zijn op de doelstellingen en optimalisaties van andere pijlers. Sommige beslissingen over prestatie-efficiëntie zijn een voordeel van één pijler, maar vormen compromissen voor een andere. In dit artikel worden voorbeelden van afwegingen beschreven die een workloadteam kan tegenkomen bij het ontwerpen van de architectuur en de operaties van de workload 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 vergroot echter de explosiestraal van een storing in het gesitueerde onderdeel of applicatieplatform.

  • 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 vaak gebruikte gegevenssets te voorkomen, maar ze vergroten 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 load balancing, waarmee een kritiek, toestand-georiënteerd onderdeel wordt geïntroduceerd.
    • Een load balancer voor automatisch geschaalde replica's, waarvoor een betrouwbare werking en de deelname van replica's vereist zijn.
    • Het offloaden van gegevens naar caches vereist betrouwbare cache-invalideringsmethoden.

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 uitgerust met een systeem voor applicatieprestatiemonitoring (APM) 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 overslaan van onderdelen of processen die een stroom vertragen wanneer hun verwerkingstijd niet is gerechtvaardigd. Deze strategie kan de beveiliging in gevaar komen en vereist 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

  • Het uitbesteden van verwerking naar achtergrondtaken of zelfs client-verwerkingskracht

Compromis: verwijderen van segmentatie. De beveiligingspijler geeft prioriteit aan sterke segmentatie om fijngranulaire beveiligingscontroles mogelijk te maken en het impactgebied 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 workload-identiteit die het principe van minimale rechten schendt en afzonderlijke audittrails in toegangslogboeken verhult.

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

  • Een compromittering van de host van het toepassingsplatform of een individueel onderdeel als gevolg van een groter effectgebied. Deze toename wordt veroorzaakt door makkelijkere toegang tot samen geplaatste onderdelen.

  • Het samenzetten van verschillende onderdelen leidt tot meer onderdelen die binnen de reikwijdte van naleving vallen vanwege hun gemeenschappelijke host.

Compromis: Verouderde beveiligingsstatus. De beveiligingspijler vereist autorisatie-, inhouds- en vertrouwensbeslissingen om de huidige status van het systeem weer te geven.

Caching, precomputatie en edge-distributie verbeteren de prestaties door reacties van een kopie te leveren in plaats van ze opnieuw te compileren of opnieuw tevalideren. Hoe verder de kopie verwijderd is van de bron van waarheid, en hoe langer de levensduur, hoe waarschijnlijker het is dat deze een beveiligingstoestand weergeeft die niet langer geldig is.

  • Verificatietokens in de cache, autorisatiebeslissingen of sessiegegevens kunnen toegang toestaan nadat een gebruiker is uitgeschakeld, een rol wordt ingetrokken of een token wordt gedraaid. Het venster tussen het intrekken en het verlopen van de cache is een venster met onbevoegde toegang.

  • Inhoud die wordt geleverd vanuit een CDN- of browsercache, kan gegevens blijven leveren die zijn ingetrokken of opnieuw geclassificeerd bij de oorsprong. Deze persistentie kan de gegevensverwerking, retentie of privacyvereisten schenden.

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.
  • Autoscaling kan verkeerd worden geconfigureerd. Enkele voorbeelden van onjuist geconfigureerde automatische schaalaanpassing zijn:

    • Omhoog schalen met minimale veranderingen in de vraag of een langere afkoelperiode kan meer kosten met zich meebrengen dan de vraag rechtvaardigt.
    • 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.
  • Het trainen van teamleden voor gespecialiseerde prestatieoptimalisatietaken of het betalen voor prestatieservices voegt toe aan de kosten van een werklast.

Prestatie-efficiëntie compromissen met Operational Excellence

Compromis: verminderd observatievermogen. Observatievermogen is nodig om een workload zinvolle waarschuwingen te geven en om te waarborgen dat er adequaat op incidenten wordt gereageerd.

  • Het verminderen van het logboek- en metrische volume om minder verwerkingstijd te besteden aan telemetrieverzameling vermindert de algehele waarneembaarheid. Voorbeelden zijn:

    • Minder gegevenspunten voor het bouwen van zinvolle waarschuwingen.
    • Dekkingslacunes in incidentresponsactiviteiten.
    • Beperkte waarneembaarheid in beveiligingsgevoelige of nalevingsgevoelige interacties en grenzen.
  • Ontwerppatronen voor prestaties voegen vaak complexiteit toe door onderdelen in kritieke stromen te introduceren. De strategie voor workloadbewaking moet deze onderdelen bevatten. Wanneer een stroom meerdere onderdelen of toepassingsgrenzen omvat, moeten de prestaties worden gecorreleerd tussen alle 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 impact 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 als wenselijker gezien om activiteiten tijdens daluren uit te voeren. Off-peak hours kunnen echter onhandig of buiten normale uren zijn voor de teamleden die verantwoordelijk zijn voor of bekwaam zijn in deze taken.

Verken de compromissen voor de andere pijlers: