Share via


Programdesign för hållbara arbetsbelastningar i Azure

När du skapar nya eller uppdaterar befintliga program är det viktigt att tänka på hur lösningen kommer att påverka klimatet och om det finns sätt att förbättra och optimera. Lär dig mer om överväganden och rekommendationer för att optimera din kod och dina program för en mer hållbar programdesign.

Viktigt

Den här artikeln är en del av serien med hållbara arbetsbelastningar i Azure Well-Architected . Om du inte är bekant med den här serien rekommenderar vi att du börjar med vad som är en hållbar arbetsbelastning?

Kodeffektivitet

Kraven på program kan variera och det är viktigt att överväga sätt att stabilisera användningen för att förhindra över- eller underutnyttjande av resurser, vilket kan leda till onödiga energiutsläpp.

Utvärdera flytt av monoliter till en mikrotjänstarkitektur

Monolitiska program skalas vanligtvis som en enhet, vilket ger lite utrymme för att endast skala de enskilda komponenter som kan behöva den.

Green Software Foundation-anpassning: Energieffektivitet, Maskinvarueffektivitet

Rekommendation:

  • Utvärdera vägledningen för mikrotjänstarkitekturen .
  • En mikrotjänstarkitektur möjliggör skalning av endast nödvändiga komponenter under hög belastning. se till att inaktiva komponenter skalas ned eller in. Dessutom kan det minska de omkostnader och resurser som krävs för att distribuera monolitiska program.
  • Överväg den här kompromissen: Om du minskar de beräkningsresurser som krävs kan du öka mängden trafik i nätverket, och programmets komplexitet kan öka avsevärt.
  • Överväg den här andra kompromissen: Att flytta till mikrotjänster kan resultera i extra distributionskostnader med många likheter i distributionspipelines. Överväg noggrant de distributionsresurser som krävs för monolitiska arkitekturer jämfört med mikrotjänstarkitekturer.
  • Läs även om hur du använder monolitiska program i containrar.

Förbättra API-effektivitet

Många moderna molnprogram är utformade för att transact många meddelanden mellan tjänster och komponenter asynkront. Överväg det format som används för att koda nyttolastdata. Hur mycket information behöver ditt program för att kommunicera och finns det utrymme för att minska chattigheten?

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

Se till att bakåtkompatibel programvara är kompatibel för att säkerställa att den fungerar på äldre maskinvara

Överväg hur program återger information. Behöver programmet kritiskt hantera allt i högsta kvalitet, vilket resulterar i högre bandbredd och bearbetning? Finns det utrymme för att minska kvaliteten på komponenterna i användargränssnittet för att uppnå hållbarhetsmål bättre?

Green Software Foundation-anpassning: Maskinvarueffektivitet

Rekommendation:

  • Stöd för fler slutanvändares konsumentenheter, till exempel äldre webbläsare och operativsystem. Den här bakåtkompatibiliteten förbättrar maskinvarueffektiviteten genom att återanvända befintlig maskinvara i stället för att kräva en maskinvaruuppgradering för att lösningen ska fungera.
  • Överväg den här kompromissen: Om de senaste programuppdateringarna har betydande prestandaförbättringar kanske det inte är mer effektivt att använda äldre programvaruversioner.

Utnyttja molnbaserade designmönster

Att lära sig mer om molnbaserade designmönster är användbart för att skapa program, oavsett om de finns i Azure eller körs någon annanstans. Om du optimerar prestanda och kostnader för ditt molnprogram minskar även dess resursutnyttjande, därav dess koldioxidutsläpp.

Green Software Foundation-anpassning: Energieffektivitet, Maskinvarueffektivitet

Rekommendation:

Överväg att använda kretsbrytarmönster

Överväg att utvärdera och förhindra program från att utföra åtgärder som sannolikt kommer att misslyckas. Upprepade fel kan leda till omkostnader och onödig bearbetning som du kan undvika med rätt designmönster.

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

  • En kretsbrytare kan fungera som proxy för åtgärder som kan misslyckas och bör övervaka antalet nyligen inträffade fel och använda den informationen för att avgöra om den ska fortsätta.
  • Studera kretsbrytarmönstret och fundera sedan över hur du kan implementera kretsbrytarmönstren i dina program.
  • Överväg att använda Azure Monitor för att övervaka fel och konfigurera aviseringar.

Optimera koden för effektiv resursanvändning

Program som distribueras med ineffektiv kod kan leda till en inneboende inverkan på hållbarheten.

Green Software Foundation-anpassning: Energieffektivitet, Maskinvarueffektivitet

Rekommendation:

  • Minska CPU-cyklerna och antalet resurser som du behöver för ditt program.
  • Använd optimerade och effektiva algoritmer och designmönster.
  • Överväg principen Upprepa inte dig själv (DRY).

Optimera för asynkrona åtkomstmönster

Kraven på program kan variera och det är viktigt att överväga sätt att stabilisera användningen för att förhindra över- eller underutnyttjande av resurser, vilket kan leda till onödiga energiutsläpp.

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

  • Kö- och buffertbegäranden som inte kräver omedelbar bearbetning bearbetas sedan i batch. Genom att utforma dina program på det här sättet får du ett stabilt utnyttjande och bidrar till att förenkla förbrukningen för att undvika onödiga begäranden.
  • Läs mer om att optimera för asynkrona åtkomstmönster.

Utvärdera serversidan jämfört med återgivning på klientsidan

Fastställ om du vill rendera på serversidan eller klientsidan när du skapar program med ett användargränssnitt.

Green Software Foundation-anpassning: Energieffektivitet, Maskinvarueffektivitet

Rekommendation:

  • Överväg dessa fördelar med återgivning på serversidan:

    • När serverns kraft kommer från mindre förorenande alternativ än klientens nationella inställningar.
    • När maskinvaran på servern har bättre förhållanden för bearbetning och energi.
    • Kan använda centraliserad cachelagring för att minska flera onödiga återgivningar.
    • Det kan vara särskilt viktigt att minska antalet rundresor från webbläsare till server när klientens enhet har en förlustfri länk.
    • När klientenheterna är äldre och har långsammare processorer. Användarna behöver inte uppgradera sina enheter för att stödja en modern webbläsare.
  • Överväg dessa fördelar med återgivning på klientsidan:

    • När slutanvändarenheterna är lämpligare överför du ansvaret för återgivningen till klienterna.
    • Det är mer effektivt att bara återge det som behövs och på begäran, i stället för att återge allt minst en gång.
    • Det finns inget behov av en server eftersom du kan förlita dig på statisk lagring.
    • Cachelagring av webbläsare används på klienterna.

Var medveten om UX-design för hållbarhet

Överväg hur UX-designen för en arbetsbelastning påverkar hållbarheten och avgöra vilka alternativ som finns för att förbättra energieffektiviteten och minska onödig nätverksbelastning, databehandling och beräkningsresurser.

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

  • Överväg att minska antalet komponenter som ska läsas in och återges på sidor.
  • Avgör om programmet kan rendera bilder och videor med lägre upplösning.
    • Rendera inte fullstora bilder som miniatyrbilder där webbläsaren gör storleksändringen.
    • Om du använder fullstora bilder som miniatyrbilder eller storleksändringsbilder överförs mer data, onödig nätverkstrafik och ytterligare processoranvändning på klientsidan på grund av storleksändring och förrendering av bilder.
  • Att se till att det inte finns några oanvända sidor hjälper till att minimera UX-designen.
  • Överväg att söka och hitta. Om du gör det enklare för användarna att hitta det de letar efter kan du minska mängden data som lagras och hämtas.
  • Överväg att tillhandahålla ett enklare användargränssnitt, använda färre resurser och med lägre inverkan på hållbarheten och ge användarna ett välgrundat val.
  • Spara energi genom att erbjuda dina appar och webbplatser i mörkt läge med mörka bakgrunder.
  • Välj att använda systemteckensnitt när det är möjligt för att undvika att tvinga klienter att ladda ned ytterligare teckensnitt, vilket orsakar mer nätverksbelastning.

Uppdatera äldre kod

Överväg att uppgradera eller ta bort äldre kod om den inte körs i modern molninfrastruktur eller med de senaste uppdateringarna.

Green Software Foundation-anpassning: Maskinvarueffektivitet

Rekommendation:

  • Identifiera ineffektiv äldre kod som passar för modernisering.
  • Kontrollera om det finns alternativ för att gå över till serverlös eller något av de optimerade PaaS-alternativen.
  • Överväg den här kompromissen: Uppdatering av gammal kod som kan bli inaktuell kan förbruka värdefull tid.

Nästa steg

Granska designöverväganden för programplattformen.