Redigera

Dela 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

I det här exemplet hjälper arbetsbelastningen 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.

Kommentar

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 betyder 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 programdatakällorna 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 omfatta 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 behovsutformning i programmet eller för att initiera det fördefinierade miljölä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äpps- 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 programprestandahantering (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 programmets effektivitet.
  • Azure Table Storage är en tjänst som lagrar icke-relationsstrukturerade data, även kallade strukturerade NoSQL-data. Det ger 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 mellan 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å kostnaderna. 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 ge liv åt 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ö:

  • I stället för Power BI-instrumentpaneler använder du Azure Monitor-arbetsböcker eller Azure Managed Grafana-tjänster .
  • 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 ett 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.

Information om scenario

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 med få 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:

  • Koldioxidutsläpp från infrastruktur- och gränstjänster
  • Tid när användarna ansluter, eftersom elproduktionen och efterfrågan varierar med tiden
  • Andra speciella 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.

beskrivning 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 programmets 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 prognostisera 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 data som samlats in från Instrumentpanel för miljöpåverkan som utgångspunkt. SCI-baslinjeberäkningen är följande:

SCI = C * R

Komponenterna är:

  • SCI. Resultat av programvarans koldioxidintensitet.

  • C. Koldioxidutsläppen för programmet.

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

    Kommentar

    Det här scenariot tar inte hänsyn till andra utsläppskällor för programmet som är beroende av arkitekturen och gräns- 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 övervägd tidsperioden eller API-begäranden eller webbbegäranden. Med skalningsfaktorn kan poängen 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 numret 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 den koldioxid- och koldioxidproxyinformation som samlats 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 postsystemet, till exempel Azure Table Storage.

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

Data från rapporter:

  • Datum
  • Namn på resursgrupp
  • Koldioxidutsläpp från instrumentpanelen 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 informationen ger vägledning när du planerar för kostnad, prestanda och koldioxidoptimering.

Kommentar

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 sätt, till exempel via en anpassad Azure Monitor-arbetsbok eller en enkel Power BI-instrumentpanel. Mer information finns i Skapa KPI-instrumentpaneler (Custom Key Performance Indicator) 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 ska utlösas. Några exempel på dessa villkor är:

  • Energiproduktionen och efterfrågan är hög och energin är dyr att producera
  • Elektricitet är inte tillgängligt på grund av naturkatastrofer eller geopolitiska konflikter
  • Edge-infrastrukturen blir otillgänglig på grund av problem med resursöverförbrukning eller leveranskedja

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

Överväg att skapa en miljölägesversion av programmet. Eco-mode-versionen är en enklare, mindre, billigare, grönare version av det fullständiga programmet. Programmet återgår till dessa minimala funktioner om det finns koldioxidutsläppstoppar.

Överväg att hjälpa slutanvändarna att välja miljölägesversion. Ge en grön knapp för personer att deklarera 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 en möjlighet att driva kulturella förändringar 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 tar vår koldioxidpoäng till <Y>.
  • Lär dig mer om användarbeteendet och ändra ekolägesversionen för att återspegla deras val. Om någon till exempel bara använder 10 procent av programfunktionerna kan de vara en idealisk användare av den gröna versionen.
  • Helst med tiden optimeras den fullständiga versionen för utsläpp och versionerna konvergerar så småningom.

Att tänka på

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 dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Om du vill ha mer säkerhet använder du tjänstslutpunkter för Azure Virtual Network 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.

Kommentar

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 Azure-säkerhetsdokumentationen.

Kostnadsoptimering

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

Rapporterna Instrumentpanel för miljöpåverkan och Microsoft 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 valfri motsvarande tjänst som du redan har i programdistributionen. Följande resurser tillhandahåller prisinformation för komponenten:

Prestandaeffektivitet

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

Det primära syftet med den här arkitekturen är att tillhandahålla en hållbarhetspoäng för dina program med en 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 konsultation. 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 postsystem
  • Växla Azure Table Storage till ett mer skalbart datastrukturalternativ, till exempel Azure Cosmos DB

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudsakliga fö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 den koldioxidmedvetna SDK:en 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 för hållbarhetsmoln i Well Architected Framework finns i dokumentationen om hållbarhetsarbetsbelastning.

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