Zalecenia dotyczące planowania pojemności

Dotyczy tego zalecenia dotyczącego listy kontrolnej wydajności platformy Azure Well-Architected Framework:

PE:02 Przeprowadzanie planowania pojemności. Planowanie pojemności należy wykonać przed przewidywanymi zmianami wzorców użycia. Przewidywane zmiany obejmują zmiany sezonowe, aktualizacje produktów, kampanie marketingowe, wydarzenia specjalne lub zmiany regulacyjne.

W tym przewodniku opisano zalecenia dotyczące planowania pojemności. Planowanie pojemności odnosi się do procesu określania zasobów wymaganych do spełnienia celów wydajności obciążenia. Obejmuje to szacowanie ilości zasobów obliczeniowych, takich jak procesor CPU, pamięć, magazyn i przepustowość sieci wymagana do obsługi wymagań dotyczących wydajności obciążenia. Planowanie pojemności pomaga uniknąć aprowizacji i zapewnia, że obciążenie ma wystarczające zasoby do obsługi oczekiwanych wymagań dotyczących obciążeń bez pogorszenia wydajności lub wąskich gardeł. Pomaga również zapobiegać nadmiernej aprowizacji i niepotrzebnym kosztom. Brak planowania pojemności może prowadzić do problemów z wydajnością, wąskich gardeł zasobów, zwiększonych kosztów, nieefektywnej alokacji, wyzwań związanych ze skalowalnością i nieprzewidywalnej wydajności obciążeń.

Definicje

Okres Definicja
Planowanie pojemności Proces przewidywania zasobów, których obciążenie wymaga spełnienia celów wydajności.
Wymagania funkcjonalne Funkcje i możliwości obciążenia muszą spełniać zamierzony cel.
Wymagania techniczne Kod i infrastruktura wymagana do spełnienia wymagań funkcjonalnych.
Analiza trendów Analiza danych historycznych w celu prognozowania przyszłego zapotrzebowania.

Kluczowe strategie projektowania

Planowanie pojemności to proces przyszłościowy, który obejmuje podejmowanie decyzji na podstawie przewidywanych wymagań i wzorców obciążeń. Jego celem jest zoptymalizowanie wydajności obciążenia zarówno w scenariuszach ciągłego, jak i szczytowego obciążenia. Dzięki zrozumieniu zmian w użyciu, takich jak sezonowe zmiany lub wydania produktów, można strategicznie przydzielić zasoby, uniemożliwiając obciążenie systemu w okresach wysokiego zapotrzebowania. Ta proaktywna strategia zmniejsza zakłócenia i zwiększa wydajność. Analizując wcześniejsze trendy użycia i dane wzrostu, można prognozować krótkoterminowe i długoterminowe potrzeby. Możesz wskazać potencjalne wąskie gardła i problemy ze skalowaniem, zapewniając spójną i wydajną wydajność obciążenia.

Zbieranie danych pojemności

Zbieranie danych użycia obciążenia wiąże się z zbieraniem i analizowaniem informacji na temat sposobu używania zasobów przez obciążenie. Należy zbierać dane dotyczące wzorców historycznych dla istniejących obciążeń i miar predykcyjnych dla nowych obciążeń. Ten proces pomaga przetłumaczyć cele biznesowe na wymagania techniczne i ma zasadnicze znaczenie dla prognozowania pojemności. Rozważ następujące rekomendacje:

Omówienie istniejącego obciążenia

Zrozumienie istniejącego obciążenia do planowania pojemności obejmuje analizowanie danych historycznych związanych z tym, jak obciążenie korzysta z zasobów. Obejmuje ona metryki, takie jak wykorzystanie zasobów, dane wydajności i wzorce obciążenia. Zrozumienie to zapewnia wydajną alokację zasobów, przekłada cele biznesowe na wymagania techniczne i pomaga zidentyfikować potencjalne wąskie gardła.

  • Omówienie danych: Przejrzyj dostępne dane historyczne i poznaj jego strukturę, format i istotność planowania pojemności. Przegląd może obejmować metryki wykorzystania zasobów, wzorce obciążenia, metryki wydajności i inne istotne punkty danych. Poznaj procesy biznesowe i krytyczność aplikacji. Zidentyfikuj szczytowe czasy użycia, obciążenie użytkownika, stawki transakcji i inne istotne metryki.

  • Czyszczenie i wstępne przetwarzanie danych: przygotuj dane do analizy, usuwając wszelkie niespójności, błędy lub wartości odstające. Przygotowanie danych może obejmować techniki czyszczenia danych, takie jak imputacja danych, obsługa brakujących wartości lub normalizacja.

  • Zidentyfikuj kluczowe metryki: zidentyfikuj metryki, które są istotne dla planowania pojemności. Metryki mogą obejmować użycie procesora CPU, użycie pamięci, przepływność sieci i czasy odpowiedzi.

  • Identyfikowanie wąskich gardeł: mierzenie przepływności i czasów odpowiedzi w celu zidentyfikowania określonych składników systemu, które mogą stać się wąskimi gardłami w miarę wzrostu obciążenia. Żądania na sekundę i użycie procesora CPU bazy danych mogą być dobrymi wskaźnikami wydajności.

  • Wizualizowanie danych: tworzenie wizualizacji, takich jak wykresy lub wykresy, w celu uzyskania lepszego wglądu w dane historyczne. Wizualizacje mogą ułatwić identyfikowanie wzorców, trendów i anomalii w danych w celu zapewnienia jaśniejszego zrozumienia zachowania obciążenia.

Informacje o nowym obciążeniu

Zrozumienie nowego obciążenia do planowania pojemności odnosi się do przewidywania wymagań dotyczących zasobów przyszłego zadania bez danych historycznych. Przewidywanie przyszłych potrzeb nowego obciążenia bez danych historycznych może być trudniejsze. Ten proces zapewnia efektywne przydzielanie zasobów i dopasowywanie alokacji do celów obciążenia po wprowadzeniu obciążenia. Rozważ następujące rekomendacje:

  • Badania rynku: Prowadzenie badań rynkowych w celu zrozumienia popytu na podobne produkty lub usługi może zapewnić cenny wgląd w potencjalne zapotrzebowanie na nowe obciążenie. Badania mogą obejmować analizowanie trendów rynkowych, prowadzenie ankiet lub badanie ofert konkurentów.

  • Ocena ekspertów: Dane wejściowe od ekspertów lub specjalistów, którzy mają doświadczenie w branży, mogą pomóc oszacować zapotrzebowanie na nowe obciążenie. Ich wiedza i szczegółowe informacje mogą dostarczyć cennych danych wejściowych do prognozowania.

  • Projekty pilotażowe lub prototypy: projekty pilotażowe lub prototypy na małą skalę mogą pomóc w zbieraniu danych i opinii w czasie rzeczywistym. Następnie możesz użyć tych danych, aby poinformować proces planowania pojemności i dostosować prognozowane zapotrzebowanie.

  • Zewnętrzne źródła danych: zewnętrzne źródła danych, takie jak raporty branżowe, badania rynkowe lub ankiety klientów, mogą dostarczać dodatkowe informacje na temat szacowania zapotrzebowania na nowe obciążenie. Te źródła mogą oferować cenne informacje na temat preferencji klientów, trendów rynkowych i potencjalnych czynników popytu.

Prognozowanie zapotrzebowania

Prognozowanie zapotrzebowania obejmuje użycie danych obciążeń w celu przewidywania przyszłych potrzeb dotyczących usługi lub produktu. Jest to niezbędne do planowania pojemności w celu zapewnienia efektywnej alokacji zasobów, przewidywania wzorców wzrostu i przygotowania do potencjalnych wzrostów zapotrzebowania. Podczas prognozowania przyszłego zapotrzebowania dane są używane do uzyskiwania poczucia przyszłych potrzeb. Do danych potrzebnych do prognozowania przyszłego zapotrzebowania stosuje się analizę statystyczną, analizę trendów lub techniki modelowania predykcyjnego. Metody te uwzględniają historyczne lub przewidywane wzorce i projektują je w przyszłości, aby zapewnić oszacowanie oczekiwanego zapotrzebowania na obciążenie. Aby prognozować zapotrzebowanie, rozważ następujące strategie:

Konto dla różnych scenariuszy

Podczas planowania pojemności należy zaplanować różne scenariusze, które mogą wystąpić. To planowanie powinno obejmować zarówno przewidywalne wzorce wzrostu, jak i nieoczekiwane wzrosty zapotrzebowania. Wzorce użycia mogą rosnąć lub zmniejszać. Mogą być organiczne (mniej lub bardziej użytkownicy) lub nieorganiczne (zdarzenie lub zdarzenie bezpieczeństwa). Należy przeprowadzić planowanie pojemności przed zmianami użycia w kluczowych momentach:

  • Projektowanie (przewidywanie)
  • Regularne skoki (8:00 w pośpiechu logowania)
  • Uruchamianie (walidacja przewidywania)
  • Zmiana modelu biznesowego
  • Przejęcie lub fuzja
  • Wypychanie marketingowe
  • Zmiana sezonowa
  • Uruchamianie funkcji
  • Okresowo

Korzystanie z technik przewidywania

Prognozowanie przyszłego zapotrzebowania na usługę lub produkt obejmuje użycie technik, takich jak analiza statystyczna, analiza trendów i modelowanie predykcyjne. Poniżej przedstawiono omówienie sposobu używania tych technik:

  • Analiza statystyczna: Metody statystyczne ułatwiają odkrywanie wzorców i relacji w danych historycznych. Te wzorce umożliwiają prognozowanie przyszłego zapotrzebowania. Możesz użyć technik, takich jak analiza szeregów czasowych, analiza regresji i średnie ruchome, aby identyfikować trendy, sezonowość i inne wzorce w danych.

  • Analiza trendów: analiza trendów obejmuje badanie danych historycznych w celu identyfikowania spójnych wzorców i ekstrapolowania tych wzorców w przyszłości. Jeśli na przykład zapotrzebowanie na obciążenie wzrosła o 10 procent w ciągu ostatniego roku, możesz przewidzieć kontynuację tego trendu. Podczas analizowania historycznych danych zapotrzebowania w danym okresie można zidentyfikować trendy wzrostu lub redukcji. Użyj tych trendów jako podstawy do prognozowania przyszłego zapotrzebowania. Analiza trendów może również identyfikować skutki jednorazowych zdarzeń, które powodują szybkie zmiany ruchu (nieorganiczne). Na przykład wydania funkcji mogą stale zwiększać zapotrzebowanie o 5 procent. Jeśli masz cztery główne wersje rocznie, za każdym razem należy zaplanować wzrost o 5 procent.

  • Modelowanie predykcyjne: Modelowanie predykcyjne to proces tworzenia modeli matematycznych, które używają danych historycznych i innych istotnych zmiennych do przewidywania na temat przyszłego zapotrzebowania. Możesz użyć technik, takich jak algorytmy uczenia maszynowego, sieci neuronowe lub drzewa decyzyjne. Te modele mogą uwzględniać wiele czynników i zmiennych, aby zapewnić dokładniejsze prognozy.

Dopasowywanie prognoz do celów obciążeń

Dostosowanie prognoz do celów obciążeń obejmuje dostosowanie modeli pojemności predykcyjnej w celu zapewnienia, że spełniają określone cele i wymagania danego obciążenia. Dzięki temu zasoby są odpowiednio aprowidowane, uniemożliwiając zarówno niedostateczne wykorzystanie, jak i potencjalne przeciążenia obciążeń. Jeśli na przykład chcesz obsługiwać interfejs API dla 1 miliona użytkowników w celu przekazania 1 MB plików w ciągu sekundy, ale bieżące dane pokazują powolne szybkości zapisu, musisz dostosować system. Ważne jest, aby porozmawiać z uczestnikami projektu, aby zrozumieć wymagania obciążenia. Upewnij się, że twoje plany są zgodne z obietnicami (SLA) dostawców usług. Takie dopasowanie zapewnia, że pojemność spełnia oczekiwane zapotrzebowanie i pomaga wskazać obszary systemu, które mogą wymagać zmian.

Określanie wymagań dotyczących zasobów

Określenie wymagań dotyczących zasobów związanych z planowaniem pojemności obejmuje ocenę zasobów, które należy spełnić prognozowane zapotrzebowanie. Jeśli na przykład aplikacja przewiduje wzrost liczby użytkowników o 50% podczas kampanii promocyjnej, może być konieczne przydzielenie większej liczby wystąpień w chmurze lub dostosowanie parametrów skalowania automatycznego w celu obsługi zwiększonego obciążenia.

Obciążenie może mieć wiele zasobów, więc nie ma żadnej metryki do obserwowania w celu określenia wymagań dotyczących zasobów. Aby uzyskać znaczące wyniki, musisz zmierzyć pojemność na poziomie zasobu. Szacowanie oczekiwanego zapotrzebowania na zasoby na podstawie danych historycznych, trendów rynkowych i prognoz biznesowych. Weź pod uwagę liczbę transakcji, równoczesnych użytkowników lub inne istotne metryki.

Na podstawie prognozowanego zapotrzebowania oblicz zasoby potrzebne do spełnienia tego zapotrzebowania. Rozważ czynniki, takie jak pojemność serwera, przepustowość sieci, pojemność magazynu i personel:

  • Pojemność serwera: określ wymaganą pojemność serwera na podstawie szacowanej liczby współbieżnych użytkowników lub transakcji. Należy wziąć pod uwagę czynniki, takie jak procesor CPU, pamięć i miejsce na dysku, aby upewnić się, że serwery mogą obsługiwać oczekiwane obciążenie.

  • Przepustowość sieci: oceń przepustowość sieci, która jest potrzebna do obsługi przewidywanego poziomu ruchu. Należy uwzględnić zarówno szybkość transferu danych przychodzących, jak i wychodzących, aby zapewnić bezproblemową i wydajną komunikację między serwerami i klientami.

  • Pojemność magazynu: oszacowanie ilości danych generowanych przez obciążenie lub procesów podczas prognozowanego zapotrzebowania. Należy wziąć pod uwagę czynniki, takie jak rozmiar bazy danych, wymagania dotyczące magazynu plików i wszelkie inne potrzeby związane z magazynem danych specyficzne dla aplikacji.

  • Personel: oceń zasoby ludzkie wymagane do zarządzania infrastrukturą i jej konserwowania, obsługi obsługi klienta, przeprowadzania konserwacji systemu i zapewnienia bezproblemowych operacji. Weź pod uwagę czynniki, takie jak dystrybucja obciążeń, zestaw umiejętności i wymagana wiedza.

Omówienie ograniczeń zasobów

Zasoby w obciążeniu mają ograniczenia wydajności. Ograniczenia wydajności dotyczą usług i jednostek SKU w ramach każdej usługi. Musisz zrozumieć ograniczenia zasobów w obciążeniu i uwzględnić te ograniczenia w decyzjach projektowych. Na przykład należy wiedzieć, czy ograniczenia zasobów wymagają zmiany jednostek SKU, czy całkowitej zmiany zasobów.

Należy również zidentyfikować osiągalne limity. Odnosi się do określania maksymalnych progów lub granic obciążenia. Te limity mają zwykle zastosowanie do infrastruktury (obliczeniowej, pamięci, magazynu, sieci), aplikacji (współbieżnych Połączenia z bazą danych, czasów odpowiedzi, dostępności), usługi (żądań na sekundę) i skalowania. Gdy planowanie pojemności identyfikuje osiągalne limity, należy zmodyfikować obciążenie przed utworzeniem problemu z wydajnością. Punkty odniesienia wydajności, ciągłe monitorowanie i testowanie są niezbędne do weryfikowania limitów i rozwiązania.

Kompromis: Błędne planowanie pojemności może prowadzić do nadmiernej aprowizacji lub niedostatecznej aprowizacji zasobów. Nadmierna aprowizacja prowadzi do wyższych kosztów. Niedostateczna aprowizacja może spowodować niską wydajność. Spróbuj znaleźć właściwą równowagę.

Ułatwienia dla platformy Azure

Zbieranie danych pojemności i prognozowanie zapotrzebowania: usługa Azure Monitor umożliwia zbieranie i analizowanie danych telemetrycznych z aplikacji i infrastruktury. Obsługuje ona monitorowanie różnych zasobów platformy Azure, w tym maszyn wirtualnych, kontenerów i kont magazynu. Kluczowe narzędzia obejmują usługę Application Insights i usługę Log Analytics. Konfigurując zbieranie danych i definiując metryki i dzienniki, które chcesz monitorować, możesz zebrać cenne dane obciążenia na potrzeby analizy. Na potrzeby monitorowania sieci połącz usługę Azure Monitor z usługą Azure Network Watcher, usługą Azure Monitor network insights i monitorowaniem usługi Azure ExpressRoute.

Usługa Azure Monitor umożliwia analizowanie danych historycznych i stosowanie technik prognozowania w celu przewidywania przyszłych trendów obciążeń i wymagań dotyczących pojemności. Możesz wygenerować prognozy, które mogą pomóc w planowaniu pojemności. Te prognozy pomagają oszacować pojemność serwera, przepustowość sieci, pojemność magazynu i inne potrzeby dotyczące zasobów przy użyciu przewidywanych wzorców zapotrzebowania.

Określanie wymagań dotyczących zasobów: ponieważ zapewniają szeroką gamę konfiguracji, narzędzia i usługi platformy Azure mogą pomóc w zdefiniowaniu wymagań technicznych. Wymagania dotyczące obciążenia można dostosować do dostępnych zasobów platformy Azure, zapewniając wybór odpowiednich składników i ustawień, aby spełnić potrzeby funkcjonalne.

Omówienie ograniczeń zasobów: platforma Azure udostępnia dokumentację i zasoby, które ułatwiają zrozumienie ograniczeń wydajności różnych usług i jednostek SKU platformy Azure. Biorąc pod uwagę te ograniczenia, można pomóc w podejmowaniu świadomych decyzji projektowych i optymalizować architekturę obciążenia pod kątem wydajności i opłacalności.

Platforma Azure oferuje opcje skalowalności, takie jak skalowanie automatyczne, które mogą automatycznie dostosowywać zasoby na podstawie zapotrzebowania na obciążenia. Skalowanie w pionie można zwiększyć pojemność zasobu przy użyciu większego rozmiaru maszyny wirtualnej lub skalować w poziomie przez dodanie nowych wystąpień zasobu. Usługi platformy Azure, które mają funkcje skalowania automatycznego, mogą automatycznie skalować w poziomie, aby zapewnić pojemność podczas szczytowych obciążeń i powrócić do normalnego momentu spadku obciążenia. Istnieją limity skalowania w ramach konfiguracji i usług, o których należy pamiętać. Możesz przeczytać dokumentację lub uruchomić testy. Platforma Azure udostępnia narzędzia, takie jak testowanie obciążenia platformy Azure, które mogą symulować obciążenie i różne wzorce użycia, aby ułatwić zbieranie odpowiednich danych dotyczących obciążenia.

Lista kontrolna dotycząca wydajności

Zapoznaj się z pełnym zestawem zaleceń.