Bewerken

Delen via


Duurzaamheid van Azure-apps meten met behulp van de SCI-score

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

De oplossing die in dit artikel wordt beschreven, kan u helpen bij het maken van een duurzaamheidsmodel voor toepassingen die worden gehost in Azure. Het model maakt gebruik van proxy's waarmee u in de loop van de tijd de koolstofimpact en efficiëntie van een toepassing kunt beoordelen. De score staat bekend als de SCI-score (Software Carbon Intensity). Het biedt een basislijn voor het meten van wijzigingen in de koolstofuitvoer van een toepassing.

Architectuur

Diagram van een duurzaamheidsmodel dat de koolstofimpact van een toepassing beoordeelt.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

  1. Configureer toepassingsgegevensbronnen die u gaat gebruiken om uw SCI-score te berekenen. De gegevens kunnen de emissiemetingen zijn die worden geleverd door de blade Koolstofoptimalisatie in Azure Portal, of ze kunnen proxymetingen zijn van niet-Microsoft-bronnen of -systemen.
  2. Gegevens over koolstofuitgifte exporteren naar uw data lake.
  3. Gebruik gebeurtenis-handlers zoals Azure Functions of Azure Logic Apps om de SCI-score te berekenen. De uitvoer is de hoeveelheid koolstof die per eenheid wordt uitgezonden, waarbij de eenheid verwijst naar de schaalfactor van de toepassing of een benadering ervan die is gebaseerd op proxy's.
  4. Gebruik technologieën zoals Azure Functions, Logic Apps of Azure Automation-runbooks om de vraagvorming op de toepassing te activeren of om de vooraf gedefinieerde ecomodus van de toepassing te initiëren.
  5. Gebruik Power BI om de score en de variatie ervan in de loop van de tijd te rapporteren en te visualiseren.

Onderdelen

  • De blade Koolstofoptimalisatie in Azure Portal biedt koolstofemissiemetingen van Azure-workloads op resourcegroepniveau.
  • De Cloud for Sustainability API biedt de onderliggende gegevens voor koolstofoptimalisatie. U kunt deze gebruiken om informatie op te halen over de emissies van uw abonnement.
  • Application Insights is een functie van Azure Monitor die application performance management (APM) biedt. Het kan u helpen krachtige inzichten te krijgen in hoe mensen uw app gebruiken. U kunt deze kennis gebruiken om gegevensgestuurde beslissingen te nemen over het verbeteren van de efficiëntie van uw toepassing.
  • Azure Blob Storage slaat de emissie-informatie op van Azure Carbon Optimization, van aangepaste berekeningen of van andere proxy's voor emissies.
  • Azure Data Lake is een gecentraliseerde opslagplaats waarmee grote hoeveelheden gegevens in de oorspronkelijke vorm worden opgenomen en opgeslagen. De gegevens kunnen vervolgens worden verwerkt en gebruikt als basis voor verschillende analysebehoeften.
  • Met Azure Logic Apps kunt u geautomatiseerde werkstromen maken en uitvoeren met weinig tot geen code. Met behulp van de visuele ontwerper en selectie uit vooraf gemaakte bewerkingen kunt u snel een werkstroom maken waarmee uw proxybronnen, gegevensopslag en efficiëntieberekeningssystemen worden geïntegreerd en beheerd.
  • Met Azure Functions kunt u kleine code-eenheden uitvoeren. Er worden automatisch resources geschaald op basis van de vraag en u betaalt alleen voor de werkelijke uitvoeringstijd. U kunt deze gebruiken om duurzaamheidsberekeningen te maken en op te slaan in Blob Storage of een data lake.
  • Azure Automation biedt procesautomatisering via runbooks. U kunt de runbooks gebruiken om complexe logica te implementeren met behulp van PowerShell-code die van invloed kan zijn op uw toepassing om de efficiëntie te verbeteren. Deze service kan ook bedrijfswaarde toevoegen door fouten en operationele kosten te verminderen.
  • Met Power BI kunt u uw gegevens omzetten in analyses en rapporten die realtime inzichten bieden.

Alternatieven

De Azure-services die in dit artikel worden beschreven, kunnen worden vervangen door vergelijkbare services. Als u de dichtheid en het gebruik van bestaande resources wilt verhogen, voert u de berekeningen uit met de minimale impact op uw infrastructuur met behulp van Azure-services of -hulpprogramma's die al in uw omgeving zijn geïmplementeerd:

  • U kunt Power BI-dashboards vervangen door Azure Monitor-werkmappen of Azure Managed Grafana-services .
  • U kunt Application Insights vervangen door elk ander APM-hulpprogramma (Application Performance Management), zoals Elasticsearch Application Performance Management (APM) of OpenAPM.
  • Gegevens in de vorm van tabellen of ongestructureerde gegevens kunnen worden bewaard in elk recordsysteem, zoals MySQL of MariaDB, of Azure Cosmos DB en MongoDB.
  • Als u een actieve Azure Functions - of Logic Apps-ruimte hebt, kunt u de berekening regelmatig uitvoeren vanuit uw bestaande implementaties.
  • Als de toepassingsresources worden verdeeld over meerdere resourcegroepen, kunt u tags gebruiken om kostengegevens te correleren en de hoeveelheid koolstof te berekenen die door de toepassing wordt verzonden.

Scenariodetails

Deze architectuur is ontworpen om koolstofoptimalisatiegegevens van Azure en andere bronnen te verzamelen om een uitgebreid overzicht te bieden van de impact op het milieu van een toepassing. Gegevens worden verzameld van Azure Carbon Optimization. Voor niet-Azure-omgevingen wordt een proxy gebruikt om relevante koolstofmetrieken op te halen. Nadat de gegevens zijn geconsolideerd, worden SCI-berekeningen uitgevoerd om de totale koolstofvoetafdruk te beoordelen. De resultaten worden vervolgens opgeslagen in een Azure Storage-account of data lake voor langetermijnretentie, wat BI-analyse en historische rapportage mogelijk maakt. Deze aanpak zorgt voor gecentraliseerde tracering van koolstofimpact in diverse infrastructuur en ondersteunt strategische duurzaamheidsinspanningen.

De koolstofuitstootgegevens worden gedeeltelijk verzameld op de blade Koolstofoptimalisatie in Azure Portal en worden, indien mogelijk, gedeeltelijk berekend via proxy.

Schermopname van de blade Carbon Optimization.

Het is essentieel om een afzonderlijke architectuur te gebruiken om gegevens over koolstofoptimalisatie van Azure te verzamelen om twee belangrijke redenen:

  • Azure Carbon Optimization-gegevens worden alleen voor de afgelopen twaalf maanden (in een doorlopend venster) opgeslagen en weergegeven. Wanneer langetermijntracering van een koolstofvoetafdruk vereist is, zorgt een speciaal systeem ervoor dat gedetailleerde historische informatie wordt bewaard.
  • Een toepassing kan meerdere infrastructuren omvatten, met Azure als slechts één onderdeel. Een afzonderlijke architectuur maakt gecentraliseerde bewaking van koolstofimpact in alle omgevingen mogelijk om een holistische weergave te bieden en uitgebreidere duurzaamheidsinzichten te garanderen.

Notitie

Broeikasgassen bestaan niet uit alleen kooldioxide en hebben niet allemaal dezelfde impact op het milieu. Eén ton methaan heeft bijvoorbeeld hetzelfde verwarmingseffect als 80 ton koolstofdioxide. In dit artikel wordt alles genormaliseerd voor de co2-equivalente meting. Alle verwijzingen naar koolstof verwijzen naar het CO2-equivalent.

Gegevensbronnen

Over het algemeen moet u een proxyvergelijking maken met enkele variabelen. De metrische proxygegevens die u kiest, moeten het gedrag en de prestaties van de toepassing vertegenwoordigen.

Deze metrische gegevens worden in dit voorbeeld gebruikt:

  • De koolstofuitstoot van de infrastructuur, die wordt opgehaald uit de KOOLSTOFuitstoot-API . Deze API is de bron voor zowel de Dashboard voor Impact Uitstoot als de blade Carbon Optimization in Azure Portal. De gegevens zijn beschikbaar op resourcegroepniveau, waardoor de emissies van uw toepassing gemakkelijker kunnen worden bijgehouden.
  • Metrische gegevens over prestaties en schaal van de toepassing, verzameld uit Application Insights:
    • De schaalfactor (API-aanroepen, serveraanvragen of andere metrische gegevens) voor de toepassing
    • CPU-gebruik
    • Geheugengebruik
    • Reactietijd (verzenden en ontvangen)

Zie Application Insights voor ASP.NET Core-toepassingen voor een zelfstudie over het instellen van Application Insights om de vereiste metrische gegevens op te halen.

U kunt andere variabelen toevoegen aan de vergelijking, zoals:

  • Edge-services en koolstofuitstoot van infrastructuur.
  • Het tijdstip waarop gebruikers verbinding maken, naarmate de elektriciteitsproductie en de vraag variëren in de tijd.
  • Alle andere metrische gegevens van de app waarmee u kunt zien hoe de prestaties in de loop van de tijd veranderen.

Door deze vergelijking op te bouwen in een score die ook het aantal gebruikers kan weerspiegelen, maakt u de dichtstbijzijnde benadering van een koolstofscore. Deze score is uw benchmark voor verdere verandering en verbetering in de duurzaamheid van de app.

Kosten zijn een andere overweging die is gekoppeld aan toepassingsprestaties. In de meeste gevallen kan een directe correlatie tussen prestatie-efficiëntie en kosten en koolstofbesparing worden vastgesteld. Deze correlatie leidt tot de volgende veronderstellingen:

  • Wanneer de prestaties hoger zijn, maar de kosten hetzelfde zijn, hebt u de app geoptimaliseerd en de koolstofuitstoot verminderd.
  • Wanneer de kosten worden verlaagd, maar de prestaties hetzelfde zijn, hebt u de app geoptimaliseerd en de koolstofuitstoot verminderd.
  • Wanneer zowel de prestaties als de kosten toenemen, hebt u de app niet geoptimaliseerd en hebt u de koolstofuitstoot verhoogd.
  • Wanneer de kosten toenemen, maar de prestaties afnemen of hetzelfde zijn, hebt u de app niet geoptimaliseerd en de koolstofuitstoot verhoogd (of de energiekosten zijn hoger, wat ook een oorzaak is van een hogere koolstofuitstoot).

Deze correlatie tussen de SCI-score, de kosten en de prestaties van een toepassing is uniek voor elke toepassing en is afhankelijk van veel factoren. Door gegevens voor deze drie variabelen te verzamelen, kunt u een algoritme van correlatie maken waarmee u elke variatie van de drie kunt voorspellen en weloverwogen beslissingen kunt nemen over de toepassingsarchitectuur en -patronen.

Berekeningen

In het scenario dat hier wordt beschreven, is het niet mogelijk om een discrete berekening te maken voor de proxy's die worden gebruikt. In plaats daarvan worden de gegevens die zijn verzameld uit de Dashboard voor Impact Uitstoot verwerkt als uitgangspunt. Dit is de berekening van de SCI-basislijn:

SCI = C*R

In deze vergelijking:

  • C is de koolstofuitstoot voor de toepassing. Deze waarde wordt beïnvloed door de wijze waarop de toepassing wordt geïmplementeerd in Azure. Als bijvoorbeeld alle toepassingsresources zich in één resourcegroep bevinden, C is dit de koolstofuitstoot voor die resourcegroep.

    Notitie

    Voorlopig worden andere bronnen van emissies voor de toepassing genegeerd omdat ze afhankelijk zijn van de architectuur en het gedrag van de edge/gebruiker. Als u proxy's gebruikt voor gegevens, kunt u deze bronnen in de volgende stap overwegen.

  • R is de schaalfactor voor de toepassing. Dit kan het aantal gemiddelde gelijktijdige gebruikers zijn voor het tijdvenster, API-aanvragen, webaanvragen of andere metrische gegevens. Deze waarde is belangrijk omdat deze leidt tot een score die rekening houdt met de algehele impact van het gebruik van de toepassing, niet alleen de footprint van de implementatie.

Het tijdvenster is natuurlijk een ander belangrijk aspect van deze berekening: koolstofuitstoot voor elk energieverbruikend apparaat of systeem varieert in de loop van de tijd, omdat het energienet mogelijk hernieuwbare of alternatieve energiebronnen (bijvoorbeeld zonnestroom) heeft, maar niet op andere. Het is daarom belangrijk om te beginnen met het kortst mogelijke tijdsbestek om de precisie te vergroten. U kunt bijvoorbeeld beginnen met een dagelijkse of uurberekening.

De koolstofuitstoot-API biedt momenteel maandelijkse koolstofinformatie op basis van de services binnen een abonnement, op het niveau van de resourcegroep. Met behulp van de geleverde REST API kunt u emissiegegevens exporteren naar een data lake met alle duurzaamheidsgegevens voor de toepassing.

Gegevensopslag

U moet de koolstof- en koolstofproxygegevens opslaan die u verzamelt in een oplossing die u kunt verbinden met dashboards of rapporten. Hierdoor kunt u uw koolstofscore in de loop van de tijd visualiseren en weloverwogen keuzes maken. Om de duurzaamheid te verbeteren en in overeenstemming te zijn met best practices voor Azure Well-Architected Framework, raden we u aan het minimale levensvatbare systeem te gebruiken. (Zie voor meer informatie Ontwerpoverwegingen voor gegevens en opslag voor duurzame workloads in Azure en toepassingsplatformoverwegingen voor duurzame workloads in Azure.) Azure Data Lake Storage wordt in deze architectuur gebruikt.

Gegevenscorrelaties

Wanneer u begint met het verzamelen van gegevens over koolstof, prestaties en kosten van uw toepassing, hebt u waardevolle informatie waarmee u een correlatie-algoritme kunt maken dat specifiek is voor uw toepassing en die richtlijnen biedt wanneer u kosten, prestaties en koolstofoptimalisatie plant.

Zie Algoritmen voor Azure Machine Learning selecteren voor meer informatie.

Gegevensweergave

U kunt uw gegevens en berekeningen op verschillende manieren weergeven, waaronder aangepaste Azure Monitor-dashboards en eenvoudige Power BI-dashboards.

Wat kan uw SCI-scoretrigger?

Nadat u uw duurzaamheidsscore kent, vraagt u zich misschien af hoe u deze kunt verbeteren.

Als u de koolstofimpact van uw toepassing kunt beoordelen met behulp van proxy's, moet u zich richten op het definiëren van acties die kunnen worden geactiveerd door ongunstige omstandigheden in de score. Enkele voorbeelden van deze voorwaarden zijn:

  • Energieproductie en vraag is altijd hoog en is daarom duur om te produceren.
  • Elektriciteit is niet beschikbaar. Deze situatie kan worden veroorzaakt door een natuurramp of geopolitieke conflict.
  • Plotselinge niet-beschikbaarheid van edge-infrastructuur veroorzaakt door problemen met oververbruik van resources of supply chain.

Wanneer u de foutpunten kunt identificeren die van invloed kunnen zijn op uw toepassing, kunt u bepalen welke acties u moet ondernemen om uw toepassing tolerant te maken voor koolstofpieken.

U kunt een van de volgende acties uitvoeren:

  • Pas een goede verslechtering van de services en functies van de app toe, zoals beschreven in de Well-Arcchitected Framework-documentatie.

  • Maak een ecomodusversie van uw toepassing. De ecomodus is een eenvoudigere, kleinere, goedkopere, duurzamere versie van de toepassing die minimale functies biedt. U kunt deze versie herstellen tijdens koolstofuitstootpieken. U kunt uw eindgebruikers ook eenvoudig trainen om naar keuze een eco-versie te gebruiken. U kunt een 'groene knop' bieden waarmee mensen een slankere interface, minder afbeeldingen en beperkte functies kunnen gebruiken in ruil voor verminderde koolstofuitstoot.

  • Als u ervoor kiest om uw gebruikers te betrekken, maakt u een kans om een culturele verandering samen met de technische te stimuleren: - U kunt de impact van de keuze opgeven: "Door de eco-versie te gebruiken, bespaart u x hoeveelheid koolstof" of "brengen onze koolstofscore in y hoeveelheid." - U kunt inzicht krijgen in het gedrag van de gebruiker en de eco-versie aanpassen aan hun keuzes. (Misschien gebruiken ze 10% van de functies en zijn ze een ideale gebruiker van de eco-versie.) - Aangezien de volledige versie is geoptimaliseerd voor emissie, kunt u de twee versies idealiter uiteindelijk samenvoegen.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Voor extra beveiliging kunt u service-eindpunten van Azure Virtual Network gebruiken om openbare internettoegang tot Azure-servicebronnen te verwijderen, zodat alleen verkeer van uw virtuele netwerk mogelijk is.

Met deze aanpak maakt u een virtueel netwerk in Azure en maakt u vervolgens privéservice-eindpunten voor Azure-services. Deze services worden vervolgens beperkt tot verkeer van dat virtuele netwerk. U kunt ze ook bereiken vanuit uw on-premises netwerk via een gateway.

Als u gegevens van on-premises naar Azure Storage wilt verplaatsen, moet u openbare IP-adressen van on-premises of Azure ExpressRoute toestaan. Zie Toegewezen Azure-services implementeren in virtuele netwerken voor meer informatie.

Zie de Documentatie voor Azure-beveiliging voor algemene richtlijnen voor het ontwerpen van beveiligde oplossingen.

Kostenoptimalisatie

Kostenoptimalisatie gaat over het verminderen van onnodige uitgaven en het verbeteren van operationele efficiëntie. Zie Overzicht van de pijler Kostenoptimalisatie voor meer informatie.

U kunt deze architectuur implementeren met behulp van verschillende alternatieve Azure-services. Het werd opzettelijk ten minste bewaard om te besparen op kosten en koolstofuitstoot.

Hoewel u wordt aangeraden gelijkwaardige services te gebruiken die u al hebt in uw toepassingsimplementatie, is prijsinformatie beschikbaar voor elk architectuuronderdeel:

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid van uw workload om te schalen om te voldoen aan de eisen die gebruikers op een efficiënte manier stellen. Zie overzicht van de pijler Performance Efficiency voor meer informatie.

Het belangrijkste doel van deze architectuur is om een duurzaamheidsscore voor uw toepassingen te bieden via een proces dat een minimale impact heeft op kosten en koolstof. De meeste onderdelen zijn PaaS -services (Platform as a Service) en serverloze Azure-services die onafhankelijk kunnen worden geschaald op basis van gebruik en verkeer.

In dit scenario zijn de dashboard- en opslaginterface niet bedoeld voor enorm gebruik en overleg. Als u van plan bent deze aan een groot aantal gebruikers te verstrekken, kunt u een van de volgende opties overwegen:

  • Koppel de geëxtraheerde gegevens los door deze te transformeren en op te slaan in een ander systeem.
  • Vervang Data Lake Storage of Azure Table Storage door een schaalbaarder alternatief voor gegevensstructuur, zoals Azure Cosmos DB.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

  • Paola Annis | Principal Customer Experience Engineering Manager
  • Davide Bedin | Senior Cloud Solution Architect, Application Innovation

Andere inzender:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Dit artikel is afgestemd op de principes en methodologie van de Green Software Foundation. De volgende stap bij het maken van een groenere toepassing is het insluiten van de Carbon Aware SDK in uw toepassing, zodat triggers in realtime kunnen worden geautomatiseerd wanneer aan specifieke koolstofvoorwaarden wordt voldaan.

Zie richtlijnen voor duurzaamheid van cloudworkloads voor aanbevelingen voor het optimaliseren van Azure-workloads.