Udostępnij za pośrednictwem


Kompromisy dotyczące niezawodności

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 musi zostać odzyskane do określonego stanu w danym okresie, z których oba są uzgodnione wśród uczestników projektu. Niezbędny jest plan reagowania na zdarzenia, który umożliwia szybkie wykrywanie i odzyskiwanie.

W fazie projektowania obciążenia należy rozważyć, w jaki sposób decyzje opierają się na zasadach projektowania niezawodności i zaleceniach z listy kontrolnej Przegląd projektu dla niezawodności mogą mieć wpływ na cele i optymalizacje innych filarów. Niektóre decyzje mogą przynieść korzyści niektórym filarom, ale stanowią kompromis dla innych. 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 obciążenia. Filar zabezpieczeń określa priorytet ograniczony i zawarty obszar powierzchni, aby zminimalizować wektory ataków i zmniejszyć zarządzanie mechanizmami kontroli zabezpieczeń.

  • Niezawodność jest często uzyskiwana przez replikację. Replikacja może wystąpić 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 uruchomieniowego obciążenia. Te rozwiązania wymagają implementacji dodatkowych mechanizmów kontroli zabezpieczeń, które mogą być specyficzne dla podejścia do odzyskiwania po awarii.

  • Ze względu na cele dotyczące niezawodności mogą być potrzebne dodatkowe składniki dla architektury, co zwiększa obszar powierzchni. Na przykład magistrala komunikatów może zostać dodana w celu wprowadzania żądań odpornych przez oddzielenie. Ta zwiększona złożoność zwiększa obszar powierzchni obciążenia przez dodanie nowych składników, które muszą być zabezpieczone, prawdopodobnie w sposób, który nie jest jeszcze używany w systemie. Zazwyczaj te składniki są dołączone przez dodatkowy kod i biblioteki do obsługi ich użycia lub ogólnych wzorców niezawodności, co zwiększa również obszar powierzchni aplikacji.

Kompromis: Obejście kontroli zabezpieczeń. Filar zabezpieczeń zaleca, aby wszystkie mechanizmy kontroli pozostały aktywne zarówno w normalnych, jak i zestresowych systemach.

  • Gdy obciążenie ma zdarzenie niezawodności, które jest rozwiązywane w ramach aktywnej reakcji na zdarzenia, pilność może powodować presję dla zespołów obciążeń w celu obejścia mechanizmów kontroli zabezpieczeń zoptymalizowanych pod kątem rutynowego dostępu.

  • Działania związane z rozwiązywaniem problemów mogą spowodować tymczasowe wyłączenie protokołów zabezpieczeń przez zespół, pozostawiając już zestresowany system potencjalnie narażony na dodatkowe zagrożenia bezpieczeństwa. Istnieje również ryzyko, że protokoły zabezpieczeń nie zostaną szybko ponownie ponownie nawiązane.

  • Szczegółowe implementacje mechanizmów kontroli zabezpieczeń, takie jak niestandardowe przypisania kontroli dostępu opartej na rolach lub wąskie reguły zapory, wprowadzają złożoność konfiguracji i czułość, zwiększając prawdopodobieństwo błędnej konfiguracji. 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 zabezpieczeń zachęca do "uzyskiwania aktualnego, bądź aktualnego" podejścia do 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.

  • Powyższe zagadnienia dotyczą również kodu obciążenia. 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ść implementacji lub odpady. Obciążenie zoptymalizowane pod kątem kosztów minimalizuje niedostatecznie wykorzystywane zasoby i pozwala uniknąć nadmiernej aprowizacji zasobów.

  • Replikacja jest kluczową strategią niezawodności. W szczególności strategia polega na wystarczających replikacji, aby obsłużyć daną liczbę współbieżnych 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.

  • Nadmierna aprowizacja to inna technika absorbowania nieoczekiwanego obciążenia systemu, takiego jak podczas zdarzenia trybu 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.

  • Wdrożenia obciążeń są potencjalnym źródłem wpływu na niezawodność i ten wpływ jest często ograniczany przez nadmiarowość w czasie wdrażania za pośrednictwem strategii wdrażania, takiej jak niebieska/zielona. Takie przejściowe duplikowanie zasobów podczas bezpiecznego wdrażania zwykle zwiększa całkowity koszt obciążenia w tych okresach. 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ą obserwowanego transferu i zbierania danych. W miarę zwiększania możliwości monitorowania częstotliwość i ilość danych rosną, co prowadzi do dodatkowych kosztów.

  • Dostępność niezawodności w obciążeniach wymaga testowania i testowania. Projektowanie i uruchamianie testów wymaga czasu i potencjalnie wyspecjalizowanych narzędzi, co wiąże się z kosztami.

  • Obciążenia z wysokimi celami niezawodności często mają szybki proces reagowania, który wymaga, aby członkowie zespołu technicznego należeli do formalnej rotacji wywołań. Ten proces wiąże się z dodatkowymi kosztami personelu i utratą kosztów szans sprzedaży ze względu na uwagę, która może być skierowana gdzie indziej. Wiąże się również z potencjalnymi kosztami narzędzi zarządzania procesem.

  • Kontrakty pomocy technicznej z dostawcami technologii są kluczowym składnikiem niezawodnego obciążenia. Umowy pomocy technicznej, które nie są wykorzystywane, ponieważ poziom pomocy technicznej jest nadmiernie aprowizowany, generują straty.

Kompromisy w zakresie niezawodności dzięki doskonałości operacyjnej

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 aktywne/aktywne zwiększa złożoność zarządzania operacyjnego obciążenia. 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ść wpływa na czas wymagany do dołączania. Złożoność zwiększa również wiedzę potrzebną do śledzenia planów rozwoju 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 do replik w dobrej kondycji. Dedykowany składnik używany do równoważenia zwykle wpływa na wydajność żądania lub procesu, który jest zrównoważony.

  • Dystrybucja składników między granicami geograficznymi lub strefami dostępności w celu przetrwania w zakresie wpływu wprowadza opóźnienie sieci w komunikacji między składnikami, które obejmują 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ększona nadmierna aprowizacja. Filar Wydajności zniechęca do nadmiernej aprowizacji, 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ć. W związku z tym nadmierna aprowizacja za pośrednictwem większych wystąpień lub większej liczby wystąpień jest krytyczną taktyką niezawodności, która uwzględnia opóźnienie między sygnałem popytu a tworzeniem podaży w celu ułatwienia absorbowania wybuchów. 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 nadmiernej aprowizacji odpadów w sytuacjach, które znajdują się poza tym przypadkiem użycia.

Zapoznaj się z kompromisami dotyczącymi innych filarów: