Udostępnij przez


Strategie architektury dotyczące planowania pojemności

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

PE:02 Przeprowadź planowanie pojemności. Planowanie pojemności należy wykonać przed przewidywanymi zmianami w wzorcach 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 osiągnięcia celów wydajności w zakresie 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ąć niedostatecznej aprowizacji i zapewnia, że obciążenie ma wystarczające zasoby do obsługi oczekiwanych wymagań związanych z obciążeniami 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ększenia kosztów, nieefektywnej alokacji, wyzwań związanych ze skalowalnością i nieprzewidywalnej wydajności obciążeń.

Definicje

Termin Definicja
Planowanie zdolności produkcyjnych Proces przetwarzania zasobów przez obciążenia musi spełniać swoje wartości docelowe wydajności.
Wymagania funkcjonalne Funkcje i możliwości, które są w tym zakresie dostępne, muszą działać zgodnie ze swoim celem.
Wymagania techniczne Kod i infrastruktura wymagana do spełnienia wymagań funkcjonalnych.
Analiza trendów Analiza danych historycznych mająca na celu prognozowanie przyszłego zapotrzebowania.

Planowanie pojemności to proces przyszłościowy, który obejmuje podejmowanie decyzji w oparciu o oczekiwania i wzorce obciążenia. Jego cel to optymalizacja wydajności obciążenia zarówno w scenariuszach obciążenia ciągłych, jak i szczytowych. Zrozumienie zmian użycia, takich jak zmiany sezonowe lub premiery produktów, umożliwia przydzielanie zasobów w sposób strategiczny, co zapobiega utracie danych przez system w okresach dużego zapotrzebowania. Ta proaktywna strategia pozwala zmniejszyć zakłócenia i zwiększa wydajność. Analizowanie trendów użycia w przeszłości i danych dotyczących rozwoju umożliwia prognozowanie potrzeb krótko- i długoterminowych. Można wskazać potencjalne wąskie gardła i problemy ze skalowaniem, zapewniając spójną i efektywną wydajność prac.

Zbieranie danych pojemności

Zbieranie danych wykorzystania obciążenia wiąże się ze zbieraniem i analizowaniem informacji na temat sposobu używania zasobów przez obciążenie. Należy zbierać dane o wzorcach historycznych dla istniejących obciążeń i środki zapobiegawcze dla nowych obciążeń. Ten proces pomaga przetłumaczyć cele biznesowe na wymagania techniczne i jest niezbędny do prognozowania wydajności. Rozważmy następujące zalecenia:

Zrozumienie istniejących prac

Zrozumienie istniejącego obciążenia planowania wydajności obejmuje analizowanie danych historycznych w odniesieniu do tego, w jaki sposób obciążenia wykorzystuje zasoby. Obejmuje to metryki, takie jak wykorzystanie zasobów, dane dotyczące wydajności i wzorce obciążenia. Zrozumienie to pozwala sprawniej określić zasoby, przetłumaczyć cele biznesowe na wymagania techniczne i pomóc w identyfikowaniu potencjalnych klientów.

  • Zrozumienie danych: przeglądanie dostępnych danych historycznych i zrozumienie ich struktury, formatu i znaczenia dla planowania wydajności. Przegląd może obejmować metryki wykorzystania zasobów, wzorce obciążenia, metryki wydajności i inne odpowiednie punkty danych. Zrozumienie procesów biznesowych i krytyczności aplikacji. Zidentyfikuj szczytowe godziny używania, obciążenie użytkowników, wskaźniki transakcji i inne odpowiednie 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ć technikę oczyszczenia danych, takie jak przypisywanie danych, obsługa brakujących wartości lub normalizacja.

  • Zidentyfikuj kluczowe metryki: zidentyfikuj metryki odpowiednie dla planowania wydajnoś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ą pomóc w identyfikowaniu wzorców, trendów i anomalii danych w celu lepszego zrozumienia zachowania obciążenia.

Zrozumienie nowego obciążenia

Zrozumienie nowego obciążenia pod kątem planowania wydajności dotyczy przewidywania wymagań zasobów w przyszłości bez danych historycznych. Przewidywanie przyszłych potrzeb nowego obciążenia bez danych historycznych może być trudniejsze. Dzięki temu zasoby są efektywnie przydzielane i wyrównane z celami obciążenia po wprowadzeniu obciążenia. Rozważmy następujące zalecenia:

  • Badania rynkowe: 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 eksperta: informacje od ekspertów lub specjalistów z branży mogą pomóc w szacowaniu zapotrzebowania na nowe obciążenie. Ich wiedza i wiedza specjalistyczna mogą dostarczyć cennych informacji na temat prognoz.

  • Pilotaż projektów lub prototypów: małe projekty pilotażowe lub prototypy mogą pomóc Ci zbierać informacje w czasie rzeczywistym i powiązane opinie. Można następnie użyć tych danych do wspierania procesu planowania wydajności i dostosowania prognozowanego żądania.

  • Zewnętrzne źródła danych: zewnętrzne źródła danych, takie jak raporty branżowe, badania rynku lub ankiety dla klientów, mogą dostarczyć dodatkowych informacji na temat emulowania nowego obciążenia. Źródła te mogą oferować cenne informacje na temat preferencji klientów, trendów rynku i potencjalnych czynników wpływających na zapotrzebowanie.

Prognoza popytu

Prognozowanie popytu obejmuje użycie danych w zakresie obciążenia w celu prognozowania przyszłych potrzeb dotyczących usług lub produktów. Kluczowe znaczenie dla planowania wydajności ma zapewnienie efektywnego planowania zasobów, przewidywanie wzorców rozwoju i przygotowanie do potencjalnych wzrostów popytu. Podczas prognozowania przyszłego popytu na usługi są wykorzystywane dane, które mają sens dla przyszłych potrzeb. Do danych, które są prognozowane w przyszłości, stosuje się analizy statystyczne, analizy trendów lub techniki modelowania predykcyjnego. Te metody biorą pod uwagę wzorce historyczne lub przewidywane i prognozowanie ich w przyszłości, aby przedstawić prognozy oczekiwanego obciążenia. Aby prognozować zapotrzebowanie, rozważ następujące strategie:

Uwzględnienie 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 rozwoju, jak i nieoczekiwane zapotrzebowanie. Wzorce użycia mogą się rozwijać lub zmniejszać. Mogą być one organiczne (mniej lub więcej użytkowników) lub nieorganiczne (zdarzenie lub zdarzenie zabezpieczeń). Należy przeprowadzić planowanie pojemności przed zmianami użycia w kluczowych momentach:

  • Projekt (przewidywanie)
  • Regularne wzrosty (wzrost liczby operacji logowania o 8:00)
  • Uruchomienie (sprawdzanie poprawności przewidywania)
  • Zmiana modelu biznesowego
  • Przejęcie lub fuzja
  • Zintensyfikowanie działań marketingowych
  • Zmiana sezonowa
  • Uruchomienie funkcji
  • Okresowo

Używanie technik przewidywania

Prognozowanie przyszłego zapotrzebowania na usługę lub produkt obejmuje wykorzystanie technik, takich jak analizy statystyczne, analizy trendów i modelowanie predykcyjne. Oto omówienie tych technik:

  • Analiza statystyczna: Metody statystyczne mogą pomóc odkryć wzorce i relacje w danych historycznych. Tych wzorców można użyć do prognozowania przyszłego zapotrzebowania. W celu zidentyfikowania trendów, sezonowości i innych wzorców w danych można użyć technik, takich jak analiza serii czasowej, analiza regresji i średnie ruchome.

  • Analiza trendów: analiza trendów obejmuje badanie danych historycznych w celu zidentyfikowania spójnych wzorców i ekstrapolowania tych wzorców w przyszłości. Jeśli na przykład zapotrzebowanie na obciążenie w ciągu ostatniego roku zwiększa się o 10 procent, można przewidywać kontynuację tego trendu. Podczas analizowania danych historycznych dotyczących żądania w czasie można identyfikować trendy wzrostu lub redukcji. Użyj tych trendów jako podstawy do prognozowania przyszłego zapotrzebowania. Analiza trendów może również identyfikować wyniki zdarzeń, które powodują szybkie zmiany w ruchu (nieorganiczne). Na przykład wydania z funkcjami mogą spójnie zwiększyć zapotrzebowanie o 5 procent. Jeśli w roku są cztery główne wydania, należy za każdym razem zaplanować 5-procentowy przyrost.

  • Modelowanie predykcyjne: modelowanie predykcyjne jest procesem tworzenia modeli matematycznych, które używają danych historycznych i innych odpowiednich zmiennych do przewidywania przyszłych potrzeb. Można użyć technik, takich jak algorytmy uczenia maszynowego, sieci neuronowe lub drzewa decyzyjne. W tych modelach w celu zapewnienia bardziej dokładnych prognoz można uwzględnić wiele czynników i zmiennych.

Dopasowywanie prognoz do celów w zakresie obciążenia

Dostosowanie prognoz do celów w zakresie obciążenia obejmuje dostosowywanie predykcyjnych modeli wydajności, które mają zapewnić realizację określonych celów i wymaganiach danego obciążenia. To dopasowanie gwarantuje, że zasoby są odpowiednio aprowizowane, 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ą niską szybkość zapisu, musisz dostosować system. Najważniejsze jest, aby porozmawiać z interesariuszami w celu zrozumienia wymagań obciążenia. Upewnij się, że plany są zgodne z obietnicami (umowami SLA) dostawców usług. Dzięki temu wydajność odpowiada oczekiwanemu zapotrzebowaniu, a także ułatwia identyfikowanie obszarów systemu, które mogą wymagać zmian.

Określanie wymagań zasobów

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

Obciążenia mogą mieć wiele zasobów, więc nie ma jednej metryki do obserwowania w celu określenia wymagań zasobów. W celu uzyskania znaczących wyników należy mierzyć wydajność na poziomie zasobu. Szacuj oczekiwane zapotrzebowanie na zasoby na podstawie danych historycznych, trendów rynku i danych biznesowych. Należy wziąć pod uwagę liczbę transakcji, równoczesnych użytkowników i inne odpowiednie metryki.

Na podstawie prognozowanego zapotrzebowania można obliczyć zasoby potrzebne do spełnienia tego wymagania. 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. Rozważ czynniki, takie jak procesor CPU, pamięć i miejsce na dysku, aby upewnić się, że serwery mogą obsługiwać oczekiwane obciążenie.

  • Przepustowość sieci: należy oceniać przepustowość sieci, która jest potrzebna do obsługi oczekiwanego poziomu ruchu. Aby zapewnić bezproblemową i efektywną komunikację między serwerami a klientami, należy uwzględnić zarówno wskaźniki przychodzącego, jak i wychodzącego transferu danych.

  • Wydajność magazynu: szacuj ilość danych generowanych przez obciążenie lub procesy podczas prognozowanego popytu. Należy wziąć pod uwagę czynniki, takie jak rozmiar bazy danych, wymagania dotyczące przechowywania plików i inne wymagania dotyczące magazynu danych specyficzne dla danej aplikacji.

  • Personel: Ocenianie zasobów ludzkich wymaganych do zarządzania infrastrukturą i ich konserwowania, obsługi obsługi klienta, przeprowadzania konserwacji systemu i zapewniania 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 tym zakresie mają ograniczenia wydajności. Ograniczenia wydajności dotyczą usług i jednostek SKU w ramach każdej usługi. Należy poznać ograniczenia zasobów w obciążeniach i uwzględniać te ograniczenia w decyzjach dotyczących projektowania. 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 wyznaczania maksymalnych progów lub granic obciążenia. Te limity mają zwykle zastosowanie do infrastruktury (zasobów obliczeniowych, pamięci, magazynu, sieci), aplikacji (współbieżnych połączeń bazy danych, czasów odpowiedzi, dostępności), usługi (żądań na sekundę) i skalowania. Jeśli w planowaniu wydajności określono limity, które można osiągnąć, przed utworzeniem problemu wydajności należy zmodyfikować obciążenie. Plan bazowy wydajności, ciągłe monitorowanie i testowanie są niezbędne do sprawdzania poprawności ograniczeń i rozwiązania.

Kompromis: nieprawidłowe planowanie wydajności może prowadzić do nadmiernej lub niewystarczającej aprowizacji zasobów. Nadmierna aprowizacja prowadzi do wyższych kosztów. Zbyt mała ilość zasobów może spowodować słabą wydajność. Staraj się znaleźć odpowiednią równowagę.

Ułatwienia platformy Azure

Zbieranie danych dotyczących wydajności i prognozowanie popytu: Azure Monitor umożliwia zbieranie i analizowanie danych telemetrycznych z aplikacji i infrastruktury. Obsługuje monitorowanie różnych zasobów platformy Azure, w tym maszyn wirtualnych, kontenerów i kont magazynu. Kluczowe narzędzia to Application Insights i Log Analytics. Konfigurując kolekcję danych oraz definiując metryki i dzienniki, które chcesz monitorować, można gromadzić przydatne dane dotyczące obciążenia pracą na potrzeby analiz. Aby monitorować sieć, połącz Azure Monitor z Azure Network Watcher, szczegółowymi informacjami o sieci w Azure Monitor i monitorowaniem Azure ExpressRoute.

Azure Monitor umożliwia analizowanie danych historycznych i stosowanie technik prognozowania w celu przeanalizowania przyszłych trendów prac i wymagań dotyczących wydajności. Można tworzyć prognozy, które mogą pomóc w planowaniu pojemności. Prognozy te ułatwiają szacowanie wydajności serwera, przepustowości sieci, wydajności magazynu i innych zasobów za pomocą przewidywanych wzorców popytu.

W przypadku złożonych obciążeń analitycznych obejmujących duże historyczne zestawy danych zadania wyszukiwania usługi Log Analytics umożliwiają asynchroniczne wykonywanie zapytań dotyczących danych w okresach przechowywania długoterminowego bez wpływu na wydajność monitorowania w czasie rzeczywistym. Zadania wyszukiwania tworzą dedykowane tabele analizy dla wyników, co umożliwia oddzielenie obciążeń analitycznych od monitorowania operacyjnego. Ta funkcja jest szczególnie cenna w przypadku działań związanych z planowaniem pojemności, które wymagają głębokiej analizy historycznej, takiej jak analiza trendów i prognozowanie, przy zachowaniu optymalnej wydajności codziennych operacji monitorowania.

Określanie wymagań zasobów: ponieważ oferują szeroki zakres konfiguracji, narzędzia i usługi Azure mogą pomóc w określeniu wymagań technicznych. Wymagania dotyczące obciążenia można wyrównać z dostępnymi zasobami platformy Azure, co umożliwia wybranie odpowiednich składników i ustawień spełniających potrzeby funkcjonalne.

Omówienie ograniczeń zasobów: platforma Azure udostępnia dokumentację i zasoby ułatwiające zrozumienie ograniczeń wydajności różnych usług i jednostek SKU platformy Azure. Uwzględnienie tych ograniczeń może pomóc w podjęciu dobrze poinformowanych decyzji projektowych i zoptymalizować architekturę obciążenia w celu zwiększenia wydajności i opłacalności.

Platforma Azure oferuje opcje skalowalności, takie jak skalowanie automatyczne, które może automatycznie dostosowywać zasoby na podstawie zapotrzebowania na obciążenie. Możesz skalować w pionie, zwiększając pojemność zasobu przy użyciu większego rozmiaru maszyny wirtualnej lub skalując w poziomie, dodając nowe wystąpienia zasobu. Usługi platformy Azure, które mają funkcje skalowania automatycznego, mogą automatycznie skalować w poziomie, aby zapewnić pojemność podczas szczytów obciążeń i powrócić do normalnego momentu spadku obciążenia. Istnieją ograniczenia dotyczące konfiguracji i usług, o których należy pamiętać. Można 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.

Włącz dzienniki przepływu sieci wirtualnej między obciążeniami, aby przechwycić dane dotyczące aktywności sieci. Analiza ruchu umożliwia analizowanie i wzbogacanie tych dzienników, co zapewnia wgląd w zachowanie i wydajność przepływów użytkownika. Dzięki identyfikacji najważniejszych rozmówców, hotspotów przepustowości i nieefektywności routingu analiza ruchu może pomóc w optymalizacji alokacji zasobów sieciowych i umożliwić inteligentniejsze planowanie pojemności.

Lista kontrolna efektywności działania

Zapoznaj się z pełnym zestawem zaleceń.