Mierzenie zrównoważonego rozwoju aplikacji platformy Azure przy użyciu wskaźnika SCI

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

Rozwiązanie opisane w tym artykule może pomóc w utworzeniu modelu zrównoważonego rozwoju dla aplikacji hostowanych na platformie Azure. Model korzysta z serwerów proxy, które w czasie umożliwiają ocenę wpływu i wydajności aplikacji na emisję dwutlenku węgla. Wynik jest znany jako wskaźnik wskaźnika emisji dwutlenku węgla oprogramowania (SCI). Zapewnia punkt odniesienia do mierzenia zmian w produkcji dwutlenku węgla w aplikacji.

Architektura

Diagram przedstawiający model zrównoważonego rozwoju, który ocenia wpływ emisji dwutlenku węgla na aplikację.

Pobierz plik programu Visio z tą architekturą.

Przepływ danych

  1. Skonfiguruj źródła danych aplikacji, których użyjesz do obliczenia wskaźnika SCI. Dane mogą być pomiarami emisji dostarczonymi przez blok Optymalizacji emisji dwutlenku węgla w witrynie Azure Portal lub mogą być pomiarami proxy ze źródeł lub systemów innych niż microsoft.
  2. Eksportowanie danych emisji dwutlenku węgla do usługi Data Lake.
  3. Użyj procedur obsługi zdarzeń, takich jak Azure Functions lub Azure Logic Apps, aby obliczyć wynik SCI. Dane wyjściowe to ilość węgla emitowanego w gramach na jednostkę, gdzie jednostka odnosi się do współczynnika skalowania aplikacji lub przybliżenia go na podstawie serwerów proxy.
  4. Użyj technologii takich jak Azure Functions, Logic Apps lub Azure Automation Runbook, aby wyzwolić kształtowanie zapotrzebowania na aplikację lub zainicjować wstępnie zdefiniowany tryb eko aplikacji.
  5. Usługa Power BI umożliwia raportowanie i wizualizowanie wyniku i jego odmiany w czasie.

Składniki

  • Blok Optymalizacja emisji dwutlenku węgla w witrynie Azure Portal zawiera pomiary emisji dwutlenku węgla obciążeń platformy Azure na poziomie grupy zasobów.
  • Interfejs API Cloud for Sustainability udostępnia podstawowe dane dotyczące optymalizacji emisji dwutlenku węgla. Służy do pobierania informacji na temat emisji subskrypcji.
  • Application Insights to funkcja usługi Azure Monitor, która zapewnia zarządzanie wydajnością aplikacji (APM). Może to pomóc w uzyskaniu zaawansowanego wglądu w sposób, w jaki użytkownicy korzystają z aplikacji. Tę wiedzę można wykorzystać do podejmowania decyzji opartych na danych na temat poprawy wydajności aplikacji.
  • Usługa Azure Blob Storage przechowuje informacje o emisji z poziomu optymalizacji emisji na platformie Azure, na podstawie obliczeń niestandardowych lub innych serwerów proxy dla emisji.
  • Usługa Azure Data Lake to scentralizowane repozytorium, które pozyskuje i przechowuje duże ilości danych w oryginalnej formie. Dane mogą być następnie przetwarzane i używane jako podstawa dla różnych potrzeb analitycznych.
  • Usługa Azure Logic Apps umożliwia tworzenie i uruchamianie zautomatyzowanych przepływów pracy bez kodu. Korzystając z projektanta wizualnego i wybierając z wstępnie utworzonych operacji, możesz szybko utworzyć przepływ pracy integrujący źródła proxy, magazyn danych i systemy obliczeń wydajności oraz zarządzać nimi.
  • Usługa Azure Functions umożliwia uruchamianie małych jednostek kodu. Automatycznie skaluje zasoby na podstawie zapotrzebowania i płacisz tylko za rzeczywisty czas wykonywania. Można go użyć do wykonywania obliczeń zrównoważonego rozwoju i przechowywania ich w usłudze Blob Storage lub data lake.
  • Usługa Azure Automation zapewnia automatyzację procesów za pośrednictwem elementów Runbook. Elementy Runbook umożliwiają implementowanie złożonej logiki przy użyciu kodu programu PowerShell, które mogą wpływać na aplikację w celu zwiększenia wydajności. Ta usługa może również zwiększyć wartość biznesową, zmniejszając błędy i koszty operacyjne.
  • Usługa Power BI umożliwia przekształcanie danych w analizy i raporty, które zapewniają szczegółowe informacje w czasie rzeczywistym.

Alternatywy

Usługi platformy Azure opisane w tym artykule można zastąpić podobnymi usługami. Aby zwiększyć gęstość i wykorzystanie istniejących zasobów, wykonaj obliczenia z minimalnym wpływem na infrastrukturę przy użyciu usług lub narzędzi platformy Azure, które są już wdrożone w środowisku:

  • Pulpity nawigacyjne usługi Power BI można zastąpić skoroszytami usługi Azure Monitor lub usługami Azure Managed Grafana.
  • Usługę Application Insights można zastąpić dowolnym innym narzędziem do zarządzania wydajnością aplikacji (APM), takimi jak zarządzanie wydajnością aplikacji Elasticsearch (APM) lub OpenAPM.
  • Dane w postaci tabel lub danych bez struktury można przechowywać w dowolnym systemie rekordów, takich jak MySQL lub MariaDB, lub Azure Cosmos DB i MongoDB.
  • Jeśli masz uruchomioną przestrzeń usługi Azure Functions lub Logic Apps, możesz regularnie uruchamiać obliczenia na podstawie istniejących wdrożeń.
  • Jeśli zasoby aplikacji są dystrybuowane w wielu grupach zasobów, możesz użyć tagów, aby skorelować dane kosztów i obliczyć ilość emisji dwutlenku węgla przez aplikację.

Szczegóły scenariusza

Ta architektura jest przeznaczona do zbierania danych optymalizacji emisji dwutlenku węgla z platformy Azure i innych źródeł w celu zapewnienia kompleksowego wglądu w wpływ aplikacji na środowisko. Dane są zbierane z optymalizacji emisji dwutlenku węgla na platformie Azure. W przypadku środowisk spoza platformy Azure serwer proxy jest używany do pobierania odpowiednich metryk emisji dwutlenku węgla. Po skonsolidowanym danych obliczenia SCI są wykonywane w celu oceny całkowitego śladu węglowego. Wyniki są następnie przechowywane na koncie usługi Azure Storage lub usłudze Data Lake na potrzeby długoterminowego przechowywania, co umożliwia analizę analizy biznesowej i raportowanie historyczne. Takie podejście zapewnia scentralizowane śledzenie wpływu emisji dwutlenku węgla w zróżnicowanej infrastrukturze i wspiera strategiczne wysiłki na rzecz zrównoważonego rozwoju.

Informacje o emisji dwutlenku węgla są częściowo zbierane z bloku Optymalizacji emisji dwutlenku węgla w witrynie Azure Portal i częściowo obliczane, jeśli to możliwe, za pośrednictwem serwera proxy.

Zrzut ekranu przedstawiający blok Optymalizacja emisji dwutlenku węgla.

Ważne jest użycie oddzielnej architektury do zbierania danych optymalizacji emisji dwutlenku węgla platformy Azure z dwóch kluczowych powodów:

  • Dane optymalizacji emisji dwutlenku węgla na platformie Azure są przechowywane i wyświetlane tylko w ciągu ostatnich dwunastu miesięcy (w oknie kroczącym). Gdy wymagane jest długoterminowe śledzenie śladu węglowego, dedykowany system zapewnia przechowywanie szczegółowych informacji historycznych.
  • Aplikacja może obejmować wiele infrastruktury z platformą Azure jako tylko jeden składnik. Oddzielna architektura umożliwia scentralizowane monitorowanie wpływu emisji dwutlenku węgla we wszystkich środowiskach w celu zapewnienia całościowego widoku i zapewnienia bardziej kompleksowego wglądu w zrównoważony rozwój.

Uwaga

Gazy cieplarniane nie składają się tylko z dwutlenku węgla i nie mają tego samego wpływu na środowisko. Na przykład jedna tona metanu ma taki sam efekt ogrzewania, jak 80 ton dwutlenku węgla. W tym artykule wszystko jest znormalizowane do miary równoważnej CO2. Wszystkie odwołania do węgla odnoszą się do odpowiednika CO2.

Źródła danych

Ogólnie rzecz biorąc, należy utworzyć równanie serwera proxy z kilkoma zmiennymi. Wybrane metryki serwera proxy powinny reprezentować zachowanie i wydajność aplikacji.

Te metryki są używane w tym przykładzie:

  • Emisja dwutlenku węgla infrastruktury, która jest pobierana z interfejsu API emisji dwutlenku węgla. Ten interfejs API jest źródłem zarówno Pulpit nawigacyjny wpływu na emisje, jak i bloku Optymalizacja emisji dwutlenku węgla w witrynie Azure Portal. Dane są dostępne na poziomie grupy zasobów, co ułatwia śledzenie emisji aplikacji.
  • Metryki wydajności i skalowania aplikacji zebrane z usługi Application Insights:
    • Współczynnik skalowania (wywołania interfejsu API, żądania serwera lub inna metryka) dla aplikacji
    • Użycie procesora CPU
    • Użycie pamięci
    • Czas odpowiedzi (wysyłanie i odbieranie)

Aby zapoznać się z samouczkiem dotyczącym konfigurowania usługi Application Insights w celu uzyskania wymaganych metryk, zobacz Application Insights for ASP.NET Core applications (Usługa Application Insights dla aplikacji ASP.NET Core).

Do równania można dodać inne zmienne, takie jak:

  • Usługi brzegowe i emisje dwutlenku węgla w infrastrukturze.
  • Czas, w jakim użytkownicy łączą się, ponieważ produkcja i zapotrzebowanie na energię elektryczną różnią się w zależności od czasu.
  • Każda inna metryka aplikacji, która może powiedzieć, jak zmienia się jego wydajność w czasie.

Tworząc to równanie w wynik, który może również odzwierciedlać liczbę użytkowników, tworzysz najbliższe przybliżenie wskaźnika emisji dwutlenku węgla. Ten wynik jest punktem odniesienia dla wszelkich dalszych zmian i poprawy w kierunku zrównoważonego rozwoju aplikacji.

Koszt to kolejna kwestia skojarzona z wydajnością aplikacji. W większości przypadków można ustanowić bezpośrednią korelację między wydajnością a oszczędnościami kosztów i emisji dwutlenku węgla. Ta korelacja prowadzi do następujących założeń:

  • Gdy wydajność jest wyższa, ale koszty są takie same, zoptymalizowano aplikację i zmniejszono emisję dwutlenku węgla.
  • Gdy koszty są mniejsze, ale wydajność jest taka sama, zoptymalizowaliśmy aplikację i zmniejszyliśmy emisję dwutlenku węgla.
  • W przypadku zwiększenia wydajności i kosztów nie zoptymalizowano aplikacji i zwiększono emisję dwutlenku węgla.
  • Gdy koszty wzrosną, ale wydajność zostanie zmniejszona lub taka sama, aplikacja nie została zoptymalizowana i zwiększyła emisję dwutlenku węgla (lub koszt energii jest wyższy, co jest również przyczyną wyższych emisji dwutlenku węgla).

Ta korelacja między oceną SCI, kosztem i wydajnością aplikacji jest unikatowa dla każdej aplikacji i zależy od wielu czynników. Zbierając dane dla tych trzech zmiennych, można utworzyć algorytm korelacji, który umożliwia prognozowanie dowolnej odmiany tych trzech oraz podejmowanie świadomych decyzji dotyczących architektury i wzorców aplikacji.

Obliczenia

W opisanym tutaj scenariuszu nie można utworzyć dyskretnych obliczeń dla używanych serwerów proxy. Zamiast tego dane zebrane z Pulpit nawigacyjny wpływu na emisje są przetwarzane jako punkt początkowy. Oto obliczenie punktu odniesienia SCI:

SCI = C*R

W tym równaniu:

  • C to emisja dwutlenku węgla dla aplikacji. Ta wartość ma wpływ na sposób wdrażania aplikacji na platformie Azure. Jeśli na przykład wszystkie zasoby aplikacji znajdują się w jednej grupie zasobów, C to emisja dwutlenku węgla dla tej grupy zasobów.

    Uwaga

    Na razie inne źródła emisji dla aplikacji są ignorowane, ponieważ zależą one od architektury i zachowania krawędzi/użytkownika. Jeśli używasz serwerów proxy dla danych, możesz rozważyć te źródła w następnym kroku.

  • R jest czynnikiem skalowania aplikacji. Może to być liczba średniego współbieżnego użytkownika dla przedziału czasu, żądań interfejsu API, żądań internetowych lub innej metryki. Ta wartość jest ważna, ponieważ prowadzi do oceny, która stanowi ogólny wpływ użycia aplikacji, a nie tylko jej ślad wdrożenia.

Przedział czasu jest oczywiście innym ważnym aspektem tego obliczenia: emisje dwutlenku węgla dla dowolnego urządzenia zużywające energię lub system różnią się w czasie, ponieważ sieć energetyczna może mieć odnawialne lub alternatywne źródła energii (na przykład energia słoneczna) w niektórych momentach, ale nie w innych. Dlatego ważne jest, aby rozpocząć od najkrótszego możliwego przedziału czasu, aby zwiększyć precyzję. Na przykład możesz zacząć od obliczenia dziennego lub godzinowego.

Interfejs API emisji dwutlenku węgla udostępnia obecnie miesięczne informacje o emisji dwutlenku węgla na podstawie usług w ramach subskrypcji na poziomie grupy zasobów. Korzystając z udostępnionego interfejsu API REST, można wyeksportować dane emisji do usługi Data Lake, która przechowuje wszystkie dane zrównoważonego rozwoju aplikacji.

Magazyn danych

Należy przechowywać informacje dotyczące emisji dwutlenku węgla i emisji dwutlenku węgla zebrane w rozwiązaniu, które można połączyć z pulpitami nawigacyjnymi lub raportami. Umożliwia to wizualizowanie wskaźnika emisji dwutlenku węgla w czasie i podejmowanie świadomych wyborów. Aby poprawić zrównoważony rozwój i dostosować się do najlepszych rozwiązań dotyczących platformy Azure Well-Architected Framework, zalecamy użycie minimalnej opłacalności systemu. (Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące projektowania danych i magazynowania dotyczące zrównoważonych obciążeń na platformie Azure i na platformie Application dotyczące zrównoważonych obciążeń na platformie Azure. Usługa Azure Data Lake Storage jest używana w tej architekturze.

Korelacje danych

Gdy zaczniesz zbierać dane dotyczące emisji dwutlenku węgla, wydajności i kosztów aplikacji, będziesz mieć cenne informacje, które umożliwiają utworzenie algorytmu korelacji specyficznego dla aplikacji oraz wskazówek dotyczących planowania kosztów, wydajności i optymalizacji emisji dwutlenku węgla.

Aby uzyskać więcej informacji, zobacz How to select algorithms for Azure Machine Learning (Jak wybrać algorytmy dla usługi Azure Machine Learning).

Wyświetlanie danych

Dane i obliczenia można wyświetlać na różne sposoby, w tym dostosowane pulpity nawigacyjne usługi Azure Monitor i proste pulpity nawigacyjne usługi Power BI.

Jaki może być wyzwalacz wskaźnika SCI?

Po zapoznaniu się z wynikiem zrównoważonego rozwoju możesz się zastanawiać, jak można go poprawić.

Jeśli możesz ocenić wpływ emisji dwutlenku węgla aplikacji przy użyciu serwerów proxy, następnym krokiem jest skupienie się na zdefiniowaniu akcji, które mogą być wyzwalane przez niekorzystne warunki w wyniku. Oto kilka przykładów tych warunków:

  • Produkcja energetyczna i popyt są w wszech czasów wysoki i dlatego jest kosztowny do produkcji.
  • Energia elektryczna nie jest dostępna. Ten stan może być spowodowany klęską żywiołową lub konfliktem geopolitycznym.
  • Nagły brak dostępności infrastruktury brzegowej spowodowany nadmiernym zużyciem zasobów lub problemami z łańcuchem dostaw.

Kiedy można zidentyfikować punkty awarii, które mogą mieć wpływ na aplikację, możesz zdecydować, jakie działania należy podjąć, aby aplikacja mogła być odporna na skoki emisji dwutlenku węgla.

Możesz wykonać jedną z następujących akcji:

  • Zastosuj łagodne obniżenie poziomu usług i funkcji aplikacji zgodnie z opisem w dokumentacji platformy Well-Arcchitected Framework.

  • Utwórz wersję aplikacji w trybie ekologicznym. Tryb eco to prostsza, mniejsza, tańsza, bardziej zrównoważona wersja aplikacji, która oferuje minimalne funkcje. Możesz przywrócić tę wersję podczas skoków emisji dwutlenku węgla. Możesz również po prostu wytrenować użytkowników końcowych do korzystania z wersji ekologicznej według wyboru. Możesz udostępnić "zielony przycisk", który umożliwia ludziom korzystanie z szczuplejszego interfejsu, mniejszej liczby grafiki i ograniczonych funkcji w zamian za zmniejszenie emisji dwutlenku węgla.

  • Jeśli zdecydujesz się zaangażować swoich użytkowników, utworzysz okazję do zmiany kulturowej wraz z jedną techniczną: - Możesz określić wpływ wybranej wersji: "Korzystając z wersji ekologicznej, możesz zaoszczędzić x ilości węgla" lub "przynieść nasz wynik emisji dwutlenku węgla do y." - Możesz poznać zachowanie użytkowników i zmodyfikować wersję ekologiczną, aby odzwierciedlić swoje wybory. (Może używają one 10% funkcji i są idealnym użytkownikiem wersji ekologicznej). - Ponieważ pełna wersja jest zoptymalizowana pod kątem emisji, można w idealnym przypadku scalić obie wersje.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Aby uzyskać dodatkowe zabezpieczenia, możesz użyć punktów końcowych usługi Azure Virtual Network, aby usunąć publiczny dostęp do Internetu do zasobów usługi platformy Azure, zezwalając na ruch tylko z sieci wirtualnej.

Dzięki temu podejściu utworzysz sieć wirtualną na platformie Azure, a następnie utworzysz prywatne punkty końcowe usługi dla usług platformy Azure. Te usługi są następnie ograniczone do ruchu z tej sieci wirtualnej. Możesz również uzyskać do nich dostęp z sieci lokalnej za pośrednictwem bramy.

Należy pamiętać, że aby przenieść dane ze środowiska lokalnego do usługi Azure Storage, musisz zezwolić na publiczne adresy IP ze środowiska lokalnego lub usługi Azure ExpressRoute. Aby uzyskać szczegółowe informacje, zobacz Wdrażanie dedykowanych usług platformy Azure w sieciach wirtualnych.

Aby uzyskać ogólne wskazówki dotyczące projektowania bezpiecznych rozwiązań, zobacz dokumentację zabezpieczeń platformy Azure.

Optymalizacja kosztów

Optymalizacja kosztów polega na zmniejszeniu niepotrzebnych wydatków i poprawie wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Tę architekturę można wdrożyć przy użyciu kilku alternatywnych usług platformy Azure. Celowo zachowano co najmniej, aby zaoszczędzić na kosztach i emisjach dwutlenku węgla.

Chociaż zachęcamy do korzystania z równoważnych usług, które już masz we wdrożeniu aplikacji, informacje o cenach są dostępne dla każdego składnika architektury:

Efektywność wydajności

Wydajność to możliwość skalowania obciążenia w celu spełnienia wymagań, które są na nim nakładane przez użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Głównym celem tej architektury jest zapewnienie wskaźnika zrównoważonego rozwoju aplikacji za pośrednictwem procesu, który ma minimalny wpływ na koszt i emisję dwutlenku węgla. Większość składników to platforma jako usługa (PaaS) i bezserwerowe usługi platformy Azure, które można skalować niezależnie na podstawie użycia i ruchu.

W tym scenariuszu pulpit nawigacyjny i interfejs magazynu nie są przeznaczone do masowego użycia i konsultacji. Jeśli planujesz udostępnić go dużej liczbie użytkowników, warto rozważyć jedną z następujących opcji:

  • Rozdziel wyodrębnione dane, przekształcając je i przechowując je w innym systemie.
  • Zastąp usługę Data Lake Storage lub Azure Table Storage bardziej skalowalną alternatywą struktury danych, na przykład Azure Cosmos DB.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

  • Paola Annis | Główny menedżer inżynierów środowiska klienta
  • Davide Bedin | Starszy architekt rozwiązań w chmurze, innowacje w aplikacjach

Inny współautor:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Ten artykuł jest zgodny z zasadami i metodologią Green Software Foundation. Następnym krokiem tworzenia bardziej ekologicznej aplikacji jest osadzanie zestawu SDK rozpoznawania emisji dwutlenku węgla w aplikacji, dzięki czemu wyzwalacze mogą być zautomatyzowane w czasie rzeczywistym, gdy spełnione są określone warunki emisji dwutlenku węgla.

Aby uzyskać zalecenia dotyczące optymalizowania obciążeń platformy Azure, zobacz Sustainability Cloud workload guidance (Wskazówki dotyczące zrównoważonego obciążenia w chmurze).