Aanbevelingen voor het optimaliseren van stroomkosten
Van toepassing op deze controlelijst voor Azure Well-Architected Framework Cost Optimization:
CO:09 | Stroomkosten optimaliseren. De kosten van elke stroom afstemmen met stroomprioriteit. Wanneer u prioriteit geeft aan stromen, moet u rekening houden met de functies, functionaliteit en niet-functionele vereisten van elke stroom. Het optimaliseren van stroomuitgaven vereist vaak strategische compromissen. |
---|
In deze handleiding worden de aanbevelingen beschreven voor het optimaliseren van de kosten van elk van de stromen in uw workload. Kostenoptimalisatie van de stromen in een workload omvat het strategisch toewijzen en beheren van resources om kosten te minimaliseren terwijl de prestaties behouden blijven. Deze optimalisatie is van cruciaal belang omdat het een efficiënt gebruik van geïnvesteerde resources garandeert, onnodige uitgaven vermindert en het totale rendement op investeringen voor de infrastructuur verbetert. Als u de stromen in een workload niet in kosten optimaliseert, loopt u een risico op overbesteding van resources, wat leidt tot een toename van de operationele kosten en een verminderde winstgevendheid.
Definities
Termijn | Definitie |
---|---|
Loskoppelen | De strategie voor het verwijderen van een stroom uit een resource die meerdere stromen bevat en deze in een afzonderlijke resource plaatst. |
Stroom | In een workload is de volgorde van acties die een specifieke functie uitvoeren. Een stroom omvat het verplaatsen van gegevens en het uitvoeren van processen tussen onderdelen van de workload. |
Systeemstroom | De stroom van informatie en processen binnen een systeem. Het systeem volgt deze stroom automatisch om gebruikersstromen of workloadfunctionaliteit in te schakelen. |
Gebruikersstroom | De paden of reeksen acties die gebruikers binnen een toepassing of systeem uitvoeren. |
Belangrijke ontwerpstrategieën
Investeer meer in stromen met hoge prioriteit dan in stromen met een lagere prioriteit. Het uitlijnen van stroomprioriteit en uitgaven kan betrekking hebben op het loskoppelen van stromen die momenteel dezelfde resource delen. Het kan ook betrekking hebben op het combineren van stromen met vergelijkbare vereisten, maar worden uitgevoerd op afzonderlijke resources. Stel dat u een webtoepassing hebt die meerdere stromen bevat, zoals gebruikersregistratie, aanmelding en gegevensverwerking. Deze stromen worden uitgevoerd op één server, ook al hebben ze verschillende resourcebehoeften. Als u zowel kosten als prestaties wilt optimaliseren, kunt u stromen scheiden of stromen combineren:
Afzonderlijke stromen. U kunt bijvoorbeeld de gebruikersregistratiestroom loskoppelen van de anderen en deze verplaatsen naar een toegewezen, goedkopere server. Deze stroom is belangrijk, maar niet resource-intensief, dus het is een goede kandidaat voor een goedkopere server.
Stromen combineren. U kunt bijvoorbeeld de aanmeldings- en gegevensverwerkingsstromen combineren, die beide hogere resourcevereisten hebben en deze samen uitvoeren op een server met hoge prestaties. Door deze stromen te combineren, kan de server efficiënt omgaan met de resource-intensieve behoeften van beide stromen. Hiermee worden de prestaties en kosten geoptimaliseerd.
In een workload kunnen er verschillende typen stromen of paden zijn die u moet overwegen. Deze handleiding is gericht op de volgende stroomtypen:
Systeemstromen. Het optimaliseren van systeemstromen omvat het stroomlijnen van de communicatie en interactie tussen systeemonderdelen, het minimaliseren van knelpunten en het garanderen van efficiënt resourcegebruik.
Gebruikersstromen. Het optimaliseren van gebruikersstromen omvat het verbeteren van de gebruikerservaring, het verminderen van wrijvingspunten en het garanderen van soepele navigatie en interactie binnen de toepassing of het systeem.
Een inventaris van stromen maken
Een stroominventaris is een uitgebreide lijst en beschrijving van alle reeksen acties, gegevensovergangen en systeeminteracties binnen een workload. Een stroominventaris is de eerste stap om ervoor te zorgen dat investeringen overeenkomen met de prioriteit van stromen. U moet stromen alleen optimaliseren wanneer u hun doel en afhankelijkheden volledig begrijpt. Hier volgen de stappen voor het maken van een inventaris van workloadstromen:
Documentstromen. Begin met het documenteren en weergeven van alle bestaande stromen in uw workload om inzicht te krijgen in de uitgebreide status van het systeem. Neem elke reeks acties, gegevensovergangen en systeeminteracties op. Maak uzelf vertrouwd met elk onderdeel, zoals externe services, databases, middleware en integraties van derden. Daarnaast kunt u het volume van aanvragen in de loop van de tijd bijhouden of schatten.
Stromen visualiseren. Als u een duidelijker perspectief wilt krijgen, vertegenwoordigt u uw bevindingen visueel, mogelijk in stroomdiagrammen of diagrammen. Met visualisaties kunt u de onderlinge afhankelijkheden tussen onderdelen bekijken. Overweeg het gebruik van een hulpprogramma zoals Visio om u te helpen met de visualisaties.
Stromen categoriseren. Bundel vergelijkbare stromen, rekening houdend met kenmerken zoals hun functionaliteit (bijvoorbeeld verificatie, het ophalen van gegevens en transactieverwerking), de kritiek op het bedrijf of de resources die ze gebruiken (CPU, geheugen of bandbreedte).
Prioriteit geven aan stromen
Stroom prioritering is het proces van het classificeren van stromen op basis van hun invloed op bedrijfsresultaten, gevolgen voor de gebruikerservaring en de resources die ze gebruiken. Kritieke stromen vereisen vaak hogere beschikbaarheidsniveaus, snellere hersteltijden en betere prestaties om te voldoen aan de doelstellingen van de workload. Door stromen te prioriteren, kunt u de uitgaven beter afstemmen op de prioriteit van stromen. Houd rekening met de volgende stappen om prioriteit te geven aan stromen:
Stroomwaarde identificeren. Wanneer u de kosten van de workloadstroom optimaliseert, moet u de stroom identificeren die de meeste waarde biedt. U wilt niet meer uitgeven dan een stroom waard is. In plaats van gewoon kosten te verlagen, kunt u overwegen de kosten te verschuiven om de waardevollere stromen te prioriteren. Uw kassastroom is bijvoorbeeld essentieel voor bedrijven, maar de aankoopgeschiedenis is dat niet. U moet meer resources en budget toewijzen aan de kassastroom.
Stromen met lage prioriteit hebben lagere verwachtingen voor beschikbaarheid, herstel en prestaties. U kunt kosten verlagen door goedkopere configuraties te gebruiken om de uitgaven voor prestaties, beschikbaarheid of bedrijfscontinuïteit te verminderen.
Overweeg metrische stroomgegevens. Als u moeite hebt om prioriteit te geven aan uw stromen, moet u rekening houden met de beschikbaarheids- en hersteldoelen die u eraan hebt toegewezen. Kritieke stromen hebben vaak hoge beschikbaarheidsvereisten en service level agreements (SLA's). Stromen die zijn gekoppeld aan een lagere RPO en RTO zijn belangrijker dan stromen met een hogere RPO en RTO.
Onafhankelijke stromen optimaliseren
Soms worden uw stromen al uitgevoerd op verschillende resources. In dergelijke gevallen kunt u de uitgaven eenvoudiger evalueren en optimaliseren. Evalueer de onderdelen en processen die bij elke onafhankelijke stroom betrokken zijn om te bepalen of er manieren zijn om ze te optimaliseren of te vereenvoudigen. Als u onafhankelijke stromen wilt optimaliseren, voert u de volgende stappen uit:
Overbodige onderdelen elimineren. Verwijder overbodige elementen die niet bijdragen aan de kernfunctionaliteit van de stroom, waardoor de complexiteit en kosten worden verminderd.
Ontwerp de stroom opnieuw. Overweeg de architectuur van de stroom opnieuw te ontwerpen om de efficiëntie te verbeteren. U kunt bijvoorbeeld de volgorde van bewerkingen wijzigen, latentie verminderen of de gegevensoverdrachtsnelheden verbeteren.
Kies een geschikte prestatielaag. Verschillende stromen kunnen verschillende vereisten hebben in termen van verwerkingssnelheid, geheugen of andere metrische resourcegegevens. Zorg ervoor dat u een resourcelaag kiest die goed aansluit bij de specifieke vereisten van elke stroom.
Schaalinstellingen aanpassen. Als een stroom een variabele vraag ondervindt, kunt u overwegen om automatisch schalen te implementeren om resources dynamisch aan te passen op basis van realtime behoeften, waardoor de kosten worden geoptimaliseerd.
Configuraties verfijnen. Verfijn andere instellingen, zoals netwerk- of gegevensopslagopties, om beter af te stemmen op de prestatie- en budgetvereisten van de stroom.
Verschillende stromen scheiden
Het scheiden van verschillende stromen op verschillende resources is een proces waarbij afzonderlijke taken worden toegewezen aan toegewezen resources. Niet-imilare stromen zijn stromen met verschillende kenmerken. Deze kenmerken kunnen rekenvereisten, gegevensafhankelijkheden, I/O-bewerkingen, latentiegevoeligheid, beveiligingsbehoeften en nalevingsvereisten omvatten. Het is vaak rendabeler om verschillende typen stromen op afzonderlijke resources uit te voeren. Dit maakt nauwkeurige resourcetoewijzing mogelijk voor elke stroom, waardoor onnodige uitgaven worden verminderd en de maximale efficiëntie wordt gegarandeerd.
Overweeg om verschillende stromen te scheiden die momenteel worden gecombineerd. Deze scheiding verhoogt de schaalbaarheid, fouttolerantie en aanpassingsvermogen en stroomlijnt ook de kosten. Door ervoor te zorgen dat elke stroom onafhankelijk functioneert, vermindert u interferentierisico's en kunt u resources rendabeler toewijzen op basis van de prioriteit van elke stroom. Stel dat u CRM (gebruikersstroom) colocatet met een gegevensengine (gegevensstroom). Gebruikersverkeer naar het CRM-systeem tijdens kantooruren kan de gegevensengine vertragen. Wanneer u stromen loskoppelt, kan de gegevensengine elk onderdeel of elke service onafhankelijk schalen op basis van de workloadvraag. Deze ontkoppeling optimaliseert de toewijzing van resources en vermindert de kosten.
Vergelijkbare stromen combineren
Het combineren van vergelijkbare stromen op één resource is een proces van het consolideren van taken of processen met vergelijkbare kenmerken en het gebruik van gedeelde resources. Deze strategie elimineert redundantie en zorgt voor efficiënter gebruik van resources, wat leidt tot aanzienlijke kostenbesparingen. Vergelijkbare typen stromen delen vergelijkbare kenmerken. U kunt dezelfde kenmerken overwegen die u bekijkt wanneer u verschillende stromen scheidt: rekenvereisten, gegevensafhankelijkheden, I/O-bewerkingen, latentiegevoeligheid, beveiligingsbehoeften en nalevingsvereisten. Hier volgen enkele voorbeelden waarbij het combineren van vergelijkbare werkbelastingstromen voor het gebruik van dezelfde resource tot aanzienlijke besparingen kan leiden:
Webservers. In plaats van afzonderlijke webservers voor elke toepassing toe te wijzen, kunt u overwegen ze te consolideren, met name als hun verkeer niet consistent hoog is. Een gedeelde webserver, gekoppeld aan een omgekeerde proxy, kan verkeer effectief beheren en routeren naar meerdere toepassingen.
API-gateways. In plaats van afzonderlijke API-gateways te onderhouden voor afzonderlijke microservices of toepassingen, kunt u een gecentraliseerde API-gateway gebruiken om aanvragen te stroomlijnen en naar de relevante service te leiden. Dit maakt het beheer eenvoudiger en verlaagt ook de kosten.
Logboekverwerking. In plaats van meerdere toepassingen of services te gebruiken die elk hun eigen exemplaren voor logboekverwerking gebruiken, kunt u ze allemaal doorsturen naar een hulpprogramma voor gedeelde logboekverwerking. Deze aanpak minimaliseert het aantal actieve exemplaren, wat resulteert in directe kostenbesparingen.
Verificatieservices. Als meerdere toepassingen hun eigen afzonderlijke verificatiemechanismen implementeren, wordt redundantie geïntroduceerd. Het integreren van een oplossing voor eenmalige aanmelding (SSO) of een gemeenschappelijke verificatieservice vermindert deze duplicatie en optimaliseert het resourcegebruik, waardoor de kosten worden verlaagd.
Risico: Maak geen toeval met ontwerp. Twee stromen die er ongeveer als volgt uitzien, hebben niet noodzakelijkerwijs hetzelfde doel. U moet de functie en het ontwerp van elke stroom begrijpen voordat u ze samenvoegt of wijzigt. Het verkeerd interpreteren van een stroom door zich alleen op zijn uiterlijk te richten, kan leiden tot onbedoelde gevolgen en de service of het proces dat wordt ondersteund, verstoren. Als meerdere stromen dezelfde functie dienen en er geen onderscheidbare verschillen zijn in hun ontwerp of intentie, kunt u overwegen deze te consolideren.
Stromen continu bewaken
De aard van stromen en workloads kan na verloop van tijd veranderen, dus u moet de stroomuitgaven controleren om ervoor te zorgen dat de kosten overeenkomen met prioriteiten. Evalueer het resourcegebruik van elke stroom door het reken-, opslag- en netwerkgebruik te analyseren dat aan elke stroom is gekoppeld. Identificeer eventuele inefficiënties of gebieden waar resources te weinig worden gebruikt. Met deze analyse kunt u mogelijkheden voor kostenoptimalisatie vaststellen. Hier volgen enkele overwegingen waarmee u rekening moet houden wanneer u het stroomgebruik controleert:
Gebruikspatronen analyseren. Analyseer de gebruikspatronen van de stromen. Sommige stromen zijn mogelijk actiefer tijdens bepaalde tijdstippen van de dag of maand, terwijl andere mogelijk een consistente belasting hebben. Door deze patronen te begrijpen, kunt u resourcebehoeften voorspellen en de toewijzing aanpassen om knelpunten en overprovisioning te voorkomen.
Bewaak relevante metrische gegevens. Bepaal de metrische gegevens waarmee u de efficiëntie en kosteneffectiviteit van elke stroom kunt beoordelen. Overweeg cpu-gebruik, kosten voor gegevensoverdracht, transactiekosten en opslagvoetafdruk. Gebruik bewakingshulpprogramma's om gedetailleerde metrische gegevens over resourcegebruik en prestaties te verzamelen.
Houd rekening met doorlopend onderhoud. Houd rekening met de onderhoudskosten, met name wanneer u infrastructuur als een service-oplossing gebruikt, zoals virtuele machines. U moet rekening houden met activiteiten zoals patching, upgrades, back-ups, bewaking en beveiliging.
Identificeer tijdens uw analyse eventuele inefficiënties of gebieden waar resources niet effectief worden gebruikt. Overweeg niet-actieve rekeninstanties, ongebruikte gegevens en lage netwerkbandbreedte. Deze inefficiënties kunnen wijzen op mogelijkheden voor kostenoptimalisatie.
Azure-facilitering
Stromen prioriteren, optimaliseren en bewaken: het hulpprogramma Gebruikersstroom in Application Insights biedt een visuele weergave van gebruikersnavigatie op de pagina's en functies van uw site. Dit hulpprogramma helpt bij het identificeren van gebieden waar gebruikers vaak vertrekken, acties herhalen of specifieke paden volgen. Door het werkelijke gebruikersgedrag te vergelijken met uw verwachte resultaten en doelstellingen, kunt u kritieke stromen identificeren. Hiermee kunt u ook potentiële problemen optimaliseren, zoals hoge verloopsnelheden, terugkerende acties of ontwerpfouten. Met het hulpprogramma kunt u ook aangepaste eigenschappen filteren via dimensies, met een meer op maat gemaakte analyse.
Met Azure Monitor krijgt u inzicht in de prestaties en status van uw toepassingen. Het biedt mogelijkheden voor bewaking en diagnose. Met deze mogelijkheden kunt u prestatieknelpunten identificeren, resourcegebruik optimaliseren en problemen detecteren en oplossen die van invloed kunnen zijn op de kosten.
Log Analytics is een hulpprogramma waarmee u logboekgegevens uit verschillende bronnen kunt verzamelen, analyseren en visualiseren. Met behulp van Log Analytics kunt u inzicht krijgen in uw toepassings- en infrastructuurlogboeken, trends identificeren en kosten optimaliseren door gebruik en gegevensretentie te beheren. Overweeg logboeken te verplaatsen en speciale oplossingen te gebruiken in plaats van gedeelde oplossingen om de kosten beter te beheren.
Verwante koppelingen
Controlelijst voor kostenoptimalisatie
Raadpleeg de volledige set aanbevelingen.