Rekommendationer för optimering av komponentkostnader

Gäller för den här rekommendationen om kostnadsoptimering i Azure Well-Architected Framework:

CO:07 Optimera komponentkostnader. Ta regelbundet bort eller optimera äldre, onödiga och underutnyttvända arbetsbelastningskomponenter, inklusive programfunktioner, plattformsfunktioner och resurser.

Den här guiden beskriver rekommendationerna för att optimera kostnader för arbetsbelastningskomponenter. Optimering av komponentkostnader syftar på processen att utvärdera och förbättra kostnadseffektiviteten för enskilda element i en arbetsbelastning. Den betonar kontinuerlig granskning och potentiell borttagning eller förbättring av inaktuella, onödiga eller sällan använda komponenter, till exempel programfunktioner, plattformsfunktioner och resurser. Den omfattar även kostnadsoptimering av haveriberedskapsmiljöer och hur du undviker att introducera icke-optimerade komponenter. Vägledningen i den här artikeln gäller för befintliga arbetsbelastningar som inte är i designfasen. Om du försummar regelbunden komponentoptimering kan det leda till uppblåsta kostnader, resursavfall och ineffektiva arbetsbelastningar som tömmer både tid och pengar.

Definitioner

Period Definition
Programfunktion En distinkt funktion i programprogramvaran som gör det möjligt för användare att utföra specifika uppgifter eller komma åt specifik information.
Plattformsfunktion En specifik funktion som tillhandahålls av en plattform. Det kan variera beroende på plattform, men i allmänhet är plattformsfunktioner utformade för att förbättra användarupplevelsen, förbättra produktiviteten eller aktivera specifika uppgifter eller åtgärder.
Resurs En enda entitet eller komponent som du kan skapa, konfigurera och använda inom en molntjänstleverantör.

Viktiga designstrategier

Optimering av arbetsbelastningskomponenter handlar om att förfina de olika elementen i en arbetsbelastning, inklusive programfunktioner, plattformsfunktioner och resurs. Målet är att säkerställa att arbetsbelastningen använder alla komponenter effektivt och kostnadseffektivt. Strategier omfattar att ta bort, ändra och undvika komponenter som gör att du spenderar mer än du behöver. Processen för komponentkostnadsoptimering säkerställer att du allokerar resurser till funktioner och komponenter som ger mest värde, vilket undviker onödiga utgifter.

Optimera programfunktioner

Optimering av programfunktioner är processen att antingen ta bort, återinvestera eller tjäna pengar på programfunktioner baserat på värde. Det säkerställer att du allokerar resurser till programfunktioner som ger mest värde till kunderna. Genom att optimera programfunktioner kan du undvika att investera i funktioner som bidrar till tekniska skulder eller inte ger tillräckligt med avkastning på investeringen.

Utvärdera programmets funktionsvärde

För att fastställa värdet för en funktion bör du överväga dess effekter på det övergripande programmet och det värde som den ger kunderna. Några faktorer att tänka på är:

  • Kundbehov: Utvärdera hur väl funktionen uppfyller kundernas behov och förväntningar. Kundfeedback, undersökningar och användningsdata kan vara värdefulla för att förstå det upplevda värdet.

  • Affärsmål: Utvärdera hur funktionen överensstämmer med verksamhetens strategiska mål. Överväg hur funktioner stöder intäktsgenerering, kundnöjdhet eller konkurrensfördelar.

  • Effekt på användarupplevelsen: Bestäm vilken effekt funktionen har på att förbättra användarupplevelsen och förbättra användbarheten eller produktiviteten.

  • Differentiering: Utvärdera om funktionen ger en unik försäljningsplats eller konkurrensfördel jämfört med andra program på marknaden.

Utvärdera programfunktionskostnaden

Det är viktigt att du förstår kostnaden för varje funktion för effektiv resursallokering och optimering. Överväg olika aspekter när du utvärderar kostnader, till exempel:

  • Utvecklingsarbete: Utvärdera den tid, de resurser och den expertis som krävs för att utveckla och underhålla funktionen eller omgivande funktioner. Underutnytttagna funktioner blir ofta en viktig källa till tekniska skulder.

  • Underhåll och support: Överväg de löpande kostnaderna för att underhålla och stödja funktionen, inklusive felkorrigeringar, säkerhetsuppdateringar och felsökning.

  • Infrastruktur- och resursanvändning: Utvärdera effekten av funktionen på infrastrukturkraven, inklusive serverresurser, lagring och bandbredd.

  • Integreringskomplexitet: Utvärdera komplexiteten och kostnaden för att integrera funktionen med andra system eller tjänster från tredje part.

  • Prestandaöverväganden: Utvärdera funktionens effekt på programmets prestanda, inklusive skalbarhet, svarstid och resursanvändning.

Granska programmets funktionsvärde med intressenter

Granska värdet av programfunktioner med intressenter genom att engagera nyckelpersoner, till exempel produktchefer, programvaruutvecklare och affärsanalytiker, för att utvärdera värdet av specifika funktioner för affärsmål. Det här samarbetet är viktigt för kostnadsoptimering eftersom det ger insikter om underhållsinsatser och identifierar funktioner som kan hindra produktiviteten eller förringa utvecklingen av nya värdefulla funktioner. Utvecklingsteamet kan ge dig viktig information om hur mycket arbete som krävs för att underhålla vissa funktioner. Uppmuntra dem att tala om funktioner som kan vara mer problem än de är värda, särskilt om dessa funktioner distraherar teamet från att skapa nya.

Fastställa funktionens framtid

Baserat på din analys och utvärdering avgör du framtiden för programfunktionerna. Ta bort, återinvestera eller tjäna pengar på programfunktioner som inte ger avkastning på investeringen:

  • Borttagning: Överväg den planerade livslängden för en programfunktion baserat på data. Orsaker till funktionsborttagning kan vara låg kundefterfrågan, höga underhållskostnader, komplexitet eller redundans som inte är värt att åtgärda. Skapa en plan för borttagningen, vilket kan innebära att koden omstruktureras, att beroenden uppdateras eller att användargränssnittet omorganiseras.

    RiskikonRisk: Du kan oavsiktligt ta bort funktioner som är viktiga för vissa användare eller scenarier och som kan påverka prestanda, åtgärder och säkerhet i ditt program negativt.

  • Återinvestera: Vissa programfunktioner kanske inte tillför tillräckligt med värde i sitt aktuella tillstånd, men kan lägga till värde om du återinvesterar i dem. Återinvestering innebär omarbetning eller befordran av programfunktionen. Prioritera de identifierade förbättringarna baserat på deras värde och genomförbarhet. Fastställ översikten och tidslinjen för implementeringen av ändringarna. Tänk på faktorer som utvecklingsresurser, beroenden och den potentiella effekten på programmet.

  • Tjäna pengar: Omvandla programfunktioner till en intäktsgenererande möjlighet via intäktsgenerering. Ibland ger funktioner värde för användare men är inte värda den aktuella investeringen. Utforska möjligheter att tjäna pengar på dessa funktioner, till exempel att erbjuda dem som separata betalda tillägg eller licensiera dem till andra företag.

Optimera arbetsbelastningsresurser

Optimering av arbetsbelastningsresurser innebär att ta bort alla resurser som inte används och optimera eventuella underutnyttjade resurser som arbetsbelastningen behöver. Det här arbetet kan spara pengar, undvika slöseri och se till att arbetsbelastningen endast använder de resurser som tillför värde.

Ta bort oanvända arbetsbelastningsresurser. Oanvända resurser är distribuerade tjänster som dina arbetsbelastnings- eller driftsprocesser inte använder. Dessa resurser kan vara inaktiva på lång sikt, överblivna eller bortglömda. De ger ingen avkastning på investeringen, och du bör ta bort dem. Vanliga orsaker till oanvända resurser är:

  • Varningar.
  • Demoversioner.
  • Miljöavställning.
  • Funktionsavstängning.
  • IP-adresser.
  • Nätverksbrandväggar.
  • Konceptbevis.
  • Ögonblicksbilder.
  • Lagringskonton.
  • Tillfälliga testmiljöer.
  • Tillfälliga sorteringsmiljöer.

Tänk på följande om du vill ta bort oanvända resurser i en arbetsbelastning:

  1. Gör en inventering: Gör en grundlig inventering av alla resurser i arbetsbelastningen i olika miljöer.

  2. Hitta överblivna resurser: Resurser kan bli överblivna när de inte längre behövs eller när deras överordnade resurser tas bort. Du kan till exempel ta bort en virtuell dator, men dess associerade lagringskonto tas inte bort. Granska din arbetsbelastning för att identifiera onödiga eller överblivna resurser.

  3. Ta bort inaktiva komponenter: Det finns vanligtvis en kostnad som är kopplad till en distribuerad resurs. Även om resursen gör att du kan stoppa eller omallokera kan du fortsätta att betala för resursen. Överväg att ta bort inaktiva resurser. Om du behöver data säkerhetskopierar du dem först och tar sedan bort resursen. Det är bättre att distribuera om resursen och återställa data än att låta resursen vara inaktiv.

Optimera underutnytttagna resurser. Underutnyttjade resurser representerar bortkastade utgifter när du betalar för resurskapacitet som inte används fullt ut. Identifiera och optimera dessa resurser för att minska kostnaderna och allokera resurser mer effektivt. Följ dessa steg för att utvärdera och optimera kostnaden för underutnytttagna resurser:

  1. Övervaka resurser: Använd verktyg för att övervaka hur mycket processor, minne och lagring du faktiskt använder. Välj den bästa planen som matchar dina behov baserat på den här informationen.

  2. Analysera användning: Titta på data för att ta reda på vilka resurser du inte använder. Var uppmärksam på de resurser som har låg användning över tid eller stora skillnader i användning mellan upptagna och långsamma tider.

  3. Höger storleksändring: Kontrollera om det finns för många resurser allokerade till funktioner som inte används. I så fall justerar du deras storlek så att den bättre matchar det du faktiskt behöver.

  4. Automatisk skalning: Använd automatisk skalning för att justera de resurser som du använder baserat på hur upptagen du är. Se till att du anger en maximal skalningsgräns för att undvika plötsliga toppar som kan vara kostsamma och onödiga.

När du har slutfört de här justeringarna testar du för att se till att allt fortfarande fungerar som det ska. Övervaka resursutnyttjandet kontinuerligt och justera resursallokeringen när arbetsbelastningens krav ändras över tid. Granska och optimera resursutnyttjandet regelbundet för att upprätthålla kostnadseffektivitet och prestandaoptimering.

Optimera resurser för haveriberedskap. Att optimera haveriberedskapsmiljöer handlar om att se till att de resurser som allokerats för haveriberedskap används effektivt. En varm (aktiv-passiv) haveriberedskapsstrategi är en vanlig källa till underutnyttjande. I en strategi för varm haveriberedskap får en miljö all belastning medan den andra miljön är inaktiv tills ett katastrofscenario inträffar. Om du vill optimera en haveriberedskapsmiljö bör du överväga hur en frekvent (aktiv-aktiv), kall (aktiv off) eller aktiv omdistribueringsmetod kan bidra till att undvika underutnyttade resurser. Här är en översikt över dessa tre metoder för haveriberedskap:

  • Frekventa planer: Både de primära och sekundära miljöerna hanterar trafik samtidigt. Din arbetsbelastning kan balansera belastningar mellan dessa miljöer och svara på krav i realtid. Genom att distribuera belastningen mellan två aktiva miljöer kan du använda billigare resurser, minska flaskhalsar med en punkt och utnyttja kapaciteter till fullo. Det kan leda till minskade kostnader när det gäller resursskräp eller tomgång. En frekvent metod kan kräva mer investeringar i synkronisering och upprätthållande av paritet mellan de två miljöerna.

  • Kalla planer: En modell för kall haveriberedskap omfattar en väntemiljö som förblir vilande tills en katastrof utlöser behovet av redundans. Eftersom väntelägesmiljön inte körs aktivt minimeras kostnaderna för beräkning, lagring och nätverksåtgärder. Dina utgifter handlar om att lagra säkerhetskopior, vm-avbildningar eller mallar. Redundansväxling i den kalla modellen kan ta längre tid eftersom resurser måste startas upp och data kan behöva återställas. Se till att återställningstiden överensstämmer med företagets mål för återställningstid (RTO) innan du genomför den här metoden.

  • Aktiv omdistribution: Den här strategin använder infrastruktur som kod. När en redundanshändelse inträffar distribuerar du den sekundära miljön med hjälp av fördefinierade mallar och skript. Utan fördistribuerade beräkningsresurser i haveriberedskapsmiljön sparar du på kostnaderna för att underhålla inaktiva resurser. Du debiteras endast kostnader under den faktiska distributionen i ett redundansscenario. Precis som med den kalla metoden kan den här modellen införa längre återställningstider, särskilt om infrastrukturens komplexitet är hög. Du bör testa och mäta återställningstiden för att säkerställa att den uppfyller återställningstidsmålet.

Optimera plattformsfunktioner

Att optimera plattformsfunktioner innebär att eliminera eller uppdatera plattformsfunktioner, till exempel prestandanivåer och konfigurationsinställningar, för att optimera kostnaderna. Det bidrar till att anpassa utgifterna till arbetsbelastningens krav och undviker onödiga utgifter för onödiga funktioner. Här följer några tips för att optimera kostnaden för plattformsfunktioner:

  • Känna till funktionerna i de saker du köper: Innan du kan optimera behöver du en tydlig inventering av tjänsterna och deras funktioner på dina molnplattformar. Förstå funktionerna i plattformarna eller tjänsterna i din arbetsbelastning. Var medveten om den specifika nivå du valde och vilka funktioner varje nivå erbjuder. Om du till exempel inte behöver automatisk skalning eller avancerade nätverk kan det räcka med en plan på lägre nivå.

  • Inaktivera oanvända funktioner: Identifiera och inaktivera plattformsfunktioner som kostar pengar. Du kan ha ögonblicksbilder av onödig lagring, oanvända diskar, redundanta säkerhetsfunktioner eller underutnyttjade nätverksfunktioner.

  • Använd rätt versioner: Nyare versioner av en tjänst kan ge liknande prestanda för samma pris. Till exempel kan en virtuell dator med nyare maskinvara ofta ge samma prestanda för mindre pengar.

  • Använd rätt konfigurationer: Du kanske betalar för mer tillgänglighet eller prestanda än du behöver. Eliminera tillgänglighet eller prestandagarantier som arbetsbelastningen inte behöver.

  • Eliminera onödig automatisering: Utvärdera dina automatiseringsprocesser och eliminera all oanvänd automatisering som kan medföra extra kostnader.

  • Eliminera verktygsredundans: Ta bort verktyg som du inte behöver eller verktyg som tillhandahåller samma funktion. Utvärdera eventuell redundans i de verktyg som du använder för att skapa programvara, skriva kod, säkerhet och övervakning. Om du till exempel använder GitHub Actions för att skapa din programvara behöver du inte köpa något annat verktyg som skapar programvara. Innan du köper funktioner eller verktyg kontrollerar du om det redan finns ett verktyg i din arbetsbelastning som kan utföra jobbet. Eliminera verktygsredundans för att undvika bortkastade pengar och få ut det mesta av det du redan har.

Förhindra ooptimerade komponenter

Att förhindra ooptimerade komponenter handlar om att proaktivt se till att komponenter är viktiga och optimerade innan du lägger till eller ändrar. Det bästa sättet att bli av med avfall är att undvika det i första hand. Använd strategier som förhindrar onödiga utgifter genom att åtgärda ineffektivitet i roten, vilket säkerställer att en arbetsbelastning körs kostnadseffektivt redan från början. Tänk på följande strategier för att förhindra slöseri:

  • Hitta rotorsaken innan du ändrar lösningar: Kontrollera att du vet vad som orsakar problemet innan du åtgärdar ett problem. Om webbplatsen till exempel är långsam växlar du inte omedelbart till ett nytt system. Börja med att ta reda på varför det är långsamt. Du kan få reda på att det verkliga problemet är något annat, till exempel felaktiga databasfrågor. Åtgärda det verkliga problemet för att spara tid och pengar.

  • Tillämpa metadata: Använd metadata för att organisera och spåra resurser. Du kan använda metadata för att kategorisera och gruppera resurser, vilket gör det enklare att spåra, ta bort och undvika överblivna resurser. Skapa en konsekvent metadatastrategi för resurser. Överväg att lägga till ägare, den förväntade resursvaraktigheten (till exempel sunset-30d) eller andra taggar.

  • Dokumentera icke-standardändringar: Dokumentera eventuella ändringar som görs i infrastrukturen eller konfigurationerna som utförs utanför den normala kontrollprocessen för din arbetsbelastning för att minska oväntade kostnader. Du kan till exempel öka en resurs skalningskapacitet (upp eller ut) för att möta en kortsiktig efterfrågan eller sortera ett problem men glömma att skala ned den igen. Gör en lista över icke-standardändringar och använd den som en påminnelse för att återställa ändringarna när de inte längre behövs.

  • Håll det enkelt: Förenkla infrastrukturen och minimera komplexiteten för att minska kostnaderna. Använd endast nödvändiga resurser och tjänster som uppfyller dina krav.

Azure-underlättande

Optimera programfunktioner: Du kan använda Azure Monitor och Application Insights för att övervaka användningen av ditt program och identifiera områden som används eller inte används. Baserat på de insikter som samlas in kan du fatta välgrundade beslut för att ta bort eller optimera oanvända eller underutnyttjade funktioner.

Optimera arbetsbelastningsresurser och plattformsfunktioner: Azure Advisor tillhandahåller kostnadsrekommendationer som ger rekommendationer för att identifiera och eliminera oanvända resurser. Du kan använda Advisor för att analysera resursanvändningen och få förslag på resurser för att ta bort eller skala ned. Arbetsboken Kostnadsoptimering i Azure Advisor fungerar som en central hubb för några av de vanligaste verktygen som kan hjälpa dig att driva användnings- och effektivitetsmål. Den innehåller en rad rekommendationer, inklusive kostnadsrekommendationer för Azure Advisor. Det hjälper också till att identifiera inaktiva resurser och hantera felaktigt frigjorda virtuella datorer.

Azure Monitor stöder arbetsböcker. Med Azure Monitor-arbetsböcker kan du hitta eller skapa en arbetsbok som hittar och rapporterar överblivna resurser i ett definierat omfång. Du kan använda Azure Automation för att stänga av virtuella datorer under perioder av inaktivitet. Resursavstängningar minskar kostnaderna genom att minimera användningen av inaktiva resurser.

Du kan använda funktionen autoskalning i Azure för att automatiskt skala ditt program baserat på fördefinierade villkor, så att du inte behöver överetablera kapaciteten. Automatisk skalning kan hjälpa dig att allokera resurser effektivt och kostnadseffektivt.

Ur ett designperspektiv kan Azure-lastbalanserare distribuera belastningar mellan tillgänglighetszoner och regioner. Dessa lastbalanserare kan hjälpa till att eliminera inaktiva resurser, till exempel i haveriberedskapsmetoder.

Checklista för kostnadsoptimering

Se den fullständiga uppsättningen rekommendationer.