Zalecenia dotyczące ciągłej optymalizacji wydajności
Dotyczy tego Power Platform zalecenia dotyczącego listy kontrolnej Well-Architected Performance Efficiency:
PE:10 | Nieustanna optymalizacja wydajności. Skoncentruj się na komponentach, które wykazują pogarszającą się wydajność w miarę upływu czasu, takich jak bazy danych i funkcje sieciowe. |
---|
W tym przewodniku opisano zalecenia dotyczące ciągłej optymalizacji wydajności. Ciągła optymalizacja wydajności to proces ciągłego monitorowania, analizowania i poprawy wydajności wydajności. Optymalizacja wydajności musi być działaniem ciągłym przez cały okres istnienia obciążenia. Wydajność obciążenia może z czasem ulec pogorszeniu lub stać się nadmierna. Czynniki, które należy wziąć pod uwagę, obejmują zmiany we wzorcach użytkowania, wzrost liczby przechowywanych danych, popyt, funkcje i dług techniczny.
Definicje
Termin | Definicja |
---|---|
Dług technologiczny | Skumulowane nieefektywności, nieoptymalne wybory projektowe lub skróty celowo podejmowane podczas procesu tworzenia w celu szybszego dostarczania kodu. |
Czas wygaśnięcia | Mechanizm, który ustawia czas wygaśnięcia danych. |
Kluczowe strategie projektowania
Wydajność jest osiągana, gdy pojemność obciążenia jest dostosowana do rzeczywistego użycia. Obciążenie, które osiąga nadmierną wydajność, jest tak samo problematyczne, jak to, które osiąga gorsze wyniki. Kompromisy są różne. Nadmierna wydajność wpływa na optymalizację kosztów. Słaba wydajność wpływa na użytkowników. Kluczem do wydajności jest monitorowanie, dostosowywanie i testowanie w czasie. Musisz regularnie przeglądać wskaźniki wydajności i w razie potrzeby wprowadzać poprawki, aby zapewnić wydajność obciążenia. Testowanie wszystkich zmian przed i po wdrożeniu jest wymagane do osiągnięcia celów wydajnościowych.
Rozwijanie kultury wydajności
Kultura wydajności to środowisko, w którym oczekuje się ciągłego doskonalenia, a zespół uczy się na podstawie produkcji. Optymalizacja wydajności wymaga specjalistycznych umiejętności. Zespoły zajmujące się obciążeniem potrzebują odpowiednich umiejętności i sposobu myślenia, aby zoptymalizować swoją wydajność, aby sprostać wzrostom i spadkom popytu. Należy również przydzielić ich czas na obsługę wymaganego monitorowania i korygowania problemów z wydajnością w miarę ich pojawiania się. Te zespoły muszą mieć jasne oczekiwania. Na przykład cele dotyczące wydajności, poziomy bazowe i progi odchyleń (to, jak daleko od linii bazowej jest dopuszczalne) muszą być dobrze widoczne i uspołecznione.
Kompromis: Ciągłe optymalizacje wydajności wymagają zespołu, który ma odpowiednie umiejętności i czas na znajdowanie i naprawianie problemów z wydajnością. Poświęcenie personelu na wydajność zwiększa koszty operacyjne. Jeśli dysponujesz ograniczonymi zasobami ludzkimi, ciągła optymalizacja wydajności może zabrać czas na inne zadania operacyjne.
Ocena nowych funkcji platformy
Ocena nowych funkcji platformy obejmuje zbadanie nowych funkcji i funkcji, które mogą poprawić wydajność wydajności, takich jak zoptymalizowane sposoby wykonywania zapytań o dane, nowoczesne kontrolki lub mechanizmy buforowania. Nowe funkcje platformy mogą otworzyć drogę do zwiększenia wydajności wydajności. Bądź na bieżąco z funkcjami platformy, aby mieć pewność, że korzystasz z najnowszych innowacji i najlepszych praktyk. Konsekwentnie monitoruj opinie i wskaźniki wydajności z tych nowych dodatków, aby udoskonalić swoje podejście.
Ustal priorytety działań optymalizacyjnych
Proaktywna optymalizacja wydajności oznacza podejmowanie działań w celu poprawy i zwiększenia wydajności obciążenia, zanim pojawią się jakiekolwiek problemy z wydajnością. Korzystanie z proaktywnych miar obejmuje identyfikowanie potencjalnych wąskich gardeł, monitorowanie wskaźników wydajności i wdrażanie optymalizacji w celu zapewnienia, że obciążenie działa wydajnie i spełnia pożądane cele wydajnościowe. Na podstawie analizy pogarszających się komponentów, przepływów krytycznych i długu technicznego można wdrożyć optymalizacje wydajności specyficzne dla każdego obszaru. Ulepszenia mogą obejmować zmiany w kodzie, dostosowania infrastruktury lub aktualizacje konfiguracji.
Nadaj priorytet pogarszającym się komponentom
Wraz z ewolucją obciążenia i zmieniającymi się wzorcami użycia zmiany te często wpływają na wydajność poszczególnych składników w obciążeniu. Zwiększona ilość danych w bazach danych może prowadzić do dłuższych czasów wykonywania zapytań i wolniejszego pobierania danych. Zmiany we wzorcach użycia mogą spowodować nieoptymalny projekt zapytania. Zapytania, które kiedyś były wydajne, mogą stać się nieefektywne w miarę rozwoju obciążenia. Nieefektywne zapytania mogą zużywać nadmierne zasoby i obniżać wydajność bazy danych.
Ważne jest, aby podejmować ciągłe wysiłki w celu optymalizacji wydajności komponentów, które z czasem wykazują zmniejszoną wydajność. Proaktywnie identyfikuj i rozwiązuj problemy z wydajnością w obciążeniu. Nadając priorytety znanym, pogarszającym się składnikom, można proaktywnie rozwiązywać potencjalne problemy z wydajnością i zapewnić bezproblemowe działanie obciążenia. Rozważ wdrożenie technik dostrajania wydajności lub optymalizację alokacji zasobów.
Ustalanie priorytetów krytycznych przepływów użytkowników i systemu
Krytyczne przepływy użytkowników i systemów są najważniejszymi procesami lub przepływami pracy o wysokim priorytecie w obciążeniu. Określając priorytety tych krytycznych przepływów, zapewniasz, że najważniejsze części obciążenia są zoptymalizowane pod kątem wydajności. Wiedza o tym, które przepływy są krytyczne, pomaga w ustalaniu priorytetów działań optymalizacyjnych. Optymalizacja wydajności w najważniejszych obszarach aplikacji zapewnia najwyższy zwrot z inwestycji. Należy monitorować krytyczne przepływy i najpopularniejsze części aplikacji. Szukaj sposobów, aby uczynić je bardziej wydajnymi.
Zautomatyzuj optymalizację wydajności
Automatyzacja może wyeliminować powtarzalne i czasochłonne procesy ręczne, umożliwiając ich efektywne wykonywanie. Automatyzacja zmniejsza ryzyko wystąpienia błędu ludzkiego i zapewnia spójność w realizacji zadań optymalizacyjnych. Automatyzując te zadania, możesz również uwolnić ludzi, aby mogli skupić się na bardziej złożonych czynnościach i czynnościach, które dodają wartości. Automatyzację można zastosować do różnych zadań, takich jak testowanie wydajności, wdrażanie i monitorowanie.
Zautomatyzowane testowanie wydajności: Korzystaj z narzędzi do automatycznego testowania wydajności, takich jak Selenium, aby symulować różne obciążenia i scenariusze. Power Apps Test Engine to składnik w interfejsie wiersza Power Platform polecenia, którego można użyć do testowania autonomicznych aplikacji Power Apps kanwy.
Zautomatyzowane wdrażanie: Zaimplementuj zautomatyzowane procesy wdrażania, aby zapewnić spójne i wolne od błędów wdrożenia. Użyj narzędzi CI/CD (ciągła integracja/ciągłe dostarczanie), aby zautomatyzować proces wdrażania. Te narzędzia mogą pomóc w identyfikowaniu wąskich gardeł wydajności, gdy używasz ich do testowania punktów końcowych, sprawdzania stanów HTTP, a nawet weryfikowania jakości danych i odmian.
Monitorowanie i alerty: skonfiguruj zautomatyzowane systemy monitorowania i alertów, aby stale monitorować metryki wydajności i wykrywać wszelkie odchylenia lub anomalie. Po wykryciu problemów z wydajnością mogą zostać uruchomione automatyczne alerty, aby powiadomić odpowiednie zespoły lub osoby.
Zarządzanie incydentami: Zaimplementuj zautomatyzowany system zarządzania incydentami, który może odbierać alerty, tworzyć zgłoszenia i przypisywać zgłoszenia do odpowiednich zespołów w celu rozwiązania problemu. Te kroki pomagają zapewnić, że problemy z wydajnością są szybko rozwiązywane i przypisywane do odpowiednich zasobów.
Zautomatyzowana diagnostyka: tworzenie zautomatyzowanych narzędzi diagnostycznych lub skryptów, które mogą analizować dane dotyczące wydajności i identyfikować główne przyczyny problemów z wydajnością. Narzędzia te mogą pomóc w określeniu określonych obszarów lub składników systemu, które powodują problemy z wydajnością.
Zautomatyzowane akcje korygowania: zdefiniuj i zaimplementuj zautomatyzowane akcje korygowania, które mogą być wyzwalane po wykryciu określonych problemów z wydajnością. Działania te mogą obejmować ponowne uruchamianie usług, dostosowywanie alokacji zasobów, czyszczenie pamięci podręcznych lub wdrażanie innych technik optymalizacji wydajności.
Systemy samonaprawiające: Wbuduj funkcje samonaprawy w systemie, automatyzując proces odzyskiwania w przypadku znanych problemów z wydajnością. Ta funkcja może obejmować automatyczne naprawianie lub dostosowywanie konfiguracji systemu w celu przywrócenia optymalnej wydajności.
Rozwiązywanie problemów z długiem technicznym
Dług techniczny odnosi się do skumulowanych nieefektywności, nieoptymalnych wyborów projektowych lub skrótów podjętych podczas procesu rozwoju, które mogą wpływać na wydajność. Dług techniczny, niejasny kod i zbyt skomplikowane implementacje mogą utrudnić osiągnięcie wydajności operacyjnej. Rozwiązanie problemu długu technicznego obejmuje identyfikowanie i rozwiązywanie tych problemów w celu poprawy ogólnej wydajności i łatwości konserwacji obciążenia. Ta praca może obejmować refaktoryzację kodu, optymalizację zapytań bazy danych, ulepszanie projektu architektonicznego lub implementowanie najlepszych rozwiązań. Być może, na przykład, wprowadziłeś dług techniczny, aby dotrzymać terminu — będziesz musiał rozwiązać ten dług techniczny, optymalizując wydajność w czasie.
Optymalizuj bazy danych
Ciągła optymalizacja baz danych obejmuje identyfikowanie i implementowanie optymalizacji w celu zapewnienia, że bazy danych mogą obsługiwać obciążenia, zapewniać szybkie czasy odpowiedzi i minimalizować wykorzystanie zasobów. Regularnie optymalizując bazy danych, można poprawić wydajność aplikacji, skrócić przestoje i poprawić ogólne wrażenia użytkownika.
- Optymalizuj zapytania do bazy danych: Źle napisane zapytania do bazy danych mogą obniżyć wydajność bazy danych. Nieefektywne filtry mogą powodować niepotrzebne przetwarzanie danych. Złożone podzapytania, zagnieżdżone zapytania i nadmierne funkcje mogą zmniejszyć szybkość działania. Ponowne zapisywanie zapytań, które pobierają zbyt dużo danych. Zidentyfikuj najczęstsze lub krytyczne zapytania do bazy danych i zoptymalizuj je. Optymalizacja pomaga zapewnić szybsze zapytania.
- Przejrzyj projekt modelu: Przejrzyj model danych, aby upewnić się, że optymalizujesz go pod kątem określonych wymagań aplikacji.
Ułatwienia Power Platform
Automatyzacja optymalizacji wydajności: Narzędzie do sprawdzania rozwiązań udostępnia zalecenia dotyczące wydajności na podstawie analizy statycznej rozwiązań względem zestawu reguł najlepszych praktyk w celu szybkiego identyfikowania problematycznych wzorców. Pamiętaj, aby regularnie przeglądać te zalecenia i stosować się do nich.
Monitorowanie optymalizacji wydajności: Zintegruj obciążenia Power Platform Application Insights , aby uzyskać szczegółowe informacje i zalecenia dotyczące optymalizacji wydajności.
Analizuj wydajność i użycie drugiego pilota w Copilot Studio: Copilot Analytics zapewnia kompleksowy przegląd wydajności drugiego pilota. Wykorzystuje technologię sztucznej inteligencji (AI) do określenia, które tematy mają największy wpływ na współczynnik eskalacji, współczynnik porzucania i współczynnik rozwiązywania problemów. Śledzenie wskaźników zaangażowania i wyników konwersacji jest niezbędne do mierzenia wskaźników wydajności drugiego pilota i odkrywania obszarów wymagających poprawy.
Lista kontrolna efektywności wydajności
Zapoznaj się z kompletną zestawem zaleceń.