Redigera

Share via


Mäta azure-appens hållbarhet med hjälp av SCI-poängen

Azure Monitor
Azure Automation
Azure Logic Apps
Azure Table Storage
Power BI

Den här exempelarbetsbelastningen hjälper dig att skapa en hållbarhetsmodell baserat på tillgängliga proxyservrar. Den här modellen gör det möjligt att bedöma ett programs koldioxideffektivitet. Den här SCI-poängen (Software Carbon Intensity) ger en baslinje för att mäta ändringar i ett programs koldioxidutdata.

Anteckning

Andra växthusgaser förutom koldioxid har olika effekter på miljön. Till exempel har ett ton metan samma uppvärmningseffekt som 80 ton koldioxid. Enligt konventionen normaliserar den här artikeln allt till co2-motsvarande mått. Hänvisningar till kol innebär alltid co2-motsvarigheten.

Arkitektur

Diagram över hur du skapar en hållbarhetsmodell baserat på tillgängliga proxyservrar som bedömer ett programs koldioxidpåverkan.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

  1. Konfigurera de programdatakällor som ska användas för att beräkna SCI-poängen.
  2. Spara data i Azure Table Storage på ett Azure Storage-konto.
  3. Använd händelsehanterare för att beräkna SCI-poängen. Händelsehanterare kan innehålla Azure Functions, Azure Logic Apps och Azure Blob Storage. Poängen är mängden koldioxid som genereras i gram per enhet, där enheten refererar till programmets skalningsfaktor eller en uppskattning av den med hjälp av proxyservrar.
  4. Använd Azure Functions, Logic Apps och Automation Runbooks för att utlösa efterfrågeutformning i programmet eller för att initiera det fördefinierade ekoläget för programmet.
  5. Använd Power BI för rapporter och visualisering av poängen över tid.

Komponenter

  • Instrumentpanel för miljöpåverkan för Azure hjälper dig att mäta dina molnbaserade utsläpp och koldioxidutsläppspotential. Den spårar direkta och indirekta utsläpp av växthusgaser relaterade till molnanvändning.
  • Application Insights är ett tillägg till Azure Monitor som tillhandahåller övervakning av programprestanda (APM). Application Insights hjälper dig att förstå hur personer använder ditt program. Använd den här kunskapen för att förbättra programeffektiviteten.
  • Azure Table Storage är en tjänst som lagrar icke-relationella strukturerade data, även kallade strukturerade NoSQL-data. Den tillhandahåller ett nyckel-/attributarkiv med en schemalös design. För många typer av program är åtkomsten till Table Storage-data snabb och kostnadseffektiv. Table Storage kostar vanligtvis mindre än traditionell SQL för liknande datavolymer.
  • Azure Logic Apps är en plattform där du kan skapa och köra automatiserade arbetsflöden med lite eller ingen kod. Genom att använda den visuella designern och välja från fördefinierade åtgärder skapar du ett arbetsflöde som integrerar och hanterar proxykällor, datalagring och effektivitetsberäkningssystem.
  • Azure Functions är en serverlös lösning som gör att du kan skriva mindre kod, underhålla mindre infrastruktur och spara på kostnader. Molninfrastrukturen tillhandahåller alla aktuella resurser som behövs för att hålla dina program igång.
  • Power BI kan omvandla data till analyser och rapporter som ger insikter i realtid. Oavsett om dina data är molnbaserade eller lokala har Azure och Power BI integrering och anslutning för att få liv i visualiseringar och analyser.

Alternativ

Du kan ersätta De Azure-tjänster som används i det här dokumentet med liknande tjänster. Om du vill göra beräkningen med minsta möjliga effekt på infrastrukturen och öka densiteten och användningen av befintliga resurser använder du Azure-tjänster eller -verktyg som redan har distribuerats i din miljö:

  • Använd Azure Monitor-arbetsböcker eller Azure Managed Grafana-tjänster i stället för Power BI-instrumentpaneler.
  • För Application Insights ersätter du ett annat APM-verktyg, till exempel Elasticsearch eller Open APM.
  • Du kan spara datatabeller med hjälp av ett annat system med poster, till exempel MySQL eller MariaDB.
  • Om du har en Azure Functions eller Logic Apps-program som körs bör du överväga att starta beräkningen regelbundet från befintliga distributioner.
  • Om programresurserna distribueras över flera resursgrupper använder du taggar för att korrelera kostnadsdata och beräkna mängden koldioxid som programmet genererar.

Scenarioinformation

I de här avsnitten beskrivs den information som krävs för att beräkna en baslinje för att mäta ändringar i koldioxidutdata.

Datakällor

Försök att skapa en proxyekvation som har några variabler. Välj proxymått som representerar programmets beteende och prestanda. I det här exemplet används följande mått:

  • Koldioxidutsläppen från infrastrukturen från Instrumentpanel för miljöpåverkan för Azure
  • Kostnaden för infrastrukturen, mätt i dagliga eller månatliga utgifter per resursgrupp, från Microsoft Cost Management
  • Prestanda- och skalningsmått för programmet från Application Insights:
    • Antalet användare, API-anrop eller serverbegäranden som är anslutna till programmet
    • CPU-användning
    • Minnesanvändning
    • Svarstid för att skicka eller ta emot

En självstudiekurs om hur du konfigurerar Application Insights för måtten finns i Application Insights SDK för ASP.NET Core-program.

Du kan lägga till fler variabler i ekvationen, till exempel:

  • infrastruktur och gränstjänster koldioxidutsläpp
  • Tid när användarna ansluter, eftersom elproduktionen och efterfrågan varierar med tiden
  • Andra märkliga mått för programmet som kan förklara hur dess prestanda ändras över tid

Att skapa den här ekvationen till en poäng som också kan återspegla antalet användare representerar den närmaste uppskattningen av en koldioxidpoäng. Det här värdet är riktmärket för ändringar och förbättringar av programmets hållbarhet.

Ett annat övervägande för programprestanda är kostnaden. I de flesta fall finns det en direkt korrelation mellan prestandaeffektivitet och kostnad och koldioxidbesparingar.

Description Slutsats
Prestandan är högre, men kostnaderna är desamma Programmet är optimerat och sänkta koldioxidutsläpp
Kostnaderna är lägre, men prestandan är densamma Programmet är optimerat och sänkta koldioxidutsläpp
Prestanda och kostnader ökar Programmet är inte optimerat och ökade koldioxidutsläpp
Kostnaderna ökar, men prestandan är lägre eller lika med Programmet är inte optimerat och ökade koldioxidutsläpp, eller så är energikostnaden högre, vilket också orsakar högre koldioxidutsläpp

Den här korrelationen mellan program-SCI-poäng, kostnad och prestanda är unik för varje program. Det beror på många faktorer. Genom att samla in data för dessa tre variabler kan du skapa en algoritm för att göra prognoser för deras variationer. SCI hjälper dig att fatta välgrundade beslut om programarkitekturen och -mönstren.

Beräkningar

I det här scenariot bearbetar du de data som samlas in från Instrumentpanel för miljöpåverkan som utgångspunkt. Beräkningen av SCI-baslinjen är följande:

SCI = C * R

Komponenterna är:

  • SCI. Resultat av programvarans koldioxidintensitet.

  • C. Programmets koldioxidutsläpp.

    Det här värdet beror på hur programmet distribueras i Azure. Om alla programresurser till exempel finns i en enda resursgrupp skulle koldioxidutsläppen för den här resursgruppen vara variabeln C .

    Anteckning

    Det här scenariot tar inte hänsyn till andra utsläppskällor för programmet som är beroende av arkitekturen, gränsenheten eller användarbeteendet. Dessa överväganden är nästa steg när du använder koldioxidproxy.

  • R. Skalningsfaktorn för programmet.

    Det här värdet kan vara antalet genomsnittliga samtidiga användare, för den tidsperiod som anses vara aktuell, eller API-begäranden eller webbbegäranden. Skalningsfaktorn gör att poängen kan ta hänsyn till den övergripande effekten av användningen av programmet, i stället för bara dess distributionsfotavtryck.

Tidsfönstret är en annan viktig aspekt av den här beräkningen. Koldioxidutsläppen varierar för alla energiförbrukande enheter eller system, eftersom energinätet kan ha förnybara eller alternativa energikällor vid vissa tillfällen men inte på andra. Till exempel är solenergi variabel. För att vara så exakt som möjligt börjar du med kortast möjliga tidsram, till exempel en daglig beräkning eller timberäkning.

Instrumentpanel för miljöpåverkan tillhandahåller månatlig koldioxidinformation baserat på tjänsterna i en prenumeration. Använd följande ekvation för att hämta det här talet för en enskild resursgrupp:

Carbon (res-group) = (Carbon(subscription) * Cost(res-group)) / Cost(subscription)

Lagra den månatliga koldioxidinformationen för resursgruppen tillsammans med resten av data, enligt beskrivningen i följande avsnitt.

Datalagring

Lagra koldioxid- och koldioxidproxyinformationen som samlades in i föregående avsnitt. Exportera informationen till instrumentpaneler eller rapporter så att du kan visualisera koldioxidpoängen över tid och göra välgrundade val. Av hållbarhetsskäl och i enlighet med bästa praxis i Well Architected Framework använder du det minsta fungerande systemet för arkivhandling, till exempel Azure Table Storage.

Tabeller som beskriver insamlade data använder data som i följande exempel:

Data från rapporter:

  • Date
  • Namn på resursgrupp
  • Koldioxidutsläpp från instrumentpanel C
  • Kostnad

Data från APM:

  • Processor
  • Minne
  • Svarstidsförhållande (skicka/ta emot) Skalningsfaktor R

Beräkningar: SCI

Mer information finns i:

Datakorrelationer

Med data om programmets koldioxid, prestanda och kostnad kan du skapa en korrelationsalgoritm som är specifik för ditt program. Den här informationen ger vägledning när du planerar för kostnads-, prestanda- och koldioxidoptimering.

Anteckning

Ekvationer med kostnader som rabatter, till exempel Azure-reservationer eller kostnadsbesparingsplaner, skapar avvikelser i korrelationsalgoritmen.

Mer information om valet av algoritm finns i Så här väljer du algoritmer för Azure Machine Learning.

Datavisning

Du kan visa data och beräkningar på flera olika sätt, till exempel via en anpassad Azure Monitor-arbetsbok eller en enkel Power BI-instrumentpanel. Mer information finns i Skapa anpassade KPI-instrumentpaneler med Application Insights och Skapa en Power BI-instrumentpanel från en rapport.

Utlösare för SCI-poängåtgärd

När du har bedömt koldioxideffekten för ett program med hjälp av proxyservrar är nästa steg att definiera vilka åtgärder som inte är ogynnsam i koldioxidpoängen som ska utlösas. Några exempel på dessa villkor är:

  • Energiproduktionen och efterfrågan är hög och energi är dyr att producera
  • El är inte tillgänglig på grund av naturkatastrofer eller geopolitiska konflikter
  • Edge-infrastrukturen blir otillgänglig på grund av överförbrukning av resurser eller problem med leveranskedjan

När du har identifierat de felpunkter som kan påverka programmet bestämmer du vilka åtgärder som ska vidtas för att göra programmet motståndskraftigt mot koltoppar.

Överväg att skapa en miljölägesversion av programmet. Ekolägesversionen är en enklare, mindre, billigare och grönare version av det fullständiga programmet. Programmet återgår till dessa minimala funktioner om det finns toppar i koldioxidutsläppen.

Överväg att hjälpa slutanvändarna att välja ekolägesversion. Ange en grön knapp för att förklara att de är OK med ett smalare gränssnitt, färre grafik och begränsade funktioner i utbyte mot att minska koldioxidutsläppen. Att involvera användare ger möjlighet att driva kulturell förändring tillsammans med tekniska förändringar:

  • Ange effekten av det här valet: Genom att använda den gröna versionen sparar <du X> mängd koldioxid eller hämtar vår koldioxidpoäng till <Y>.
  • Lär dig mer om användarbeteendet och ändra ekolägesversionen så att den återspeglar deras val. Om någon till exempel bara använder 10 procent av programfunktionerna kan de vara en perfekt användare av den gröna versionen.
  • Vi rekommenderar att den fullständiga versionen med tiden optimeras för utsläpp och att versionerna slutligen konvergeras.

Överväganden

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Om du vill ha mer säkerhet använder du Azure Virtual Network-tjänstslutpunkter för att skydda Azure-tjänstresurser till endast ditt virtuella nätverk. Den här metoden stänger offentlig Internetåtkomst till dessa resurser och tillåter endast trafik från ditt virtuella nätverk.

Med den här metoden skapar du ett virtuellt nätverk i Azure och skapar sedan privata tjänstslutpunkter för Azure-tjänster. Dessa tjänster begränsas sedan till trafik från det virtuella nätverket. Du kan också nå tjänsterna från ditt lokala nätverk via en gateway.

Anteckning

Om du vill flytta data från en lokal plats till Azure Storage måste du tillåta offentliga IP-adresser från dina lokala datorer eller använda Azure ExpressRoute. Mer information finns i Distribuera dedikerade Azure-tjänster till virtuella nätverk.

Allmän vägledning om hur du utformar säkra lösningar finns i dokumentationen om Azure-säkerhet.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga kostnader och förbättra driftseffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Rapporterna Instrumentpanel för miljöpåverkan och Azure Cost Management är kostnadsfria. Det här exemplet är avsiktligt minimalt för att spara på kostnader och koldioxidutsläpp. Du kan distribuera den här arkitekturen med hjälp av flera alternativa Azure-tjänster.

Använd en motsvarande tjänst som du redan har i programdistributionen. Följande resurser tillhandahåller information om komponentpriser:

Prestandaeffektivitet

Prestandaeffektivitet handlar om att effektivt skala arbetsbelastningen baserat på användarnas behov. Mer information finns i Översikt över grundpelare för prestandaeffektivitet.

Det huvudsakliga syftet med den här arkitekturen är att ge dina program en hållbarhetspoäng med minimal effekt på kostnaden och själva koldioxiden. De flesta komponenterna är PaaS-tjänster (plattform som en tjänst) och serverlösa Azure-tjänster som kan skalas oberoende baserat på användning och trafik.

Instrumentpanelen och lagringsgränssnittet i det här exemplet är inte lämpliga för tung användning och samråd. Om du planerar att tillhandahålla den här lösningen till många användare bör du överväga följande alternativ:

  • Frikoppla extraherade data genom att transformera dem och lagra dem i ett annat registersystem
  • Växla Azure Table Storage till ett mer skalbart alternativ för datastruktur, till exempel Azure Cosmos DB

Deltagare

Den här artikeln underhålls av Microsoft. Den skrevs ursprungligen av följande deltagare.

Huvudförfattare:

Annan deltagare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg

Detta arbete är i linje med principerna och metodiken i Green Software Foundation.

Nästa steg för att skapa ett grönare program är att bädda in det koldioxidmedvetna SDK:et i ditt program. Du kan automatisera utlösare i realtid när du uppfyller specifika koldioxidförhållanden. Mer information finns i Green Software Foundation Carbon Aware SDK.

Vägledning för arbetsbelastningar i hållbarhetsmolnet i Well Architected Framework finns i dokumentationen om hållbarhetsarbetsbelastningar.

Mer information om hållbarhet finns i följande artiklar: