Zalecenia dotyczące planowania wydajności
Dotyczy tego Power Platform zalecenia dotyczącego listy kontrolnej Well-Architected Performance Efficiency:
PE:02 | Przeprowadzanie planowania wydajności. Planowanie wydajności należy przeprowadzić, zanim zajdą zmiany dotyczące wzorców użycia. Przewidywane zmiany dotyczą odmian, aktualizacji produktów, kampanii marketingowych, specjalnych zdarzeń lub zmian przepisów. |
---|
W tym przewodniku opisano zalecenia dotyczące planowania wydajności i pojemności. Wydajność to coś, co się nie dzieje — trzeba zaplanować to tak, jak wszystkie inne wymagania. 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 emulowanie ilości zasobów potrzebnych do obsługi wymagań dotyczących wydajności obciążenia, takich jak magazyn, przepływność i przepustowość sieci. Planowanie pojemności zapewnia obciążenie pracą wystarczającej do obsługi oczekiwanych wymagań w zakresie obciążenia bez utraty wydajności lub wąskich gardeł. Pomaga również zapobiec zbyt wysokim kosztom inicjowania obsługi administracyjnej i innym niepotrzebnym kosztom. Brak planowania wydajności i pojemności może powodować problemy z wydajnością, zasoby, zwiększenie kosztów, nieefektywne obciążenie, wyzwania dotyczące skalowalności i nieprzewidywalne obciążenie pracą.
Definicje
Termin | Definicja |
---|---|
Planowanie pojemności | Proces przetwarzania zasobów przez obciążenia musi spełniać swoje wartości docelowe wydajności. |
Wymagania dotyczące funkcjonalności | 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. |
Kluczowe strategie projektowania
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.
Planowanie na potrzeby wydajności
Zaprojektuj obciążenie z myślą o wydajności, aby zminimalizować ponowne projektowanie po zakończeniu obciążenia. Jeśli chodzi o wydajność, należy wziąć pod uwagę wymagania dotyczące obciążenia. Rozważania dotyczące wydajności mają wpływ na wiele aspektów obciążenia:
Strategia dotycząca danych: Czy masz istniejące dane i magazyny danych, z którymi musisz się połączyć? Ile danych trzeba przechowywać? Czy ilość danych będzie wpływała na to, jak szybko użytkownicy będą mieć do nich dostęp? W jaki sposób użytkownicy będą korzystać z danych?
Strategia integracji: Czy można przeprowadzić integracje w czasie rzeczywistym bez spowalniania systemu? Czy w określonym czasie można korzystać z integracji wsadowych? Gdzie są Twoje dane? Czy potrzebujesz strategii lokalnej bramy danych?
Liczba konwersacji: Podczas tworzenia drugiego pilota ważne jest, aby zrozumieć docelową liczbę wiadomości lub rozmów oraz ich oczekiwany wzrost. Czy Twoje oczekiwania weryfikują docelową architekturę? A co ze skalą?
Modelowanie danych: Czy musisz uprościć strukturę danych, aby uzyskać szybsze zapytania?
Modelowanie zabezpieczeń: Czy reguły zabezpieczeń będą dobrze działać w przypadku wielu użytkowników i danych? Czy są jakieś wąskie gardła?
Strategia środowiskowa: Czy masz środowisko testowe do testowania wydajności? Czy jest podobne do środowiska produkcyjnego? Jak określono budżet na testowanie wydajności?
Programowanie: Czy programiści postępują zgodnie z najlepszymi praktykami dotyczącymi wydajności? Czy spełniają one określone cele w zakresie wydajności? Czy użytkownicy wiedzą, co jest możliwe, a co nie?
Projekt i podejście do testowania: Jak mierzysz wydajność? Co jest dobre, a co nie? Czy scenariusze i dane testowania są realistyczne? Czy testujesz z myślą o bieżących i przyszłych potrzebach?
Akceptacja i adaptacja przez użytkownika: Jak śledzisz wydajność? Czy oczekiwania użytkowników są realistyczne?
Planowanie zasobów
Wydajność wymaga czasu, środków pieniężnych, nakładu pracy i osób. Zasoby należy przydzielać na początku projektu. Na przykład deweloperzy mogą potrzebować więcej czasu na znalezienie efektywnych sposobów implementacji logiki biznesowej i zoptymalizowania kodu. Będzie także potrzebne środowisko testowe i zespół w celu przeprowadzenia testowania wydajności.
Wydajność nie jest działaniem tylko raz. Wraz ze zmianą obciążenia i rozwojem platformy należy poprawić kod i nadal szukać sposobów optymalizowania wydajności.
Planowanie migracji i integracji danych
Podczas migracji danych z poprzedniego systemu należy uważnie zaplanować migrację. Oto kilka wskazówek ułatwiających unikanie problemów:
Zrozum wymagania biznesowe dotyczące migrowanych danych. Nie migruj więcej danych niż potrzebują użytkownicy. Na przykład nie trzeba importować 10 lat danych starych potencjalnych do systemu sprzedaży.
Należy się zastanowić, kiedy i jak często są uruchamiane integracje. Należy unikać uruchamiania procesów wymagających wielu zasobów, gdy użytkownicy korzystają z systemu. Planuj intensywne procesy przetwarzania poza godzinami szczytu lub używaj przetwarzania asynchronicznego.
Podczas projektowania integracji należy pamiętać o ograniczeniach platformy oraz o najlepszych rozwiązaniach.
Zbieranie danych dotyczących wydajności
Zbieranie informacji o wykorzystaniu obciążenia powoduje zebranie i analizowanie informacji dotyczących sposobu, w jaki obciążenie używa zasobów i z jaką wydajnością. 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.
Omówienie danych: przejrzyj dostępne dane historyczne i poznaj ich strukturę, format i znaczenie 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.
Wyczyść i wstępnie przetwórz dane: 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.
Identyfikowanie kluczowych metryk: Identyfikowanie metryk istotnych dla planowania pojemności. Metryki mogą obejmować transakcje, wydajność sieciową i czas odpowiedzi.
Identyfikowaniewąskich gardeł: Mierz przepustowość i czasy odpowiedzi, aby zidentyfikować konkretne składniki systemu, które mogą stać się wąskimi gardłami wraz ze wzrostem obciążenia. Użyj funkcji analizy eksploracji procesów, takich jak ponowne przetworzone i analiza głównej przyczyny, aby zidentyfikować wąskie gardła w kompleksowym procesie.
Wizualizacjadanych: Twórz wizualizacje, takie jak wykresy lub wykresy, aby uzyskać lepszy wgląd w dane historyczne. Wizualizacje mogą pomóc w identyfikowaniu wzorców, trendów i anomalii danych w celu lepszego zrozumienia zachowania obciążenia. Użyj narzędzi eksploracji procesów do wizualizacji danych przy użyciu mapy procesów, umożliwiając analizę procesu.
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ć wyzwaniem. 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 użytkowników: Przeprowadzanie badań użytkowników w celu zrozumienia, w jaki sposób użytkownicy radzą sobie z bieżącym obciążeniem, może dostarczyć cennych informacji na temat potencjalnego zapotrzebowania na nowe obciążenie. Badania mogą obejmować rozmowy z użytkownikami, ankiety lub obserwowanie użytkownika wykonującego istniejące obciążenie.
Ocena eksperta: Informacje od ekspertów w danej dziedzinie lub specjalistów, którzy mają doświadczenie w branży, mogą pomóc w oszacowaniu zapotrzebowania na nowe obciążenie pracą. Ich wiedza i wiedza specjalistyczna mogą dostarczyć cennych informacji na temat prognoz.
Projekty pilotażowe lub prototypy: Projekty pilotażowe lub prototypy na małą skalę mogą pomóc w gromadzeniu danych i informacji zwrotnych w czasie rzeczywistym. 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 klientów, mogą dostarczać dodatkowych informacji do oszacowania popytu na nowe obciążenie. Ź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 przewidywać zapotrzebowanie, należy rozważyć następujące strategie.
Uwzględnienie różnych scenariuszy
W ramach planowania wydajności należy zaplanować różne możliwe scenariusze. 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ń). Przed zmianą użycia należy przeprowadzić planowanie 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 w odkrywaniu wzorców i relacji 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 polega na badaniu danych historycznych w celu zidentyfikowania spójnych wzorców i ekstrapolacji tych wzorców na przyszłość. 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 to proces budowania modeli matematycznych, które wykorzystują dane historyczne i inne istotne zmienne do przewidywania przyszłego popytu. 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 mają poprawnie inicjowaną obsługę administracyjną, co uniemożliwia zbyt małe wykorzystanie obciążenia i potencjalne przeciążenia w pracy. Jeśli na przykład ma to być wsparcie integracji z 1 milionem aktualizacji co noc, ale bieżące dane mają małe szybkości aktualizowania, konieczne jest dostosowanie systemu. 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
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. Należy wziąć pod uwagę czynniki, takie jak wydajność żądań interfejsu API, przepustowość sieci, wydajność magazynu i personel:
Przepustowość sieci: Oceń przepustowość sieci potrzebną do obsługi przewidywanego 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.
Pojemność magazynu: Oszacuj ilość danych generowanych lub przetwarzanych przez obciążenie podczas prognozowanego zapotrzebowania. 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.
Żądania interfejsu API: Oceń użycie żądań interfejsu API względem dostępnej pojemności i limitów ochrony usługi. Należy wziąć pod uwagę czynniki, takie jak początkowe obciążenie danych i potencjalne obciążenie użytkownika.
Personel: Oceń zasoby ludzkie wymagane do zarządzania infrastrukturą i jej utrzymania, obsługi klienta, konserwacji systemu i zapewnienia płynnego działania. Należy wziąć pod uwagę czynniki, takie jak dystrybucja obciążeń, zestaw umiejętności i wymagana wiedza specjalistyczna.
Opis ograniczeń zasobów
Zasoby w tym zakresie mają ograniczenia wydajności. Ograniczenia wydajności mają zastosowanie do funkcji w każdej usłudze. Należy poznać ograniczenia zasobów w obciążeniach i uwzględniać te ograniczenia w decyzjach dotyczących projektowania. Można na przykład sprawdzić, czy ograniczenia zasobów wymagają zmiany podejścia projektowego lub zmiany zasobów w całości.
Należy również określić limity do osiągnięcia, co obejmuje określenie maksymalnych progów lub ograniczeń obciążenia. Te ograniczenia zwykle dotyczą infrastruktury (obliczenia, magazynu, sieci), aplikacji (jednoczesne połączenia, czasy odpowiedzi, dostępności) i usługi (żądania na sekundę). 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: Błędnie ocenione planowanie pojemności może prowadzić do nadmiernej aprowizacji lub niedostatecznej aprowizacji zasobów. Zbyt duża ilość zasobów może spowodować wzrost kosztów. Zbyt mała ilość zasobów może spowodować słabą wydajność. Można również napotkać większy odsetek fałszywych alarmów, które mogą spowodować stratę czasu na problemy z wydajnością, które nie istnieją. Staraj się znaleźć odpowiednią równowagę.
Ułatwienia Power Platform
Zbieranie danych o pojemności i prognozowanie zapotrzebowania: Usługa 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.
Określanie wymagań dotyczących zasobów: Ponieważ zapewniają one szeroki zakres konfiguracji, narzędzia i usługi platformy Azure mogą pomóc w zdefiniowaniu 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.
Zrozumienie ograniczeń zasobów: Power Platform zawiera dokumentację i zasoby, które pomogą Ci zrozumieć ograniczenia wydajności każdej z różnych usług. 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.
Istnieją ograniczenia dotyczące konfiguracji i usług, o których należy pamiętać. Można przeczytać dokumentację lub uruchomić testy. Aby uzyskać więcej informacji, zobacz:
- Power Platform Żądaj limitów i alokacji
- Limity interfejsu API ochrony usług
- Limity przepływów automatycznych, zaplanowanych i błyskawicznych Power Automate
- Limity i limity dla Copilot Studio
Korzystanie z wywołań danych z aplikacji kanwy: przepływy wywołań danych z aplikacji kanwy wysyłają dane do tabelarycznych źródeł danych przy użyciu łączników za pośrednictwem protokołu OData. OData żąda przepływu do warstw systemów zaplecza, aby dotrzeć do docelowego źródła danych i pobrać dane dla klienta lub zatwierdzić dane w źródle danych. Łączniki oparte na akcjach, które umożliwiają interfejsy API, działają w ten sam sposób.
Zrozumienie sposobu przesyłania żądań OData i API w aplikacjach kanwy może pomóc zoptymalizować wydajność aplikacji kanwy i źródeł danych zaplecza. Aby dowiedzieć się więcej, zobacz Przepływ danych w aplikacjach kanwy.
Informacje pokrewne
- Azure Monitor
- Application Insights
- Log Analytics
- eksploracja procesów i eksploracja zadań w Power Automate
Lista kontrolna efektywności wydajności
Zapoznaj się z kompletną zestawem zaleceń.