Aanbevelingen voor het optimaliseren van onderdeelkosten
Van toepassing op deze controlelijst voor Azure Well-Architected Framework Cost Optimization:
CO:07 | Kosten van onderdelen optimaliseren. Verwijder of optimaliseer regelmatig verouderde, overbodige en onderbenutte workloadonderdelen, waaronder toepassingsfuncties, platformfuncties en resources. |
---|
In deze handleiding worden de aanbevelingen beschreven voor het optimaliseren van de kosten van workloadonderdelen. Het optimaliseren van onderdeelkosten verwijst naar het proces van het evalueren en verbeteren van de kostenefficiëntie van afzonderlijke elementen binnen een workload. Het benadrukt de continue beoordeling en mogelijke verwijdering of verbetering van verouderde, onnodige of zelden gebruikte onderdelen, zoals toepassingsfuncties, platformfuncties en resources. Het omvat ook kostenoptimalisatie van omgevingen voor herstel na noodgevallen en het voorkomen van het introduceren van niet-geoptimaliseerde onderdelen. De richtlijnen in dit artikel zijn van toepassing op bestaande workloads die zich niet in de ontwerpfase bevindt. Het negeren van regelmatige optimalisatie van onderdelen kan leiden tot opflatende kosten, resourceverspilling en inefficiënte workloads die zowel tijd als geld leegmaken.
Definities
Termijn | Definitie |
---|---|
Toepassingsfunctie | Een afzonderlijke mogelijkheid in de toepassingssoftware waarmee gebruikers specifieke taken kunnen uitvoeren of toegang kunnen krijgen tot specifieke informatie. |
Platformfunctie | Een specifieke functionaliteit of functionaliteit van een platform. Het kan variëren, afhankelijk van het platform, maar over het algemeen zijn platformfuncties ontworpen om de gebruikerservaring te verbeteren, de productiviteit te verbeteren of specifieke taken of acties in te schakelen. |
Bron | Eén entiteit of onderdeel dat u binnen een cloudserviceprovider kunt maken, configureren en gebruiken. |
Belangrijke ontwerpstrategieën
Het optimaliseren van workloadonderdelen gaat over het verfijnen van de verschillende elementen van een workload, waaronder toepassingsfuncties, platformmogelijkheden en resources. Het doel is ervoor te zorgen dat de workload gebruikmaakt van alle onderdelen efficiënt en kostenefficiënt. Strategieën zijn onder andere het verwijderen, wijzigen en vermijden van onderdelen die ervoor zorgen dat u meer uitgeeft dan u nodig hebt. Het optimalisatieproces voor onderdelenkosten zorgt ervoor dat u resources toewijst aan functies en onderdelen die de meeste waarde leveren, waardoor onnodige kosten worden vermeden.
Toepassingsfuncties optimaliseren
Het optimaliseren van toepassingsfuncties is het proces van het verwijderen, herinvesteren of genereren van toepassingsfuncties op basis van waarde. Het zorgt ervoor dat u resources toewijst aan toepassingsfuncties die de meeste waarde bieden aan klanten. Het optimaliseren van toepassingsfuncties helpt voorkomen dat u investeert in functies die bijdragen aan technische schulden of onvoldoende rendement op investeringen opleveren.
Waarde van toepassingsfunctie evalueren
Als u de waarde van een functie wilt bepalen, moet u rekening houden met de effecten ervan op de algehele toepassing en de waarde die deze aan de klanten biedt. Enkele factoren die u moet overwegen, zijn:
Klantbehoeften: Beoordeel hoe goed de functie voldoet aan de behoeften en verwachtingen van klanten. Feedback van klanten, enquêtes en gebruiksgegevens kunnen waardevol zijn bij het begrijpen van de waargenomen waarde.
Bedrijfsdoelen: Evalueer hoe de functie overeenkomt met de strategische doelstellingen van het bedrijf. Bedenk hoe functies het genereren van inkomsten, klanttevredenheid of concurrentievoordeel ondersteunen.
Effect op de gebruikerservaring: Bepaal het effect dat de functie heeft op het verbeteren van de gebruikerservaring en het verbeteren van bruikbaarheid of productiviteit.
Differentiatie: Beoordeel of de functie een uniek verkooppunt of concurrentievoordeel biedt in vergelijking met andere toepassingen op de markt.
Kosten van toepassingsfuncties evalueren
Het is essentieel dat u de kosten begrijpt die aan elke functie zijn gekoppeld voor effectieve resourcetoewijzing en optimalisatie. Houd rekening met verschillende aspecten bij het evalueren van kosten, zoals:
Ontwikkelingsinspanningen: Beoordeel de tijd, resources en expertise die nodig zijn om de functie of omringende functies te ontwikkelen en te onderhouden. Onderbenutte functies worden vaak een belangrijke bron van technische schulden.
Onderhoud en ondersteuning: Houd rekening met de lopende kosten voor het onderhouden en ondersteunen van de functie, waaronder oplossingen voor fouten, beveiligingsupdates en probleemoplossing.
Infrastructuur- en resourcegebruik: Evalueer het effect van de functie op infrastructuurvereisten, waaronder serverresources, opslag en bandbreedte.
Integratiecomplexiteit: beoordeel de complexiteit en kosten van het integreren van de functie met andere systemen of services van derden.
Prestatieoverwegingen: evalueer het effect van de functie op de prestaties van de toepassing, inclusief schaalbaarheid, reactietijd en resourcegebruik.
Waarde van toepassingsfuncties beoordelen met belanghebbenden
Bekijk de waarde van toepassingsfuncties met belanghebbenden door belangrijke medewerkers, zoals productmanagers, softwareontwikkelaars en bedrijfsanalisten, te betrekken bij het beoordelen van de waarde van specifieke functies op bedrijfsdoelstellingen. Deze samenwerking is essentieel voor kostenoptimalisatie omdat het inzicht biedt in onderhoudsinspanningen en functies identificeert die de productiviteit kunnen belemmeren of de ontwikkeling van nieuwe, waardevolle functies kunnen belemmeren. Uw ontwikkelteam kan u belangrijke informatie geven over de hoeveelheid werk die nodig is om bepaalde functies te onderhouden. Moedig hen aan om te spreken over functies die meer moeite kunnen hebben dan ze waard zijn, vooral als deze functies het team afleiden van het maken van nieuwe functies.
De toekomst van de functie bepalen
Bepaal op basis van uw analyse en evaluatie de toekomst van de toepassingsfuncties. Verwijder, herinvesteer of verdien een toepassingsfunctie die geen rendement op investeringen biedt:
Verwijderen: Houd rekening met het geplande einde van de levensduur van een toepassingsfunctie op basis van gegevens. Redenen voor het verwijderen van functies zijn mogelijk lage vraag van klanten, hoge onderhoudskosten, complexiteit of redundantie die niet de moeite waard zijn om te herstellen. Maak een plan voor de verwijdering. Dit kan betrekking hebben op het herstructureren van de code, het bijwerken van afhankelijkheden of het opnieuw organiseren van de gebruikersinterface.
Risico: U kunt per ongeluk functies verwijderen die essentieel zijn voor bepaalde gebruikers of scenario's en die de prestaties, bewerkingen en beveiliging in uw toepassing negatief beïnvloeden.
Opnieuw investeren: Sommige toepassingsfuncties voegen mogelijk niet voldoende waarde toe in hun huidige staat, maar kunnen waarde toevoegen als u ze opnieuw investeert. Herinvestering houdt in dat de toepassingsfunctie opnieuw moet worden bewerkt of bevorderd. Geef prioriteit aan de geïdentificeerde verbeteringen op basis van hun waarde en haalbaarheid. Bepaal de roadmap en tijdlijn voor het implementeren van de wijzigingen. Houd rekening met factoren zoals ontwikkelingsbronnen, afhankelijkheden en het potentiële effect op de toepassing.
Inkomsten genereren: verander toepassingsfuncties in een verkoopkans die inkomsten genereert via inkomsten. Soms bieden functies waarde aan gebruikers, maar zijn de huidige investering niet waard. Verken mogelijkheden om geld te verdienen met deze functies, zoals het aanbieden als afzonderlijke betaalde invoegtoepassingen of het verlenen van licenties aan andere bedrijven.
Workloadresources optimaliseren
Het optimaliseren van workloadresources omvat het verwijderen van resources die ongebruikt zijn en eventuele niet-gebruikte resources optimaliseren die nodig zijn voor de workload. Met deze inspanning kunt u geld besparen, verspilling voorkomen en ervoor zorgen dat de werkbelasting alleen gebruikmaakt van de resources die waarde toevoegen.
Verwijder ongebruikte workloadresources. Ongebruikte resources zijn geïmplementeerde services die uw workload of bewerkingsprocessen niet gebruiken. Deze resources kunnen langdurig inactief, zwevend of vergeten zijn. Ze bieden geen rendement op investeringen en u moet ze verwijderen. Veelvoorkomende oorzaken van ongebruikte resources zijn:
- Waarschuwingen.
- Demo-builds.
- Omgeving buiten gebruik stellen.
- Functie buiten gebruik stellen.
- IP-adressen.
- Netwerkfirewalls.
- Bewijs van concept.
- Momentopnamen.
- Opslagaccounts
- Tijdelijke testomgevingen.
- Tijdelijke sorteeromgevingen.
Als u ongebruikte resources in een workload wilt verwijderen, moet u de volgende stappen overwegen:
Inventariseer eens: voer een grondige inventarisatie uit van alle resources binnen de workload in verschillende omgevingen.
Zwevende resources zoeken: Resources kunnen zwevende resources worden wanneer ze niet meer nodig zijn of wanneer hun bovenliggende resources worden verwijderd. U kunt bijvoorbeeld een virtuele machine verwijderen, maar het bijbehorende opslagaccount wordt niet verwijderd. Controleer uw workload om overbodige of zwevende resources te identificeren.
Niet-actieve onderdelen verwijderen: er zijn doorgaans kosten verbonden aan een geïmplementeerde resource. Zelfs als u met de resource kunt stoppen of opnieuw kunt toewijzen, betaalt u mogelijk nog steeds voor de resource. Overweeg om niet-actieve resources te verwijderen. Als u de gegevens nodig hebt, maakt u eerst een back-up en verwijdert u de resource. U kunt de resource beter opnieuw implementeren en de gegevens herstellen dan de resource inactief te laten blijven.
Optimaliseer onderbenutte resources. Onderbenutte resources vertegenwoordigen verspilde uitgaven omdat u betaalt voor resourcecapaciteit die niet volledig wordt gebruikt. Identificeer en optimaliseer deze resources om de kosten te verlagen en resources effectiever toe te wijzen. Voer de volgende stappen uit om de kosten van niet-gebruikte resources te evalueren en te optimaliseren:
Resources bewaken: gebruik hulpprogramma's om te controleren hoeveel CPU, geheugen en opslag u daadwerkelijk gebruikt. Kies het beste abonnement dat overeenkomt met uw behoeften op basis van deze informatie.
Gebruik analyseren: bekijk de gegevens om erachter te komen welke resources u niet gebruikt. Let op de resources met een laag gebruik in de loop van de tijd of grote verschillen in gebruik tussen drukke en trage tijden.
Juiste grootte: controleer of er te veel resources zijn toegewezen aan functies die niet worden gebruikt. Als dat het geval is, past u de grootte aan zodat deze beter overeenkomt met wat u eigenlijk nodig hebt.
Automatisch schalen: gebruik automatisch schalen om de resources die u gebruikt aan te passen op basis van hoe druk u bent. Zorg ervoor dat u een maximale schaallimiet instelt om plotselinge pieken te voorkomen die kostbaar en onnodig kunnen zijn.
Nadat u deze aanpassingen hebt aangebracht, test u of alles nog steeds werkt zoals het zou moeten. Bewaak continu het resourcegebruik en pas de toewijzing van resources aan wanneer de workload na verloop van tijd verandert. Controleer en optimaliseer regelmatig het resourcegebruik om kostenefficiëntie en prestatieoptimalisatie te behouden.
Resources voor herstel na noodgevallen optimaliseren. Het optimaliseren van noodherstelomgevingen gaat over het efficiënt gebruiken van de resources die zijn toegewezen voor herstel na noodgevallen. Een warme (actief-passieve) strategie voor herstel na noodgevallen is een veelvoorkomende bron van onderbezetting. In een warme strategie voor herstel na noodgevallen ontvangt één omgeving alle belasting terwijl de andere omgeving niet actief is totdat er een noodscenario is. Als u een omgeving voor herstel na noodgevallen wilt optimaliseren, kunt u overwegen hoe een dynamische benadering (actief-actief), koud (actief-uit) of actief-opnieuw implementeren kan helpen bij het voorkomen van onderbenutte resources. Hier volgt een overzicht van deze drie benaderingen voor herstel na noodgevallen:
Dynamische abonnementen: zowel de primaire als de secundaire omgevingen dienen gelijktijdig verkeer. Uw workload kan taken tussen deze omgevingen verdelen en in realtime reageren op de vraag. Door de belasting tussen twee actieve omgevingen te distribueren, kunt u goedkopere resources gebruiken, knelpunten met één punt verminderen en capaciteiten optimaal gebruiken. Dit kan leiden tot lagere kosten in termen van resourceverlies of inactiviteit. Een dynamische benadering kan meer investeringen in synchronisatie en het onderhouden van pariteit tussen de twee omgevingen vergen.
Koude plannen: Een koud noodherstelmodel omvat een stand-byomgeving die inactief blijft totdat een noodgeval de noodzaak van failover activeert. Omdat de stand-byomgeving niet actief wordt uitgevoerd, worden de kosten met betrekking tot reken-, opslag- en netwerkbewerkingen geminimaliseerd. Uw uitgaven hebben betrekking op het opslaan van back-ups, VM-installatiekopieën (virtuele machines) of sjablonen. Failover in het koude model kan langer duren omdat resources moeten worden opgestart en gegevens mogelijk moeten worden hersteld. Zorg ervoor dat de hersteltijd overeenkomt met de beoogde hersteltijd (RTO) van uw bedrijf voordat u deze aanpak doorvoert.
Active-redeploy: deze strategie maakt gebruik van infrastructuur als code. Wanneer er een failovergebeurtenis optreedt, implementeert u de secundaire omgeving met behulp van vooraf gedefinieerde sjablonen en scripts. Zonder vooraf geïmplementeerde rekenresources in de omgeving voor herstel na noodgevallen bespaart u op de kosten voor het onderhouden van niet-actieve resources. Er worden alleen kosten in rekening gebracht tijdens de werkelijke implementatie in een failoverscenario. Net als bij de koude benadering kan dit model langere hersteltijden veroorzaken, met name als de complexiteit van de infrastructuur hoog is. U moet de hersteltijd testen en meten om ervoor te zorgen dat deze voldoet aan uw beoogde hersteltijd.
Platformfuncties optimaliseren
Het optimaliseren van platformfuncties omvat het elimineren of bijwerken van platformfuncties, zoals prestatielagen en configuratie-instellingen, om de kosten te optimaliseren. Het helpt bij het afstemmen van uitgaven met de vereisten van de workload en voorkomt onnodige uitgaven voor onnodige functies. Hier volgen enkele tips voor het optimaliseren van de kosten van platformfuncties:
Kennis van de mogelijkheden van de dingen die u aanschaft: Voordat u kunt optimaliseren, hebt u een duidelijke inventaris nodig van de services en hun functies op uw cloudplatforms. Inzicht in de functies en functionaliteiten van de platforms of services in uw workload. Houd rekening met de specifieke laag die u hebt gekozen en de functies die elke laag biedt. Als u bijvoorbeeld geen automatische schaalaanpassing of geavanceerde netwerken nodig hebt, is een plan met een lagere laag mogelijk voldoende.
Ongebruikte functies uitschakelen: platformfuncties identificeren en uitschakelen die geld kosten. Mogelijk hebt u overbodige opslagmomentopnamen, ongebruikte schijven, redundante beveiligingsfuncties of onderbenutte netwerkmogelijkheden.
Gebruik de juiste versies: nieuwere versies van een service kunnen vergelijkbare prestaties bieden voor dezelfde prijs. Een virtuele machine met nieuwere hardware kan bijvoorbeeld vaak dezelfde prestaties bieden voor minder geld.
Gebruik de juiste configuraties: u betaalt mogelijk voor meer beschikbaarheid of prestaties dan u nodig hebt. Elimineer beschikbaarheids- of prestatiegaranties die niet nodig zijn voor de workload.
Overbodige automatisering elimineren: evalueer uw automatiseringsprocessen en elimineer ongebruikte automatisering die mogelijk extra kosten met zich meebrengt.
Verwijder redundantie van hulpprogramma's: verwijder hulpprogramma's die u niet nodig hebt of hulpprogramma's die dezelfde functie bieden. Evalueer mogelijke redundantie in de hulpprogramma's die u gebruikt voor het bouwen van software, het schrijven van code, beveiliging en bewaking. Als u bijvoorbeeld GitHub Actions gebruikt om uw software te bouwen, hoeft u geen ander hulpprogramma te kopen waarmee software wordt gebouwd. Voordat u functies of hulpprogramma's koopt, controleert u of er al een hulpprogramma in uw workload is dat de taak kan uitvoeren. Elimineer hulpprogrammaredundantie om geldverspilling te voorkomen en maak optimaal gebruik van wat u al hebt.
Methodisch zijn in optimalisatie-inspanningen
Het voorkomen van niet-geoptimaliseerde onderdelen gaat over proactief ervoor zorgen dat onderdelen essentieel en geoptimaliseerd zijn voordat ze worden toegevoegd of gewijzigd. De beste manier om afval te verwijderen is om het in de eerste plaats te vermijden. Gebruik strategieën die onnodige uitgaven voorkomen door inefficiëntie in de hoofdmap aan te pakken, zodat een workload kostenefficiënt wordt uitgevoerd vanaf het begin. Houd rekening met deze strategieën om afval te voorkomen:
Zoek de hoofdoorzaak voordat u oplossingen wijzigt: voordat u een probleem oplost, moet u weten wat het daadwerkelijk veroorzaakt. Als uw website bijvoorbeeld traag is, moet u niet onmiddellijk overschakelen naar een nieuw systeem. Zoek eerst uit waarom het traag is. Mogelijk ontdekt u dat het echte probleem iets anders is, zoals ongeldige databasequery's. Los het echte probleem op om tijd en geld te besparen.
Metagegevens toepassen: metagegevens toepassen om resources te ordenen en bij te houden. U kunt metagegevens gebruiken om resources te categoriseren en te groeperen, zodat u zwevende resources gemakkelijker kunt bijhouden, verwijderen en voorkomen. Maak een consistente metagegevensstrategie voor alle resources. Overweeg eigenaren, de verwachte resourceduur (bijvoorbeeld
sunset-30d
) of andere tags toe te voegen.Niet-standaardwijzigingen documenteren: documenteer eventuele wijzigingen in uw infrastructuur of configuraties die buiten het normale controleproces van uw workload worden uitgevoerd om onverwachte kosten te verlagen. U kunt bijvoorbeeld de schaalcapaciteit van een resource verhogen (omhoog of uit) om te voldoen aan een vraag op korte termijn of om een probleem op te lossen, maar vergeet deze terug te schalen. Maak een lijst met niet-standaardwijzigingen en gebruik deze als herinnering om de wijzigingen terug te zetten wanneer deze niet meer nodig zijn.
Houd alles eenvoudig: vereenvoudig uw infrastructuur en minimaliseer complexiteit om de kosten te verlagen. Gebruik alleen de benodigde resources en services die voldoen aan uw vereisten.
Azure-facilitering
Toepassingsfuncties optimaliseren: U kunt Azure Monitor en Application Insights gebruiken om het gebruik van uw toepassing te bewaken en gebieden te identificeren die wel of niet worden gebruikt. Op basis van de verzamelde inzichten kunt u weloverwogen beslissingen nemen om ongebruikte of onderbenutte functies te verwijderen of te optimaliseren.
Workloadresources en platformfuncties optimaliseren: Azure Advisor biedt aanbevelingen voor het identificeren en verwijderen van ongebruikte resources. U kunt Advisor gebruiken om uw resourcegebruik te analyseren en suggesties te ontvangen over resources om te verwijderen of omlaag te schalen. De werkmap Kostenoptimalisatie in Azure Advisor fungeert als een gecentraliseerde hub voor een aantal van de meest gebruikte hulpprogramma's die u kunnen helpen bij het stimuleren van gebruiks- en efficiëntiedoelen. Het biedt een scala aan aanbevelingen, waaronder aanbevelingen voor azure Advisor-kosten. Het helpt ook bij het identificeren van niet-actieve resources en het beheren van onjuist toegewezen virtuele machines.
Azure Monitor ondersteunt werkmappen. Met Azure Monitor-werkmappen kunt u een werkmap zoeken of maken waarmee zwevende resources in een gedefinieerd bereik worden gevonden en gerapporteerd. U kunt Azure Automation gebruiken om virtuele machines af te sluiten tijdens perioden van inactiviteit. Bij het afsluiten van resources kunt u kosten verlagen door het gebruik van niet-actieve resources te minimaliseren.
U kunt de functie voor automatisch schalen in Azure gebruiken om uw toepassing automatisch te schalen op basis van vooraf gedefinieerde voorwaarden, zodat u de capaciteit niet hoeft te veel inrichten. Met automatisch schalen kunt u resources efficiënt en kostenefficiënt toewijzen.
Vanuit een ontwerpperspectief kunnen Azure-load balancers belasting verdelen over beschikbaarheidszones en regio's. Deze load balancers kunnen helpen bij het elimineren van niet-actieve resources, bijvoorbeeld bij benaderingen voor herstel na noodgevallen.
Verwante koppelingen
- Aanbevelingen voor continue optimalisatie van prestaties
- Aanbevelingen voor het definiëren van betrouwbaarheidsdoelen
- Aanbevelingen voor maximaal beschikbare ontwerp voor meerdere regio's
- Aanbevelingen voor het optimaliseren van schalen en partitioneren
- Aanbevelingen voor het instellen van bestedingsrails
Controlelijst voor kostenoptimalisatie
Raadpleeg de volledige set aanbevelingen.