Projektowanie aplikacji zrównoważonych obciążeń na platformie Azure

Podczas tworzenia nowych lub aktualizowania istniejących aplikacji ważne jest, aby rozważyć, w jaki sposób rozwiązanie wpłynie na klimat i czy istnieją sposoby ulepszania i optymalizowania. Dowiedz się więcej o zagadnieniach i zaleceniach dotyczących optymalizacji kodu i aplikacji w celu bardziej zrównoważonego projektowania aplikacji.

Ważne

Ten artykuł jest częścią serii zrównoważonych obciążeń platformy Azure Well-Architected . Jeśli nie znasz tej serii, zalecamy rozpoczęcie od tego, co to jest zrównoważone obciążenie?

Wydajność kodu

Zapotrzebowanie na aplikacje może się różnić i ważne jest, aby rozważyć sposoby stabilizacji wykorzystania, aby zapobiec nadmiernej lub niedostatecznej ilości zasobów, co może prowadzić do niepotrzebnych wycieków energii.

Ocena przenoszenia monolitów do architektury mikrousług

Aplikacje monolityczne zwykle są skalowane jako jednostka, pozostawiając niewielkie miejsce na skalowanie tylko poszczególnych składników, które mogą jej potrzebować.

Dopasowanie Green Software Foundation: Efektywność energetyczna, Wydajność sprzętowa

Zalecenie:

  • Oceń wskazówki dotyczące architektury mikrousług .
  • Architektura mikrousług umożliwia skalowanie tylko niezbędnych składników podczas szczytowego obciążenia; zapewnienie, że składniki bezczynności są skalowane w dół lub w poziomie. Ponadto może zmniejszyć nakład pracy i zasoby wymagane do wdrażania aplikacji monolitycznych.
  • Rozważmy tę kompromis: zmniejszenie wymaganych zasobów obliczeniowych może spowodować zwiększenie ilości ruchu w sieci, a złożoność aplikacji może znacznie wzrosnąć.
  • Rozważmy tę inną kompromis: przejście do mikrousług może spowodować dodatkowe obciążenie wdrożenia z wieloma podobieństwami w potokach wdrażania. Dokładnie rozważ wymagane zasoby wdrożenia dla architektur monolitycznych i mikrousług.
  • Ponadto przeczytaj o konteneryzowaniu aplikacji monolitycznych.

Zwiększanie wydajności interfejsu API

Wiele nowoczesnych aplikacji w chmurze jest przeznaczonych do obsługi wielu komunikatów między usługami i składnikami asynchronicznie. Rozważmy format używany do kodowania danych ładunku. Ile informacji potrzebuje aplikacja do komunikowania się i czy istnieje miejsce na zmniejszenie czattinessu?

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

Zapewnienie zgodności oprogramowania z poprzednimi wersjami, aby upewnić się, że działa na starszym sprzęcie

Rozważ sposób renderowania informacji przez aplikacje. Czy aplikacja musi krytycznie obsługiwać wszystko w najwyższej jakości, co skutkuje większą przepustowością i przetwarzaniem? Czy istnieje miejsce na zmniejszenie jakości składników w interfejsie użytkownika, aby lepiej obsługiwać cele zrównoważonego rozwoju?

Wyrównanie green Software Foundation: Wydajność sprzętu

Zalecenie:

  • Obsługa większej liczby urządzeń konsumenckich użytkowników końcowych, takich jak starsze przeglądarki i systemy operacyjne. Ta zgodność z poprzednimi wersjami poprawia wydajność sprzętu przez ponowne wykorzystanie istniejącego sprzętu zamiast konieczności uaktualnienia sprzętu do działania rozwiązania.
  • Rozważmy tę kompromis: jeśli najnowsze aktualizacje oprogramowania mają znaczne ulepszenia wydajności, użycie starszych wersji oprogramowania może nie być bardziej wydajne.

Korzystanie z natywnych wzorców projektowania chmury

Poznanie wzorców projektowania natywnych dla chmury jest przydatne w przypadku tworzenia aplikacji, niezależnie od tego, czy są hostowane na platformie Azure, czy w innym miejscu. Optymalizacja wydajności i kosztów aplikacji w chmurze spowoduje również zmniejszenie wykorzystania zasobów, dlatego emisje dwutlenku węgla.

Dopasowanie Green Software Foundation: Efektywność energetyczna, Wydajność sprzętowa

Zalecenie:

Rozważ użycie wzorców wyłącznika

Rozważ ocenę i zapobieganie aplikacjom wykonywania operacji, które mogą zakończyć się niepowodzeniem. Powtarzające się błędy mogą prowadzić do nakładu pracy i niepotrzebnego przetwarzania, którego można uniknąć przy użyciu odpowiednich wzorców projektowania.

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

  • Wyłącznik może działać jako serwer proxy dla operacji, które mogą zakończyć się niepowodzeniem i powinny monitorować liczbę ostatnich awarii, które wystąpiły i użyć tych informacji, aby zdecydować, czy kontynuować.
  • Zapoznaj się ze wzorcem wyłącznika, a następnie zastanów się, jak można zaimplementować wzorce wyłącznika dla aplikacji.
  • Rozważ użycie usługi Azure Monitor do monitorowania błędów i konfigurowania alertów.

Optymalizowanie kodu pod kątem wydajnego użycia zasobów

Aplikacje wdrożone przy użyciu nieefektywnego kodu mogą mieć nieodłączny wpływ na zrównoważony rozwój.

Dopasowanie Green Software Foundation: Efektywność energetyczna, Wydajność sprzętowa

Zalecenie:

  • Zmniejsz cykle procesora CPU i liczbę zasobów potrzebnych dla aplikacji.
  • Użyj zoptymalizowanych i wydajnych algorytmów i wzorców projektowych.
  • Rozważ zasadę Nie powtarzaj siebie (DRY).

Optymalizowanie pod kątem wzorców dostępu asynchronicznego

Zapotrzebowanie na aplikacje może się różnić i ważne jest, aby rozważyć sposoby stabilizacji wykorzystania, aby zapobiec nadmiernej lub niedostatecznej ilości zasobów, co może prowadzić do niepotrzebnych wycieków energii.

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

  • Żądania kolejki i buforu, które nie wymagają natychmiastowego przetwarzania, a następnie przetwarzają wsadowe. Projektowanie aplikacji w ten sposób pomaga osiągnąć stabilne wykorzystanie i pomaga spłaszczać zużycie, aby uniknąć kolczastych żądań.
  • Przeczytaj o optymalizacji wzorców dostępu asynchronicznego.

Ocena renderowania po stronie serwera a po stronie klienta

Ustal, czy renderować po stronie serwera, czy po stronie klienta podczas tworzenia aplikacji za pomocą interfejsu użytkownika.

Dopasowanie Green Software Foundation: Efektywność energetyczna, Wydajność sprzętowa

Zalecenie:

  • Rozważ następujące korzyści z renderowania po stronie serwera:

    • Gdy moc serwera pochodzi z mniej zanieczyszczających alternatyw niż ustawienia regionalne klienta.
    • Gdy sprzęt na serwerze ma lepsze współczynniki zużycia energii obliczeniowej.
    • Może używać scentralizowanego buforowania w celu zmniejszenia wielu niepotrzebnych renderów.
    • Zmniejszenie liczby rund przeglądarki do serwera może być szczególnie ważne, gdy urządzenie klienta ma łącze stratowe.
    • Gdy urządzenia klienckie są starsze i mają wolniejsze procesory CPU. Użytkownicy nie muszą uaktualniać swoich urządzeń do obsługi nowoczesnej przeglądarki.
  • Rozważ następujące korzyści z renderowania po stronie klienta:

    • Gdy urządzenia użytkowników końcowych są bardziej odpowiednie, wypychanie odpowiedzialności za renderowanie do klientów.
    • Jest to bardziej wydajne tylko renderowanie potrzebnych elementów i zgodnie z żądaniem, w przeciwieństwie do renderowania wszystkiego co najmniej raz.
    • Nie ma potrzeby korzystania z serwera, ponieważ można polegać na magazynie statycznym.
    • Buforowanie przeglądarki jest używane na klientach.

Należy pamiętać o projektowaniu środowiska użytkownika na potrzeby zrównoważonego rozwoju

Zastanów się, w jaki sposób projekt środowiska użytkownika obciążenia ma wpływ na zrównoważony rozwój i określ, jakie opcje istnieją w celu poprawy efektywności energetycznej i zmniejszenia niepotrzebnego obciążenia sieci, przetwarzania danych i zasobów obliczeniowych.

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

  • Rozważ zmniejszenie liczby składników do załadowania i renderowania na stronach.
  • Ustal, czy aplikacja może renderować obrazy i filmy wideo o niższej rozdzielczości.
    • Nie renderuj obrazów o pełnym rozmiarze jako miniatur, w których przeglądarka wykonuje zmianę rozmiaru.
    • Użycie obrazów o pełnym rozmiarze jako miniatur lub zmienionych rozmiarów obrazów spowoduje transfer większej ilości danych, niepotrzebnego ruchu sieciowego i dodatkowego użycia procesora CPU po stronie klienta ze względu na zmianę rozmiaru i wstępne renderowanie obrazów.
  • Zapewnienie braku nieużywanych stron pomoże zminimalizować projekt środowiska użytkownika.
  • Rozważ wyszukiwanie i znajdowanie. Ułatwianie użytkownikom znajdowania szukanych danych pomaga zmniejszyć ilość przechowywanych i pobranych danych.
  • Rozważ zapewnienie lżejszego interfejsu użytkownika przy użyciu mniejszej liczby zasobów i mniejszego wpływu na zrównoważony rozwój oraz zapewnienie użytkownikom świadomego wyboru.
  • Oszczędzaj energię, oferując aplikacje i witryny internetowe w trybie ciemnym, z ciemnymi tłami.
  • Zdecyduj się na używanie czcionek systemowych, jeśli jest to możliwe, aby uniknąć wymuszania na klientach pobierania dodatkowych czcionek, co powoduje większe obciążenie sieci.

Aktualizowanie starszego kodu

Rozważ uaktualnienie lub wycofanie starszego kodu, jeśli nie jest ono uruchomione w nowoczesnej infrastrukturze chmury lub z najnowszymi aktualizacjami.

Wyrównanie green Software Foundation: Wydajność sprzętu

Zalecenie:

  • Zidentyfikuj nieefektywny starszy kod odpowiedni do modernizacji.
  • Sprawdź, czy istnieją opcje przejścia do bezserwerowej lub dowolnej z zoptymalizowanych opcji PaaS.
  • Rozważmy tę kompromis: Aktualizowanie starego kodu, który może skończyć się przestarzałym, może zużywać cenny czas.

Następny krok

Zapoznaj się z zagadnieniami dotyczącymi projektowania dla platformy aplikacji.