Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Niezawodne obciążenie stale spełnia zdefiniowane cele niezawodności. Powinien osiągnąć ustalone cele odporności, najlepiej poprzez obejście zdarzeń wpływających na niezawodność. Realistycznie jednak obciążenie musi tolerować i kontrolować wpływ takich zdarzeń i utrzymywać operacje na wstępnie określonym poziomie podczas aktywnej awarii. Nawet podczas awarii niezawodne obciążenie robocze musi zostać odzyskane do określonego stanu w określonym czasie, co uzgadniane jest wśród interesariuszy. Niezbędny jest plan reagowania na zdarzenia, który umożliwia szybkie wykrywanie i odzyskiwanie.
Podczas projektowania obciążenia należy wziąć pod uwagę, w jaki sposób decyzje oparte na zasadach projektowania niezawodności i zalecenia z listy kontrolnej Przegląd projektu dla niezawodności mogą mieć wpływ na cele i optymalizacje innych filarów. Niektóre decyzje dotyczące niezawodności korzystają z jednego filaru, ale stanowią kompromisy dla innego. W tym artykule opisano przykładowe kompromisy, które zespół ds. obciążeń może napotkać podczas projektowania architektury obciążeń i operacji pod kątem niezawodności.
Kompromisy dotyczące niezawodności z zabezpieczeniami
Kompromis: zwiększony obszar powierzchni roboczej. Filary zabezpieczeń priorytetowo traktują ograniczony i zamknięty obszar powierzchni, aby zminimalizować wektory ataków i zwiększyć efektywność zarządzania mechanizmami kontroli zabezpieczeń.
Niezawodność jest często uzyskiwana przez replikację na poziomie składnika, na poziomie danych, a nawet na poziomie geograficznym. Repliki, zgodnie z projektem, zwiększają obszar powierzchni obciążenia. Z punktu widzenia zabezpieczeń zmniejszany i zawarty obszar powierzchni jest preferowany, aby zminimalizować potencjalne wektory ataków i usprawnić zarządzanie mechanizmami kontroli zabezpieczeń.
Podobnie rozwiązania odzyskiwania po awarii, takie jak kopie zapasowe, zwiększają obszar powierzchni obciążenia. Są one jednak często odizolowane od środowiska wykonawczego obciążenia. Te rozwiązania wymagają implementacji dodatkowych mechanizmów kontroli zabezpieczeń, które mogą być specyficzne dla podejścia do odzyskiwania po awarii.
Cele dotyczące niezawodności mogą wymagać dodatkowych składników architektury, takich jak dodawana magistrala komunikatów, aby żądania były odporne na oddzielenie. Każdy nowy składnik musi być zabezpieczony, prawdopodobnie w sposób, który nie jest jeszcze używany w systemie. Kod pomocniczy i biblioteki rozszerzają również obszar powierzchni aplikacji.
Kompromis: Obejście kontroli zabezpieczeń. Filar zabezpieczeń zaleca, aby wszystkie kontrole pozostały aktywne zarówno w normalnych, jak i obciążonych systemach.
Gdy obciążenie doświadcza zdarzenia niezawodności, które jest rozwiązywane w ramach aktywnej reakcji na incydent, konflikt priorytetów może wywierać presję na zespoły ds. obciążeń w celu obejścia mechanizmów kontroli bezpieczeństwa zoptymalizowanych pod kątem rutynowego dostępu.
Działania dotyczące rozwiązywania problemów mogą spowodować tymczasowe wyłączenie protokołów zabezpieczeń, co sprawia, że już obciążony system może być narażony na dodatkowe zagrożenia bezpieczeństwa. Istnieje również ryzyko, że protokoły zabezpieczeń nie zostaną szybko ponownie ponownie nawiązane.
Bardzo szczegółowe implementacje mechanizmów kontroli zabezpieczeń, takie jak niestandardowe przypisania kontroli dostępu opartej na rolach lub bardzo restrykcyjne reguły zapory, wprowadzają złożoność i wrażliwość na konfigurację, co zwiększa prawdopodobieństwo błędów konfiguracyjnych. Ograniczenie tego potencjalnego wpływu na niezawodność przy użyciu szerokich reguł powoduje usunięcie wszystkich trzech zasad architektury Zero Trust.
Kompromis: Stare wersje oprogramowania. Filar bezpieczeństwa zachęca do podejścia "bądź na bieżąco, utrzymuj na bieżąco" w kontekście poprawek zabezpieczeń dostawcy.
Stosowanie poprawek zabezpieczeń lub aktualizacji oprogramowania może potencjalnie zakłócić składnik docelowy, powodując niedostępność podczas zmiany oprogramowania. Opóźnienie lub unikanie stosowania poprawek może uniknąć potencjalnych zagrożeń związanych z niezawodnością, ale system nie jest chroniony przed ewoluującymi zagrożeniami.
Poprzednie rozważania dotyczą również kodu zadania. Dotyczy to na przykład kodu aplikacji, który używa starych bibliotek i kontenerów korzystających ze starych obrazów bazowych. Jeśli aktualizowanie i wdrażanie kodu aplikacji jest postrzegane jako ryzyko niesymigrowanej niezawodności, aplikacja jest narażona na dodatkowe zagrożenia bezpieczeństwa w czasie.
Kompromisy dotyczące niezawodności dzięki optymalizacji kosztów
Kompromis: zwiększona nadmiarowość implementacyjna lub nieefektywność. Obciążenie zoptymalizowane pod kątem kosztów minimalizuje niedostatecznie wykorzystywane zasoby i pozwala uniknąć nadmiernego przydzielania zasobów.
Replikacja jest kluczową strategią niezawodności. W szczególności strategia polega na posiadaniu wystarczającej liczby replik, aby obsłużyć daną liczbę jednoczesnych awarii węzłów. Tolerancja większej liczby współbieżnych awarii węzłów wymaga większej liczby replik, co prowadzi do zwiększenia kosztów.
Nadmiarowe przydzielanie zasobów to inna technika absorbowania nieoczekiwanego obciążenia systemu, takiego jak podczas zdarzenia failover, która w przeciwnym razie może prowadzić do problemu z niezawodnością. Każda nadmiarowa pojemność, która nie jest wykorzystywana, jest uważana za marnotrawną.
Jeśli obciążenie korzysta z rozwiązania odzyskiwania po awarii, które nadmiernie spełnia cele punktu odzyskiwania i czasu obciążenia, nadwyżka prowadzi do wyższych kosztów z powodu strat.
Utrzymanie obciążeń jest potencjalnym źródłem wpływu na niezawodność systemu, a ten wpływ jest często ograniczany dzięki redundancji podczas wdrażania poprzez strategię wdrażania, taką jak niebiesko-zielona. Takie przejściowe duplikowanie zasobów podczas bezpiecznego wdrażania zwykle zwiększa całkowity koszt procesu w tych momentach. Koszty rosną wraz z częstotliwością wdrożeń.
Kompromis: Zwiększona inwestycja w operacje, które nie są zgodne z wymaganiami funkcjonalnymi. Jednym z podejść do optymalizacji kosztów jest ocena wartości udostępnianej przez dowolne wdrożone rozwiązanie.
Aby osiągnąć niezawodność, system wymaga wglądu. Systemy monitorowania wymagają przesyłu i gromadzenia danych o obserwowalności. W miarę zwiększania możliwości monitorowania częstotliwość i ilość danych rosną, co prowadzi do dodatkowych kosztów.
Możliwości niezawodności w obciążeniach wymagają testowania i ćwiczeń. Projektowanie i uruchamianie testów wymaga czasu i potencjalnie wyspecjalizowanych narzędzi, co wiąże się z kosztami.
Obciążenia spełniające wysokie wymagania niezawodności często mają mechanizm szybkiego reagowania, który wymaga, aby członkowie zespołu technicznego należeli do formalnego grafiku dyżurów na wezwanie. Ten proces wiąże się z dodatkowymi kosztami personelu i kosztami utraconych możliwości z powodu uwagi, która mogłaby być skierowana gdzie indziej. Wiąże się również z potencjalnymi kosztami narzędzi zarządzania procesem.
Umowy wsparcia z dostawcami technologii są kluczowym składnikiem niezawodnej wydajności. Umowy pomocy technicznej, które nie są wykorzystywane, ponieważ poziom pomocy technicznej jest przydzielony w nadmiarze, generują straty.
Kompromisy w zakresie niezawodności z doskonałością operacyjną
Kompromis: zwiększona złożoność operacyjna. Doskonałość operacyjna, podobnie jak sama niezawodność, określa priorytet prostoty.
Niezawodność zwykle zwiększa złożoność obciążenia. Wraz ze wzrostem złożoności obciążenia elementy operacyjne obciążenia mogą również zwiększać się w celu obsługi dodanych składników i procesów w zakresie koordynacji wdrożenia i obszaru powierzchni konfiguracji.
Posiadanie kompleksowej strategii monitorowania obciążenia jest kluczową częścią doskonałości operacyjnej. Wprowadzenie dodatkowych składników do architektury w celu zaimplementowania wzorców projektowych niezawodności powoduje zwiększenie ilości źródeł danych do zarządzania, co zwiększa złożoność implementowania rozproszonego śledzenia i wglądu.
Korzystanie z wielu regionów w celu przezwyciężenia ograniczeń pojemności zasobów w jednym regionie i/lub zaimplementowanie architektury aktywny/aktywny zwiększa złożoność operacyjnego zarządzania obciążeniem. Ta złożoność jest wprowadzana przez potrzebę zarządzania wieloma regionami i konieczności zarządzania replikacją danych między nimi.
Kompromis: Zwiększony wysiłek w celu wygenerowania wiedzy i świadomości zespołu. Filar doskonałości operacyjnej zaleca utrzymanie i utrzymanie repozytorium dokumentacji dla procedur i topologii.
Ponieważ obciążenie staje się bardziej niezawodne dzięki dodaniu składników niezawodności i wzorców, utrzymanie procedur operacyjnych i dokumentacji artefaktów zajmuje więcej czasu.
Trenowanie staje się bardziej złożone w miarę wzrostu liczby składników obciążenia. Ta złożoność ma wpływ na czas wdrożenia. Złożoność zwiększa również wiedzę wymaganą do śledzenia planów działania produktów i najnowszych wskazówek dotyczących poziomu usług.
Kompromisy w zakresie niezawodności z wydajnością
Kompromis: zwiększone opóźnienie. Wydajność wymaga, aby system osiągnął cele wydajności dla przepływów użytkowników i danych.
Wzorce niezawodności często obejmują replikację danych, aby przetrwać awarię repliki. Replikacja wprowadza dodatkowe opóźnienie dla niezawodnych operacji zapisu danych, które zużywają część budżetu wydajności dla określonego użytkownika lub przepływu danych.
Niezawodność czasami wykorzystuje różne formy równoważenia zasobów do dystrybucji lub redystrybucji obciążenia na repliki w dobrym stanie. Dedykowany składnik używany do równoważenia zwykle wpływa na wydajność równoważonego żądania lub procesu.
Dystrybucja komponentów między granicami geograficznymi lub strefami dostępności w celu przetrwania wpływu o ograniczonym zakresie wprowadza opóźnienie sieciowe w komunikacji między komponentami, które przekraczają te granice dostępności.
Rozbudowane procesy służą do obserwowania kondycji obciążenia. Chociaż monitorowanie ma kluczowe znaczenie dla niezawodności, instrumentacja może mieć wpływ na wydajność systemu. W miarę zwiększania się możliwości obserwowania wydajność może się zmniejszyć.
Kompromis: zwiększone nadmiarowe przypisanie zasobów. Filar Wydajności zniechęca do nadmiarowego przypisania zasobów, zamiast tego zaleca użycie wystarczającej ilości zasobów do zaspokojenia zapotrzebowania.
Automatyczne operacje skalowania nie są natychmiastowe i dlatego nie mogą niezawodnie obsłużyć nagłego i dramatycznego wzrostu zapotrzebowania, którego nie można ukształtować ani wygładdzić. Dlatego zwiększona dostępność przez większe instancje lub ich większą liczbę jest kluczową taktyką niezawodności, uwzględniającą opóźnienie pomiędzy sygnałem popytu a tworzeniem podaży, co pomaga w absorbowaniu nagłych wzrostów zapotrzebowania. Nieużywane pojemności są sprzeczne z celami wydajności.
Czasami nie można skalować składnika w reakcji na zapotrzebowanie, a zapotrzebowanie nie jest w pełni przewidywalne. Użycie dużych wystąpień do pokrycia najgorszego przypadku prowadzi do marnotrawstwa nadmiarowych zasobów w sytuacjach, które wykraczają poza ten przypadek użycia.
Pokrewne łącza
Zapoznaj się z kompromisami dotyczącymi innych filarów: