Projektowanie pod kątem spełnienia wymagań dotyczących pojemności

Ukończone
Zapewnij wystarczającą podaż, aby sprostać przewidywanemu zapotrzebowaniu.

Ważne jest, aby aktywnie mierzyć wydajność. Mierzenie wydajności obejmuje pomiar linii bazowych i wstępne zrozumienie, które składniki systemu mogą stanowić wyzwanie. Można to osiągnąć bez przeprowadzania pełnego testu wydajnościowego lub poprzez szczegółową optymalizację. Wykonując te początkowe kroki, należy ustanowić podstawę efektywnego zarządzania wydajnością na wczesnym etapie cyklu projektowania.

Zbadaj system jako całość, zamiast skupiać się na poszczególnych składnikach. Unikaj dostrajania na tym etapie. Wprowadzanie szczegółowych ulepszeń wydajności powoduje kompromisy w innych obszarach. W miarę przechodzenia przez cykl życia i rozpoczynania testowania akceptacyjnego użytkowników lub przechodzenia do środowiska produkcyjnego można szybko zidentyfikować obszary wymagające dalszej optymalizacji.

Przykładowy scenariusz

Firma Contoso Manufacturing opracowała wewnętrznie używaną aplikację mikrousług opartą na platformie Java Spring, która służy do monitorowania i optymalizowania procesów produkcyjnych. Zespół ds. obciążeń jest w trakcie migracji aplikacji, obecnie hostowanej lokalnie na platformę Azure.

Aplikacja hostowana na platformie Azure zostanie utworzona w usługach Azure Spring Apps, Azure Database for MySQL i Azure IoT Hub. Firma Contoso ma połączenie usługi ExpressRoute z platformą Azure.

Efektywne projektowanie obciążenia

Wybierz odpowiednie zasoby w stosie technologii, co umożliwia osiągnięcie celów dotyczących wydajności i integrację z systemem. Rozważ funkcje, które mogą spełnić wymagania dotyczące skalowalności i znaleźć właściwą równowagę między alokacją zasobów a wymaganiami systemowymi, aby efektywnie obsługiwać nieoczekiwane wzrosty.

Analizując różne możliwości zasobów, upewnij się, że każdy składnik przyczynia się do ogólnej funkcjonalności i wydajności systemu, a także zidentyfikować funkcje skalowania, z których można korzystać.

Odpowiednie ustalanie rozmiaru zasobów może spełniać zmiany zapotrzebowania bez nadmiernej aprowizacji, co prowadzi do oszczędności kosztów.

Wyzwanie firmy Contoso

  • Istniejąca lokalna infrastruktura środowiska aplikacji jest w pełni zarządzana przez firmę Contoso, co powoduje znaczne obciążenie dla zespołu. Obecnie aprowizują i obsługują serwery, sieci i magazyn, a także konfigurują i aktualizują środowisko uruchomieniowe usługi Java Spring oraz wszystkie zależności.
  • Zespół z niecierpliwością oczekuje na migrację do modelu PaaS z usługą Azure Spring Apps, co pozwoli zespołowi skupić się na większej ilości energii na upewnieniu się, że aplikacja dostarcza zamierzone wartości biznesowe i poświęca mniej czasu na zarządzanie infrastrukturą.
  • Ta aplikacja ma kluczowe znaczenie dla firmy Contoso i ma ścisłe wymagania dotyczące wydajności, dlatego muszą upewnić się, że wybory technologiczne dokonane w ramach migracji pozwolą im spełnić te wymagania.

Stosowanie podejścia i wyników

  • Po porównaniu różnych dostępnych planów zespół decyduje się na plan Usługi Azure Spring Apps Standard, który zapewnia w pełni zarządzaną usługę dla aplikacji Spring Boot zoptymalizowaną pod kątem ruchu produkcyjnego. W przypadku maksymalnie 500 wystąpień na aplikację plan standardowy może zapewnić wystarczającą pojemność obliczeniową dla maksymalnego przewidywanego użycia.
  • Ponadto usługę można skonfigurować do skalowania w poziomie zgodnie z potrzebami i skalować w poziomie zasoby obliczeniowe, gdy dodatkowa pojemność nie jest potrzebna.
  • Zespół spojrzał na plan Enterprise, który jest w stanie skalować w górę do 1000 wystąpień na aplikację, ale zdecydował, że nie będzie potrzebować tej ilości pojemności w tym momencie. Są również pewni, że nie potrzebują poziomu pomocy technicznej oferowanych przez plan Enterprise ani reszty jego ekskluzywnych funkcji.

Prawidłowe prognozowanie potrzeb dotyczących pojemności

Planowanie pojemności na podstawie zapotrzebowania i możliwości wybranych zasobów w celu wzbogacania modelu wydajności. Użyj technik modelowania predykcyjnego, aby prognozować przewidywane zmiany pojemności, które mogą wystąpić z przewidywalnymi i nieoczekiwanymi zmianami. Zdefiniuj cele wydajności, które można przetłumaczyć na wymagania techniczne.

Stosując to podejście, można efektywnie korzystać z zasobów i sprostać zapotrzebowaniu bez nadmiernej aprowizacji, co pozwala uniknąć niepotrzebnych kosztów. Ponadto pomoże ci zrozumieć, w jaki sposób wybory projektowe wpływają na wydajność.

Wyzwanie firmy Contoso

  • Aby zmaksymalizować efektywne wykorzystanie maszyn produkcyjnych, linia produkcyjna firmy Contoso działa zgodnie z cyklicznym harmonogramem, produkując różne produkty o różnych porach dnia.
  • Każdy produkt wymaga różnych operacji, a tym samym różnych potrzeb obliczeniowych od aplikacji sterującej. Podczas przełączania między produktami aplikacja kontrolna musi wykonywać różne zadania wymagające zwiększonej pojemności obliczeniowej, takie jak analizowanie danych z poprzedniego przebiegu produkcyjnego i aktualizowanie algorytmów kontroli dla maszyn.

Stosowanie podejścia i wyników

  • Aby sprostać większemu zapotrzebowaniu w okresach zmiany, zespół najpierw identyfikuje przepływy obsługujące funkcje zmiany, dokumentując wymagania dotyczące wydajności i szacując woluminy transakcji na podstawie lokalnej wersji aplikacji. Uzbrojony w te dane zespół będzie szacował pojemność obliczeniową potrzebną przez mikrousługi będące częścią przepływów docelowych.
  • Skalowanie automatyczne jest skonfigurowane dla tych składników, zapewniając, że dodatkowe zasoby są aprowizowane przed okresem przełączania i zwalniane po zakończeniu zadań.
  • Ustawienia skalowania automatycznego zostaną dostosowane przed wdrożeniem aplikacji w środowisku produkcyjnym na podstawie rzeczywistej wydajności w nowym środowisku.

Weryfikacja wdrożenia koncepcji

Zaimplementuj weryfikację koncepcji (POC), która weryfikuje wymagania techniczne i wybory projektowe.

Weryfikacja koncepcji ma kluczowe znaczenie w weryfikacji projektu w celu określenia, czy system może spełnić cele wydajności i czy te cele są realistyczne. Na podstawie przewidywanego obciążenia możesz sprawdzić, czy przewidywana pojemność może spełniać cele dotyczące wydajności.

Sprawdź również wpływ kosztów na wybory projektowe.

Wyzwanie firmy Contoso

  • Podczas opracowywania zespół przeprowadza obszerne testy obciążeniowe i wydajnościowe funkcji aplikacji przy użyciu symulatorów urządzeń i korzysta z tych informacji w celu zoptymalizowania konfiguracji skalowania automatycznego.
  • Jednym z aspektów, które mogą mieć wpływ na skuteczność konfiguracji skalowania automatycznego, jest potencjalne opóźnienie sieci komunikujące się ze środowiska usługi Azure Spring Apps do urządzeń IoT na hali produkcyjnej, które jest połączone z platformą Azure za pośrednictwem usługi ExpressRoute. Zespół spekuluje, że opóźnienie będzie wyższe na platformie Azure niż w przypadku wersji lokalnej, jeśli aplikacja, i że opóźnienie może również mieć wpływ na inne czynniki, takie jak pora dnia lub lokalizacja urządzenia.
  • Zwiększenie opóźnienia prawdopodobnie będzie miało wpływ na wolumin transakcji, który może przetworzyć każde wystąpienie mikrousługi.

Stosowanie podejścia i wyników

  • Zespół decyduje się wdrożyć weryfikację koncepcji na platformie Azure, aby zweryfikować hipotezy i zebrać metryki, których można użyć do optymalizacji konfiguracji. Tworzą testową aplikację Platformy Azure Spring, aby komunikować się z urządzeniami IoT rozmieszczonymi na całej hali produkcyjnej. Urządzenia IoT są połączone z siecią lokalną i są zarejestrowane w usłudze Azure IoT Hub. Aplikacja testowa losowo łączy się z urządzeniami przez cały dzień, wysyłając proste polecenie ping i rejestrując czas potrzebny na odebranie odpowiedzi.
  • Dane przechwycone podczas tego weryfikacji koncepcji, w połączeniu z wynikami testowania obciążenia, umożliwią zespołowi dokładniejsze oszacowanie wymaganej pojemności obliczeniowej, ponieważ przygotowują się do początkowego uruchomienia produkcyjnego.
  • Zespół analizuje również sposoby dalszego ulepszania przypadków testowych używanych do testowania obciążenia w celu symulowania bardziej realistycznych czasów odpowiedzi w oparciu o wnioski z weryfikacji koncepcji.

Sprawdź swoją wiedzę

1.

W kontekście projektowania pod kątem spełnienia wymagań dotyczących pojemności, jaki jest jeden ze sposobów wyboru odpowiednich zasobów dla obciążenia?

2.

Do czego należy używać modelowania predykcyjnego?

3.

Co to jest jedna hipoteza, którą firma Contoso próbowała zweryfikować przy użyciu wdrożenia weryfikacji koncepcji?