Kompromisy w niezawodności

Niezawodne obciążenie stale spełnia zdefiniowane cele niezawodności. Powinien osiągnąć ustalone cele odporności, najlepiej 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 w przypadku 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 wziąć pod uwagę sposób podejmowania decyzji na podstawie zasad projektowania niezawodności i zaleceń z listy kontrolnej Przegląd projektu dla niezawodności może 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 w niezawodności z zabezpieczeniami

Kompromis: zwiększony obszar powierzchni obciążenia. Filar Zabezpieczenia określa priorytety ograniczonego i zawartego obszaru 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 perspektywy zabezpieczeń preferowany jest ograniczony i zawarty obszar powierzchni, 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. Wymaga to wdrożenia dodatkowych mechanizmów kontroli zabezpieczeń, które mogą być specyficzne dla rozwiązania 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 odpornych żądań. 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 do tych składników dołącza się 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 Bezpieczeństwa zaleca, aby wszystkie mechanizmy kontroli pozostawał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 rozwiązywania problemów mogą spowodować, że zespół tymczasowo wyłączy protokoły zabezpieczeń, pozostawiając już zestresowany system potencjalnie narażony na dodatkowe zagrożenia bezpieczeństwa. Istnieje również ryzyko, że protokoły zabezpieczeń nie zostaną niezwłocznie ponownie ponownie nawiązane.

  • Szczegółowe implementacje mechanizmów kontroli zabezpieczeń, takich jak przypisania kontroli dostępu opartej na rolach lub reguły zapory, powodują wprowadzenie złożoności i poufności konfiguracji, co zwiększa 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ń dostawców.

  • Stosowanie poprawek zabezpieczeń lub aktualizacji oprogramowania może potencjalnie zakłócić działanie składnika docelowego, 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 podstawowych. Jeśli aktualizowanie i wdrażanie kodu aplikacji jest postrzegane jako nieskręfowane ryzyko niezawodności, aplikacja jest narażona na dodatkowe zagrożenia bezpieczeństwa w czasie.

Kompromisy w 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 dla bardziej 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, które w przeciwnym razie mogą prowadzić do problemu z niezawodnością. Wszelkie nadmiarowe pojemności, które nie są wykorzystywane, są uznawane za marnotrawstwo.

  • Jeśli obciążenie korzysta z rozwiązania odzyskiwania po awarii, które nadmiernie spełnia cele punktu odzyskiwania i czasu obciążenia, nadmiar prowadzi do wyższych kosztów z powodu strat.

  • Same 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. Ta przejściowa duplikacja 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ą wglądu w transfer i zbieranie danych. Wraz ze wzrostem możliwości monitorowania częstotliwość i ilość danych zwiększają się, 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ą proces szybkiej reakcji, 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 utraconymi kosztami możliwości ze względu na uwagę, którą można przekierować 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, powoduje marnotrawstwo.

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 możliwości obserwacji.

  • 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 i wzorców niezawodności, 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łączenia i zwiększa wiedzę wymaganą do śledzenia planów rozwoju produktu i 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 zawierają 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 w celu 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 granice geograficzne lub strefy 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.

  • Obszerne 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. Wraz ze wzrostem możliwości obserwowania wydajność może się zmniejszyć.

Kompromis: zwiększona nadmierna aprowizacja. Filar Wydajność 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ługiwać nagłego i dramatycznego wzrostu zapotrzebowania, którego nie można ukształtować ani wygładzyć. 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. Nieużywane pojemności liczniki celów 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 dla innych filarów: