Udostępnij za pośrednictwem


Kompromisy między wydajnością a efektywnością dla Power Platform obciążeń roboczych

Obciążenie, które spełnia cele dotyczące wydajności bez nadmiernej aprowizacji, jest wydajne. Kluczowe strategie zwiększania wydajności obejmują właściwe wykorzystanie optymalizacji kodu, wzorców projektowych i planowania wydajności. Jasne cele w zakresie wydajności i testowanie stanowią podstawę tego filaru.

W fazie projektowania obciążenia ważne jest, aby rozważyć, w jaki sposób decyzje oparte na zasadach projektowania i zaleceniach dotyczących efektywności wydajności w zestawieniu kontrolnym przeglądu projektu dla wydajności mogą wpływać na cele i wysiłki optymalizacyjne innych filarów. Niektóre decyzje mogą być korzystne dla niektórych filarów, ale dla innych stanowią kompromis. W tym artykule wymieniono przykładowe kompromisy, które zespół ds. obciążeń może napotkać podczas projektowania architektury obciążeń i operacji w celu zwiększenia wydajności.

Kompromis między wydajnością a efektywnością i niezawodnością

Kompromis: Zmniejszona replikacja i zwiększona gęstość. Podstawą niezawodności jest zapewnienie odporności poprzez zastosowanie replikacji i ograniczenie promienia wybuchu awarii.

  • Konsolidacja zasobów obciążeń może wykorzystywać nadmierną pojemność i poprawiać wydajność. Zwiększa to jednak promień wybuchu w przypadku nieprawidłowego działania w ulokowanym komponencie lub platformie aplikacyjnej.

Kompromis: Zwiększona złożoność. Niezawodność stawia na prostotę.

  • Partycjonowanie i fragmentowanie danych pomaga uniknąć problemów z wydajnością w dużych lub często używanych zestawach danych. Jednak implementacja tych wzorców zwiększa złożoność, ponieważ (ostateczna) spójność musi być zachowana między dodatkowymi zasobami.

  • Denormalizacja danych w celu zoptymalizowania wzorców dostępu może zwiększyć wydajność, ale wprowadza złożoność, ponieważ wiele reprezentacji danych musi być synchronizowanych.

  • Wzorce projektowe chmury skoncentrowane na wydajności czasami wymagają wprowadzenia dodatkowych komponentów. Użycie tych komponentów zwiększa powierzchnię obciążenia. Komponenty muszą być zatem niezawodne, aby zapewnić niezawodność całego obciążenia.

Kompromis: Testowanie i obserwacja w aktywnych środowiskach. Unikanie niepotrzebnego korzystania z systemów produkcyjnych jest podejściem samozachowawczym zapewniającym niezawodność.

  • Testowanie wydajności w aktywnych środowiskach niesie ze sobą ryzyko spowodowania nieprawidłowego działania z powodu działań testowych lub konfiguracji.

  • Obciążenia powinny być instrumentowane za pomocą systemu monitorowania wydajności aplikacji (APM), który umożliwia zespołom uczenie się na podstawie aktywnych środowisk. Narzędzia APM są instalowane i konfigurowane w kodzie aplikacji lub w środowisku hostingu. Niewłaściwe użytkowanie, przekroczenie ograniczeń lub błędna konfiguracja narzędzia może zagrozić jego funkcjonalności i konserwacji, potencjalnie podważając niezawodność.

Kompromisy między wydajnością a efektywnością i bezpieczeństwem

Kompromis: Zmniejszenie kontroli bezpieczeństwa. Mechanizmy kontroli zabezpieczeń są ustanawiane w wielu warstwach, czasami nadmiarowo, w celu zapewnienia dogłębnej ochrony.

Jedną ze strategii optymalizacji wydajności jest usuwanie lub pomijanie składników lub procesów, które przyczyniają się do opóźnień w przepływie, zwłaszcza gdy ich czas przetwarzania nie jest uzasadniony. Jednak ta strategia może zagrozić bezpieczeństwu i powinna jej towarzyszyć dokładna analiza ryzyka. Rozważ następujące przykłady:

  • Usunięcie szyfrowania podczas przesyłania lub przechowywania w celu zwiększenia szybkości transferu naraża dane na potencjalne naruszenia integralności lub poufności.

  • Usunięcie lub ograniczenie narzędzi do skanowania lub inspekcji zabezpieczeń w celu skrócenia czasu przetwarzania może zagrozić poufności, integralności lub dostępności, które te narzędzia chronią.

  • Usunięcie reguł zapory z przepływów sieciowych w celu zmniejszenia opóźnień sieci może umożliwić niepożądaną komunikację.

  • Zminimalizowanie sprawdzania poprawności danych w celu szybszego przetwarzania danych może zagrozić integralności danych, zwłaszcza jeśli dane wejściowe są złośliwe.

Kompromis: Zwiększona powierzchnia obciążenia. Zabezpieczenia nadają priorytet zmniejszonemu i ograniczonemu obszarowi powierzchni, aby zminimalizować wektory ataków i ograniczyć zarządzanie mechanizmami kontroli zabezpieczeń.

Wzorce projektowe chmury skoncentrowane na wydajności czasami wymagają wprowadzenia dodatkowych komponentów. Te składniki zwiększają powierzchnię obciążenia. Nowe składniki muszą być zabezpieczone, prawdopodobnie w sposób, który nie jest jeszcze używany w systemie, i często zwiększają zakres zgodności. Rozważ te często dodawane składniki:

  • Wprowadzenie wielu różnych metod obsługi logiki biznesowej, takich jak przepływy w chmurze i wtyczki niskokodowe, w oparciu o wymagania dotyczące wydajności każdego zadania.

  • Przenoszenie przetwarzania do zadań w tle, a nawet obliczeń klienta.

Kompromis: Usunięcie segmentacji. Filar Bezpieczeństwo nadaje priorytet silnej segmentacji, aby umożliwić precyzyjną kontrolę bezpieczeństwa i zmniejszyć promień wybuchu.

Współdzielenie zasobów to podejście do poprawy wydajności. Zwiększa gęstość, aby zoptymalizować wykorzystanie pojemności. Na przykład ponowne używanie wtyczek niskokodowych w wielu aplikacjach kanwy i przepływach w chmurze. Zwiększona gęstość może prowadzić do następujących problemów związanych z bezpieczeństwem:

  • Udostępniona tożsamość obciążenia, która narusza zasadę najmniejszych uprawnień i zasłania poszczególne dzienniki inspekcji w dziennikach dostępu.

  • Mechanizmy kontroli zabezpieczeń obwodowych, na przykład reguły sieciowe, które są ograniczone do wszystkich kolokowanych składników, zapewniając poszczególnym składnikom większy dostęp niż to konieczne.

Kompromis między wydajnością a efektywnością operacyjną

Kompromis: Zmniejszona obserwowalność. Monitorowanie jest konieczne, aby zapewnić obciążenie z istotnymi alertami i pomóc w zapewnieniu pomyślnej odpowiedzi na zdarzenia.

  • Zmniejszenie woluminu dzienników i metryk w celu skrócenia czasu przetwarzania poświęconego na zbieranie danych telemetrycznych zamiast innych zadań zmniejsza ogólną obserwowalność systemu. Oto kilka przykładów wynikającej z tego zmniejszonej obserwowalności:

    • Ogranicza punkty danych, które są używane do tworzenia znaczących alertów.
    • Prowadzi to do luk w zakresie działań związanych z odpowiedzią na incydenty.
    • Ogranicza obserwację w interakcjach i granicach wrażliwych na zabezpieczenia lub zgodności.
  • Gdy implementowane są wzorce projektowe wydajności, złożoność obciążenia często wzrasta. Składniki są dodawane do przepływów krytycznych. Strategia monitorowania obciążenia i monitorowanie wydajności muszą obejmować te składniki. Gdy przepływ obejmuje wiele składników lub granic aplikacji, zwiększa się złożoność monitorowania wydajności tego przepływu. Wydajność przepływu musi być skorelowana we wszystkich połączonych ze sobą komponentach.

Kompromis: Zwiększona złożoność operacji. Złożone środowisko charakteryzuje się bardziej złożonymi interakcjami i większym prawdopodobieństwem negatywnego wpływu rutynowych, doraźnych i awaryjnych operacji.

  • Poprawa wydajności poprzez zwiększenie gęstości zwiększa ryzyko w zadaniach operacyjnych. Błąd w pojedynczym procesie może mieć duży promień wybuchu.

  • Implementacja wzorców projektowych wydajności wpływa na procedury operacyjne, takie jak tworzenie kopii zapasowych, rotacje kluczy i strategie odzyskiwania. Na przykład partycjonowanie i fragmentowanie danych może komplikować rutynowe zadania, gdy zespoły próbują upewnić się, że te zadania nie wpływają na spójność danych.

Kompromis: Stres kulturowy. Doskonałość operacyjna jest zakorzeniona w kulturze nieobwiniania, szacunku i ciągłego doskonalenia.

  • Przeprowadzenie analizy przyczyn źródłowych problemów z wydajnością pozwala zidentyfikować braki w procesach lub wdrożeniach, które wymagają korekty. Zespół powinien potraktować to ćwiczenie jako okazję do nauki. Jeśli członkowie zespołu są obwiniani za problemy, może to wpłynąć na morale.

  • Procesy rutynowe i ad hoc mogą mieć wpływ na wydajność obciążeń. Często uważa się, że lepiej jest wykonywać te czynności poza godzinami szczytu. Jednak godziny poza szczytem mogą być niewygodne lub poza normalnymi godzinami pracy dla członków zespołu, którzy są odpowiedzialni za te zadania lub są w nich wykwalifikowani.

Kompromisy między wydajnością a efektywnością dzięki optymalizacji doświadczeń

Kompromis: Zmniejszone zaangażowanie użytkowników. Filar Optymalizacja doświadczeń nadaje priorytet bardziej angażującym doświadczeniom użytkowników.

  • Optymalizacja pod kątem wydajności nadaje priorytet korzystaniu z funkcji platformy nad dostosowaniami, które obniżają priorytet niestandardowych komponentów, które mogłyby prowadzić do bardziej angażującego doświadczenia użytkownika.

  • Optymalizacja pod kątem wydajności może zbytnio koncentrować się na minimalizowaniu złożoności, co obniża priorytet funkcji w celu uzyskania bardziej angażujących doświadczeń użytkownika, takich jak niestandardowe komponenty i integracje.

  • Tworzenie interfejsu użytkownika jest często wykonywane w szybszych iteracjach i cyklach wysyłkowych, co może utrudnić ciągłe zwiększanie wydajności.