Zagadnienia dotyczące testowania dla zrównoważonych obciążeń na platformie Azure

Organizacje opracowujące i wdrażające rozwiązania w chmurze również potrzebują niezawodnego testowania. Dowiedz się więcej o zagadnieniach i zaleceniach dotyczących uruchamiania testów obciążeń oraz sposobach optymalizacji pod kątem bardziej zrównoważonego modelu testowania.

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ść testowania

Uruchamianie integracji, wydajności, obciążenia lub innych intensywnych testów w okresach niskiej emisji dwutlenku węgla

Uruchomienie integracji, wydajności, obciążenia lub innych intensywnych możliwości testowania może spowodować duże przetwarzanie. Dobrze przygotowany projekt do testowania wdrożonych obciążeń może pomóc zapewnić pełne wykorzystanie dostępnych zasobów, zmniejszając emisję dwutlenku węgla.

Wyrównanie Green Software Foundation: Świadomość emisji dwutlenku węgla

Zalecenie:

  • Jeśli masz dostępne dane, zaplanuj uruchamianie testów, gdy mieszanka energii centrum danych wykorzystuje przede wszystkim energię odnawialną. Może to być na przykład bardziej korzystne dla uruchamiania testów w nocy w niektórych regionach.

Automatyzowanie ciągłej integracji/ciągłego wdrażania w celu skalowania agentów procesu roboczego zgodnie z potrzebami

Uruchamianie niedostatecznie wykorzystanych lub nieaktywnych agentów ciągłej integracji/ciągłego wdrażania powoduje zwiększenie emisji.

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

Zalecenie:

  • Utrzymuje wysokie wykorzystanie zasobów obliczeniowych na podstawie bieżącego zapotrzebowania, unikając niepotrzebnej alokacji pojemności.
  • Skaluj tylko w poziomie, gdy jest to konieczne, a kiedy nie są testowane, skaluj w poziomie. Ostatecznie gwarantuje to, że w środowiskach testowych nie ma bezczynnych zasobów obliczeniowych.
  • Rozważ zoptymalizowane usługi platformy, takie jak kontenery podczas testowania na maszynie wirtualnej, korzystając z platformy w celu zmniejszenia konserwacji.

Rozważ buforowanie podczas korzystania z agentów ciągłej integracji/ciągłego wdrażania

Korzystanie z mechanizmów buforowania podczas ciągłej integracji/ciągłego wdrażania może skrócić czas obliczeniowy i w związku z tym emisję dwutlenku węgla.

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

  • Przechowywanie wyników z kroków w pamięci podręcznej i ponowne użycie ich między różnymi przebiegami ciągłej integracji/ciągłego wdrażania, gdy jest to możliwe: jeśli istnieją kroki, które zajmują czas procesora CPU w celu utworzenia artefaktu, który nie często zmienia się między różnymi przebiegami, warto zapisać go na potrzeby przyszłego użycia, aby czas procesora CPU nie był marnowany na każdym uruchomieniu tworzącym ten sam artefakt, over i over.
  • Jeśli agent ciągłej integracji/ciągłego wdrażania jest hostowany samodzielnie, użyj lokalnej pamięci podręcznej do agenta, aby jeszcze bardziej zmniejszyć transfery danych i emisje. Gwarantuje to, że pamięć podręczna nie jest przesyłana przez sieć, co może być istotnym źródłem emisji.

Dzielenie dużych repozytoriów kodu

Dzielenie dużych repozytoriów może pomóc fazom ciągłej integracji/ciągłego wdrażania, w których kompilowane są tylko części zmienionego kodu. Zmniejsza to czas obliczeniowy, co ostatecznie obniża emisję dwutlenku węgla.

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

  • Podziel duże repozytoria kodu, oddzielając główny kod od bibliotek i zależności.
  • Publikowanie i ponowne używanie artefaktów i bibliotek kodu, które są wspólne dla wielu repozytoriów.

Zalecenie:

  • Podziel duże repozytoria kodu na mniejsze, oddzielając kod główny od bibliotek i zależności.
  • Publikowanie i ponowne używanie artefaktów i bibliotek kodu, które są wspólne dla wielu repozytoriów.

Profilowanie i pomiar

Pomiar, profilowanie i testowanie obciążeń jest konieczne, aby zrozumieć, jak najlepiej używać przydzielonych zasobów.

Ocena miejsca, w którym możliwe jest równoległe

Bez prawidłowego profilowania i testowania obciążeń trudno jest wiedzieć, czy najlepiej wykorzystać podstawową platformę i wdrożone zasoby.

Dopasowanie Green Software Foundation: Mierzenie zrównoważonego rozwoju

Zalecenie:

  • Przetestuj aplikacje, aby zrozumieć współbieżne żądania, jednoczesne przetwarzanie i nie tylko.
  • Jeśli używasz usługi Machine Learning (ML) do testowania, rozważ maszyny z procesorem GPU, aby uzyskać lepszą wydajność.
  • Określ, czy obciążenie intensywnie obciąża wydajność i pracuje nad optymalizacją.
  • Rozważmy ten kompromis: Uruchamianie maszyn opartych na procesorze GPU na potrzeby testów uczenia maszynowego może zwiększyć koszt.

Ocena za pomocą inżynierii chaosu

Uruchamianie integracji, wydajności i testów obciążeniowych zwiększa niezawodność obciążenia. Jednak wprowadzenie inżynierii chaosu może znacznie pomóc zwiększyć niezawodność i odporność oraz sposób reagowania aplikacji na błędy. W ten sposób obciążenie można zoptymalizować pod kątem bezproblemowego obsługi awarii i mniejszej ilości zasobów.

Dopasowanie Green Software Foundation: Mierzenie zrównoważonego rozwoju

Zalecenie:

  • Użyj testowania obciążenia lub inżynierii chaosu , aby ocenić, jak obciążenie obsługuje awarie platformy i skoki ruchu lub spadki. Pomaga to zwiększyć odporność usługi i możliwość reagowania na błędy, co pozwala na bardziej zoptymalizowaną obsługę błędów.
  • Rozważmy ten kompromis: Wstrzyknięcie błędu podczas inżynierii chaosu i zwiększenie obciążenia dowolnego systemu zwiększa również emisje używane do testowania zasobów. Oceń, jak i kiedy można wykorzystać inżynierię chaosu, aby zwiększyć niezawodność obciążenia, biorąc pod uwagę wpływ na klimat uruchamiania niepotrzebnych sesji testowych.
  • Innym kątem tego jest użycie inżynierii chaosu do testowania błędów energetycznych lub momentów z wyższymi emisjami dwutlenku węgla: rozważ skonfigurowanie testów, które będą kwestionować aplikację, aby zużywać minimalną możliwą energię. Zdefiniuj, w jaki sposób aplikacja będzie reagować na takie warunki z określoną wersją "eko", informując użytkowników, że emitują minimalny możliwy węgiel, poświęcając niektóre funkcje i ewentualnie pewną wydajność. Może to być również aplikacja porównawcza do oceniania jego zrównoważonego rozwoju.

Ustanawianie progów procesora CPU i pamięci podczas testowania

Pomoc w tworzeniu testów na potrzeby testowania zrównoważonego rozwoju w aplikacji. Rozważ użycie procesora CPU według planu bazowego i wykryj nietypowe zmiany w punkcie odniesienia wykorzystania procesora CPU podczas uruchamiania testów. W przypadku punktu odniesienia można odnaleźć wcześniej nieoptymalne decyzje podejmowane w ostatnich zmianach kodu.

Dodanie testów i bram jakości do potoku wdrażania i testowania pomaga uniknąć wdrażania niezrównomionych rozwiązań, przyczyniając się do obniżenia emisji.

Dopasowanie Green Software Foundation: Efektywność energetyczna

Zalecenie:

  • Monitorowanie alokacji procesora CPU i pamięci podczas uruchamiania testów integracji lub testów jednostkowych.
  • Znajdź nietypowo wysokie zużycie zasobów w kodzie aplikacji i skoncentruj się na ograniczeniu tych obszarów.
  • Konfigurowanie alertów lub niepowodzeń testów w przypadku przekroczenia ustalonych wartości punktu odniesienia, co pomaga uniknąć wdrażania obciążeń niezrównomionych.
  • Rozważmy ten kompromis: w miarę wzrostu aplikacji punkt odniesienia może wymagać odpowiedniego przesunięcia, aby uniknąć niepowodzenia testów podczas wprowadzania nowych funkcji.

Następny krok

Zapoznaj się z zagadnieniami dotyczącymi projektowania procedur operacyjnych.