Aanbevelingen voor het optimaliseren van de kosten van onderdelen

Van toepassing op deze aanbeveling voor de controlelijst voor kostenoptimalisatie van Azure Well-Architected Framework:

CO:07 Kosten voor 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 de kosten van onderdelen 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 behandelt ook kostenoptimalisatie van omgevingen voor herstel na noodgevallen en hoe u kunt voorkomen dat niet-geoptimaliseerde onderdelen worden toegevoegd. De richtlijnen in dit artikel zijn van toepassing op bestaande workloads die zich niet in de ontwerpfase bevinden. Het negeren van reguliere optimalisatie van onderdelen kan leiden tot hoge kosten, resourceverspilling en inefficiënte workloads die zowel tijd als geld kosten.

Definities

Termijn Definitie
Toepassingsfunctie Een unieke mogelijkheid in de toepassingssoftware waarmee gebruikers specifieke taken kunnen uitvoeren of toegang hebben tot specifieke informatie.
Platformfunctie Een specifieke functionaliteit of mogelijkheid die door een platform wordt geleverd. Dit 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 mogelijk te maken.
Resource Eén entiteit of onderdeel dat u kunt maken, configureren en gebruiken binnen een cloudserviceprovider.

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 alle onderdelen efficiënt en kostenefficiënt gebruikt. Strategieën omvatten het verwijderen, wijzigen en vermijden van onderdelen waardoor u meer uitgeeft dan nodig is. Het optimalisatieproces voor onderdeelkosten zorgt ervoor dat u resources toewijst aan functies en onderdelen die de meeste waarde bieden, waardoor onnodige kosten worden vermeden.

Toepassingsfuncties optimaliseren

Het optimaliseren van toepassingsfuncties is het proces van het verwijderen, opnieuw investeren of geld verdienen met toepassingsfuncties op basis van waarde. Het zorgt ervoor dat u resources toewijst aan toepassingsfuncties die de meeste waarde bieden voor klanten. Door toepassingsfuncties te optimaliseren, kunt u voorkomen dat u investeert in functies die bijdragen aan technische schulden of die onvoldoende rendement op investeringen opleveren.

Waarde van toepassingsfunctie evalueren

Als u de waarde van een functie wilt bepalen, bekijkt u de effecten ervan op de algehele toepassing en de waarde die deze biedt voor de klanten. 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 is afgestemd op de strategische doelstellingen van het bedrijf. Overweeg hoe functies ondersteuning bieden voor het genereren van omzet, klanttevredenheid of concurrentievoordeel.

  • Effect op de gebruikerservaring: Bepaal het effect van de functie op het verbeteren van de gebruikerservaring en het verbeteren van de bruikbaarheid of productiviteit.

  • Differentiatie: Beoordeel of de functie een uniek verkoopargument of concurrentievoordeel biedt ten opzichte van andere toepassingen op de markt.

Kosten van toepassingsfuncties evalueren

Het is essentieel dat u inzicht hebt in de kosten die aan elke functie zijn gekoppeld voor een effectieve toewijzing en optimalisatie van resources. Houd rekening met verschillende aspecten bij het evalueren van de kosten, zoals:

  • Ontwikkelingsinspanning: Evalueer de tijd, resources en expertise die nodig zijn om de functie of omringende functies te ontwikkelen en te onderhouden. Te weinig gebruikte 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 de 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, waaronder 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 om de waarde van specifieke functies voor bedrijfsdoelstellingen te beoordelen. 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 hoeveel werk het kost om bepaalde functies te onderhouden. Moedig ze aan om te praten over functies die mogelijk meer problemen opleveren 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 bijvoorbeeld een lage vraag van de klant, hoge onderhoudskosten, complexiteit of redundantie die de moeite niet waard zijn om op te lossen. Maak een plan voor het verwijderen. Dit kan betekenen dat de code moet worden geherstructureert, afhankelijkheden worden bijgewerkt of dat de gebruikersinterface opnieuw moet worden georded.

    RisicopictogramRisico: u kunt per ongeluk functies verwijderen die essentieel zijn voor bepaalde gebruikers of scenario's en die een negatieve invloed kunnen hebben op de prestaties, bewerkingen en beveiliging van uw toepassing.

  • Opnieuw investeren: sommige toepassingsfuncties voegen mogelijk niet voldoende waarde toe in hun huidige staat, maar kunnen wel waarde toevoegen als u er opnieuw in investeert. Herinvestering betekent het herwerken of promoten van de toepassingsfunctie. 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 ontwikkelingsresources, afhankelijkheden en het mogelijke effect op de toepassing.

  • Inkomsten genereren: zet toepassingsfuncties om in een verkoopkans die inkomsten genereert via inkomsten genereren. Soms bieden functies waarde voor gebruikers, maar zijn ze de huidige investering niet waard. Verken de 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 gegaan en het optimaliseren van onderbenutte resources die de workload nodig heeft. Deze inspanning kan geld besparen, verspilling voorkomen en ervoor zorgen dat de workload alleen de resources gebruikt 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.
  • Proof of concept.
  • Snapshots.
  • Opslagaccounts.
  • Tijdelijke testomgevingen.
  • Tijdelijke sorteeromgevingen.

Als u ongebruikte resources in een workload wilt verwijderen, kunt u de volgende stappen overwegen:

  1. Inventariseren: voer een grondige inventarisatie uit van alle resources binnen de workload in verschillende omgevingen.

  2. Zwevende resources zoeken: Resources kunnen zwevend worden wanneer ze niet meer nodig zijn of wanneer de 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.

  3. Niet-actieve onderdelen verwijderen: Er zijn doorgaans kosten verbonden aan een geïmplementeerde resource. Zelfs als u met de resource kunt stoppen of opnieuw toewijzen, kunt u mogelijk blijven betalen voor de resource. Overweeg niet-actieve resources te verwijderen. Als u de gegevens nodig hebt, maakt u er eerst een back-up van en verwijdert u vervolgens de resource. U kunt de resource beter opnieuw implementeren en de gegevens herstellen dan de resource inactief te laten blijven.

Te weinig gebruikte resources optimaliseren. 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 onderbenutte resources te evalueren en te optimaliseren:

  1. Resources bewaken: gebruik hulpprogramma's om te controleren hoeveel CPU, geheugen en opslag u daadwerkelijk gebruikt. Kies het beste abonnement dat aan uw behoeften voldoet op basis van deze informatie.

  2. Gebruik analyseren: bekijk de gegevens om erachter te komen welke resources u niet gebruikt. Let op de resources die in de loop van de tijd een laag gebruik hebben of grote verschillen in gebruik tussen drukke en trage tijden.

  3. Juiste grootte: controleer of er te veel resources zijn toegewezen aan functies die niet in gebruik zijn. Als dat het zo is, past u de grootte aan zodat deze beter overeenkomt met wat u daadwerkelijk nodig hebt.

  4. 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 om te controleren of alles nog steeds werkt zoals het moet. Bewaak continu het resourcegebruik en pas de toewijzing van resources aan naarmate de werkbelasting in de loop van de tijd verandert. Controleer en optimaliseer regelmatig het resourcegebruik om kostenefficiëntie en prestatieoptimalisatie te behouden.

Resources voor herstel na noodgevallen optimaliseren. Bij het optimaliseren van omgevingen voor herstel na noodgevallen gaat het erom ervoor te zorgen dat de resources die zijn toegewezen voor herstel na noodgevallen efficiënt worden gebruikt. Een warme (actief-passieve) strategie voor herstel na noodgevallen is een veelvoorkomende bron van ondergebruik. In een strategie voor warm herstel na noodgevallen ontvangt de ene omgeving alle belasting, terwijl de andere omgeving inactief is totdat er een noodscenario is. Als u een omgeving voor herstel na noodgevallen wilt optimaliseren, moet 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 omgeving bedienen het verkeer gelijktijdig. Uw workload kan de belasting tussen deze omgevingen verdelen en in realtime reageren op de vraag. Door de belasting tussen twee actieve omgevingen te verdelen, kunt u goedkopere resources gebruiken, knelpunten met één punt verminderen en de capaciteit optimaal benutten. Dit kan leiden tot lagere kosten in termen van resourceverspilling of inactiviteit. Een dynamische benadering kan meer investeringen vergen in synchronisatie en het behoud van pariteit tussen de twee omgevingen.

  • Koude plannen: een model voor herstel na koude noodgevallen omvat een stand-byomgeving die inactief blijft totdat een noodgeval de noodzaak van failover activeert. Omdat de stand-byomgeving niet actief is, worden de kosten voor 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 gaat volgen.

  • Actief opnieuw implementeren: 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. Als er geen vooraf geïmplementeerde rekenresources zijn in de omgeving voor herstel na noodgevallen, bespaart u op de kosten die zijn gekoppeld aan het onderhouden van niet-actieve resources. U maakt alleen kosten tijdens de daadwerkelijke implementatie in een failoverscenario. Net als bij de koude aanpak kan dit model leiden tot langere hersteltijden, 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 uitgaven af te stemmen op de vereisten van de workload en onnodige kosten voor overbodige functies te voorkomen. Hier volgen enkele tips om de kosten van platformfuncties te optimaliseren:

  • Ken de mogelijkheden van de dingen die u aanschaft: voordat u kunt optimaliseren, hebt u een duidelijke inventarisatie nodig van de services en de bijbehorende functies op uw cloudplatforms. Krijg 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 abonnement met een lagere laag mogelijk voldoende.

  • Ongebruikte functies uitschakelen: identificeer en schakel platformfuncties uit 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 de workload niet nodig heeft.

  • Overbodige automatisering elimineren: evalueer uw automatiseringsprocessen en verwijder ongebruikte automatisering die mogelijk extra kosten met zich meebrengt.

  • Hulpprogrammaredundantie elimineren: 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 verspild geld te voorkomen en het meeste te halen uit wat u al hebt.

Niet-geoptimaliseerde onderdelen voorkomen

Het voorkomen van niet-geoptimaliseerde onderdelen gaat over het proactief garanderen van onderdelen die essentieel en geoptimaliseerd zijn voordat ze worden toegevoegd of gewijzigd. De beste manier om van afval af te komen, is om te beginnen te vermijden. Gebruik strategieën die onnodige uitgaven voorkomen door inefficiënties aan de basis aan te pakken, zodat een workload vanaf het begin kostenefficiënt wordt uitgevoerd. Overweeg de volgende strategieën om verspilling te voorkomen:

  • Zoek de hoofdoorzaak voordat u oplossingen wijzigt: voordat u een probleem oplost, moet u weten wat het probleem daadwerkelijk veroorzaakt. Als uw website bijvoorbeeld traag is, moet u niet onmiddellijk overschakelen naar een nieuw systeem. Zoek eerst uit waarom het traag is. Misschien komt u erachter dat het echte probleem iets anders is, zoals slechte databasequery's. Los het echte probleem op om tijd en geld te besparen.

  • Metagegevens toepassen: pas metagegevens toe om resources te organiseren en bij te houden. U kunt metagegevens gebruiken om resources te categoriseren en te groeperen, zodat u eenvoudiger zwevende resources kunt bijhouden, verwijderen en voorkomen. Maak een consistente strategie voor metagegevens voor alle resources. Overweeg eigenaren, de verwachte resourceduur (bijvoorbeeld sunset-30d) of andere tags toe te voegen.

  • Niet-standaardwijzigingen documenteer: documenteer alle wijzigingen die zijn aangebracht in uw infrastructuur of configuraties die buiten het normale controleproces van uw workload zijn 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 een probleem sorteren, maar vergeet het terug te schalen. Maak een lijst met niet-standaardwijzigingen en gebruik deze als herinnering om de wijzigingen terug te zetten wanneer ze niet meer nodig zijn.

  • Houd het eenvoudig: vereenvoudig uw infrastructuur en minimaliseer de 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 kosten om ongebruikte resources te identificeren en te elimineren. U kunt Advisor gebruiken om uw resourcegebruik te analyseren en suggesties te ontvangen over resources die u wilt verwijderen of omlaag 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 het gebruik en de efficiëntie. Het biedt een reeks aanbevelingen, waaronder kostenaanbeveling voor Azure Advisor. 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. Het afsluiten van resources helpt kosten te 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 te veel hoeft in te stellen. 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 herstel na noodgevallen.

Controlelijst voor kostenoptimalisatie

Raadpleeg de volledige set aanbevelingen.