Udostępnij za pośrednictwem


Kompromisy w zakresie doskonałości operacyjnej

Doskonałość operacyjna zapewnia jakość obciążeń dzięki wdrożeniu jasnych standardów zespołu, zrozumienia odpowiedzialności i odpowiedzialności, uwagi na wyniki klientów i spójności zespołu. Implementacja tych celów jest zakorzeniona w metodyce DevOps, która zaleca zminimalizowanie wariancji procesów, zmniejszenie błędu ludzkiego i ostatecznie zwiększenie wartości dla obciążenia. Ta wartość nie jest tylko mierzona pod kątem wymagań funkcjonalnych obsługiwanych przez składniki obciążenia. Jest ona również mierzona przez wartość, którą zespół dostarcza w dążeniu do poprawy.

W fazie projektowania obciążenia i w całym jego cyklu życia, w miarę podejmowania ciągłych kroków poprawy, ważne jest, aby wziąć pod uwagę, w jaki sposób decyzje oparte na zasadach projektowania doskonałości operacyjnej i zalecenia z listy kontrolnej przeglądu projektu dotyczące doskonałości operacyjnej mogą wpływać na cele i optymalizacje innych filarów. Niektóre decyzje mogą przynieść korzyści niektórym filarom, ale stanowią kompromisy dla innych. W tym artykule opisano przykładowe kompromisy, które zespół obciążeń może napotkać podczas projektowania architektury i operacji obciążeń.

Kompromisy w zakresie doskonałości operacyjnej z niezawodnością

Kompromis: zwiększona złożoność. Niezawodność określa priorytety prostoty, ponieważ prosty projekt minimalizuje błędną konfigurację i zmniejsza nieoczekiwane interakcje.

  • Strategie bezpiecznego wdrażania często wymagają pewnej zgodności z poprzednimi wersjami między logiką aplikacji a danymi w obciążeniu. Ta dodatkowa złożoność zwiększa obciążenie testowania i może prowadzić do problemów ze złożonością lub integralnością danych obciążenia.

  • Wysoce warstwowa, modularyzowana lub sparametryzowana infrastruktura jako kod może zwiększyć prawdopodobieństwo przypadkowej błędnej konfiguracji ze względu na złożoność interakcji między składnikami kodu.

  • Wzorce projektowe chmury, które korzystają z operacji czasami wymagają wprowadzenia dodatkowych składników, na przykład użycia zewnętrznego magazynu konfiguracji lub koordynacji wdrożeń przyczepki na platformie aplikacji konteneryzowanej. Dodatkowe składniki zwiększają punkty interakcji w systemie, zwiększając obszar powierzchni pod kątem awarii lub błędnej konfiguracji.

  • Składniki obciążenia, które są przeznaczone do niezależnego rozwoju w celu obsługi elastycznego programowania i hostingu, wprowadzają zależności od odnajdywania usług, a nawet DNS jako warstwę pośrednią. Odnajdywanie usługi może nie reagować na zmiany, a diagnozowanie awarii może być trudne.

Kompromis: Zwiększenie potencjalnie destabilizujących działań. Filar niezawodności zachęca do unikania działań lub wyborów projektowych, które mogą destabilizować system i prowadzić do zakłóceń, awarii lub awarii.

  • Wdrażanie małych, przyrostowych zmian jest techniką ograniczania ryzyka, ale te małe zmiany powinny być również dostarczane do środowiska produkcyjnego częściej. Wdrożenia mogą destabilizować system, więc wraz ze wzrostem szybkości wdrażania powoduje to ryzyko.

  • Kultura, która mierzy się z metrykami szybkości, takimi jak wdrożenia tygodniowo, i korzysta z automatyzacji, która może ułatwić wprowadzanie zmian w szybszym tempie, może również wykonywać więcej wdrożeń w krótszym okresie.

  • Zwiększenie gęstości w celu uproszczenia operacji poprzez zmniejszenie liczby powierzchni kontroli i możliwości obserwacji może również prowadzić do zwiększonego ryzyka dostępności, ponieważ awaria lub błędna konfiguracja zwiększa promień wpływu destabilizujące zdarzenie.

Kompromisy w zakresie doskonałości operacyjnej z bezpieczeństwem

Kompromis: Zwiększony obszar powierzchni. Filar zabezpieczeń zaleca ograniczony obszar powierzchni obciążenia pod względem składników i narażenia na operacje. Ta redukcja minimalizuje wektory ataków i tworzy mniejszy zakres kontroli zabezpieczeń i testowania.

  • Składniki otaczające obciążenie i obsługujące jego operacje, takie jak automatyzacja lub niestandardowa płaszczyzna sterowania, muszą być również w zakresie regularnego wzmacniania zabezpieczeń i testowania.

  • Rutynowe, ad hoc i operacje awaryjne zwiększają liczbę punktów kontaktu z obciążeniem. Podejście zerowe zaufania wymaga, aby te procesy były uznawane za wektory ataków i muszą zostać uwzględnione w mechanizmach kontroli zabezpieczeń i weryfikacji obciążenia.

  • Platforma wglądu systemu zbiera dzienniki i metryki dotyczące obciążenia, które mogą być cennym źródłem ujawniania informacji. W związku z tym zabezpieczenia obciążenia muszą być rozszerzane, aby chronić ujścia danych przed zagrożeniami wewnętrznymi i zewnętrznymi.

  • Kompiluj agentów, zewnętrzną konfigurację i przełączniki funkcji, a wdrożenie równoległe zbliża się do zwiększenia obszaru powierzchni aplikacji, który wymaga zabezpieczeń.

  • Większa częstotliwość wdrażania spowodowana małymi zmianami przyrostowym lub "uzyskiwanie bieżących, bieżących" wysiłków powoduje zwiększenie testowania zabezpieczeń w cyklu życia tworzenia oprogramowania.

Kompromis: Zwiększone pragnienie przejrzystości. Bezpieczne obciążenie opiera się na projektach, które chronią poufność danych przepływających przez składniki systemu.

Platformy do obserwacji pozyskujące dane wszystkich typów w celu uzyskania wglądu w kondycję i zachowanie obciążenia. W miarę jak zespoły próbują uzyskać większą wierność w danych z obserwacją, istnieje zwiększone ryzyko, że kontrolki klasyfikacji danych, takie jak maskowanie danych, systemów źródłowych nie rozszerzają się na dzienniki i ujścia dzienników platformy obserwacji.

Kompromis: zmniejszona segmentacja. Kluczowym podejściem zabezpieczeń do izolowania dostępu i funkcji jest zaprojektowanie silnej strategii segmentacji. Ten projekt jest implementowany za pomocą izolacji zasobów i kontrolek tożsamości.

  • Wspólne lokalizowanie różnych składników aplikacji w udostępnionych zasobach obliczeniowych, sieciowych i danych w celu ułatwienia zarządzania odwróceniem segmentacji lub utrudnia osiągnięcie segmentacji opartej na rolach. Współlokowanie składników może również wymagać udostępnienia tożsamości obciążenia, co może prowadzić do nadmiernego przypisania uprawnień lub braku możliwości śledzenia.

  • Zbieranie wszystkich dzienników z całego systemu w ujednoliconym ujściu dziennika może ułatwić wykonywanie zapytań i tworzenie alertów. Może to jednak utrudnić lub uniemożliwić zapewnienie zabezpieczeń opartych na wierszach w celu traktowania poufnych danych przy użyciu wymaganych mechanizmów kontroli inspekcji.

  • Uproszczenie zarządzania zabezpieczeniami opartymi na atrybutach lub rolach przez zmniejszenie stopnia szczegółowości ról i ich przypisań może prowadzić do niewłaściwie szerokich uprawnień.

Kompromisy w zakresie doskonałości operacyjnej z optymalizacją kosztów

Filar doskonałości operacyjnej nigdy nie zaleca działań, które zmniejszają produktywność lub zagrażają zwrotowi obciążenia z inwestycji. Zalecenia, które wydają się koncentrować się na działaniach związanych z dostarczaniem, uwzględniają długoterminowe najlepsze interesy dla obciążenia i zespołu. Jeśli obciążenie zbliża się do daty zachodu słońca, prawdopodobnie nie ma sensu inwestować wysoko w zalecenia, które wyzwalają te kompromisy.

Kompromis: Zwiększone wydatki na zasoby. Głównym czynnikiem kosztowym obciążenia jest koszt zasobów. Wdrażanie mniejszej liczby zasobów, odpowiednie określanie rozmiaru zasobów i zmniejszenie zużycia zwykle pomaga w utrzymaniu niskich kosztów.

  • Zaimplementowanie bezpiecznych praktyk wdrażania, nawet jeśli zmiany są stosunkowo małe, mogą prowadzić do zwiększenia liczby zasobów, które są wdrażane współbieżnie. Te wzorce wymagają wdrożenia wielu współbieżnych wystąpień aplikacji lub składnika infrastruktury, dzięki czemu ruch może być przesunięty w kontrolowany sposób. Ten wzrost jest bardziej wyraźny w obciążeniu, które korzysta z niezmiennego podejścia infrastruktury.

  • Zespół może wymagać wprowadzenia dodatkowych składników obciążenia, aby zaimplementować wzorce projektowe chmury dostosowane operacyjnie lub automatyzację obciążeń. Na przykład w celu obsługi elastyczności wdrożenia mogą dodać składnik routingu bramy. Aby zapewnić lepsze zarządzanie konfiguracją, mogą dodać zewnętrzny magazyn konfiguracji. Aby obsługiwać zdarzenia cyklu życia dzierżawy, mogą one utworzyć płaszczyznę sterowania. Te zasoby wpływają również na koszty środowisk przedprodukcyjnych.

  • Zwiększenie liczby środowisk przedprodukcyjnych w celu poprawy środowiska programistycznego i testowego poprzez izolację zwiększa również liczbę zasobów. Te zasoby, które nie są używane do dostarczania podaży na popyt produkcyjny, zwiększają koszt rozwiązania.

  • Zwiększenie parzystości środowisk przedprodukcyjnych przy użyciu środowiska produkcyjnego pod względem liczby zasobów, jednostek SKU i woluminów danych zwiększa proces zapewniania jakości. Koszty rosną wraz ze wzrostem parzystości.

  • Chociaż dane telemetryczne nie są bezpośrednio zasobami, aby umożliwić skuteczność platform obserwacji, te dane muszą być utrwalane. Większość operacyjnych magazynów danych ma ceny oparte na kombinacji stawek pozyskiwania i ilości. Ogólnie rzecz biorąc, wraz ze wzrostem ilości danych telemetrycznych o małych opóźnieniach, zwiększa się również koszty. W przypadku wdrożeń obejmujących wiele regionów te ujścia danych operacyjnych powinny być wdrażane w poszczególnych regionach, więc wszelkie koszty poszczególnych zasobów stają się czynnikiem.

Kompromis: Zmniejszono skupienie się na działaniach związanych z dostarczaniem. Członkowie zespołu ds. obciążeń dostarczają zwiększoną wartość obciążenia, efektywnie wykonując zadania dostosowane do ich możliwości.

  • Zespoły obciążeń, które spędzają czas na tworzeniu i udoskonalaniu dobrej i odpowiedzialnej struktury pomocy technicznej oraz reagowania na zdarzenia, zapewniają cenną usługę użytkownikom obciążenia. W miarę wzrostu nakładu pracy na pomoc techniczną (na przykład formalne rotacje na wezwanie) zwykle ze względu na zmianę krytycznego działania firmy koszty tych działań rosną. Ten wzrost kosztów może wynikać ze wzrostu liczby pracowników lub pośrednio w postaci uwagi, która została przeniesiona z działań związanych z dostarczaniem do funkcji pomocniczych.

  • Szkolenie jest krytyczną częścią osobistego procesu ciągłego ulepszania zespołu ds. obciążeń. To szkolenie może być formalne lub samoreżyserowane w czasie wzbogacania osobistego. Wraz ze wzrostem czasu trenowania ilość czasu dostępnego na potrzeby bezpośredniego opracowywania obciążeń zmniejsza się. Inwestycje w szkolenia są zmniejszane, gdy szkolenie nie jest oparte na rolach ani specjalnie istotne dla obciążenia ani jego przyszłości.

  • Ustandaryzowane rutynowe zadania operacyjne w celu ochrony niezawodności, zabezpieczeń i wydajności obciążenia zajmują dużo czasu na definiowanie, udoskonalanie i wykonywanie. Ten czas nie jest bezpośrednio poświęcany na dostarczanie. Niektóre przykłady tych zadań to kompleksowa analiza wpływu zmian, procesy kontroli zmian, dokładne testowanie i zwiększone zarządzanie poprawkami. Wraz ze wzrostem częstotliwości, całości lub obciążenia operacyjnego tych zadań czas zainwestowany również wzrasta.

Kompromis: Zwiększone zapotrzebowanie na narzędzia i różnorodność. Filar Optymalizacji kosztów zaleca zmniejszenie rozrastania narzędzi, konsolidacji dostawców i odpowiedniego podejścia do wszystkich zakupów narzędzi.

Zespół ds. obciążeń kupuje narzędzia i sprzęt do obsługi działań wykonywanych w całym cyklu życia tworzenia oprogramowania (SDLC), w tym planowania i projektowania, programowania i testowania oraz monitorowania. Rozwija się platforma handlowa do narzędzi w tej przestrzeni. Narzędzia są oferowane w różnych punktach cenowych, które zwykle odpowiadają funkcjom i możliwościom narzędzi. Z wyjątkiem bezpłatnych ofert te narzędzia generują początkowe koszty licencjonowania, które mogą być na miejscu lub w całej lokacji. Często wymagają one również ciągłych umów konserwacyjnych. Może być konieczne ustanowienie nowych relacji dostawcy. Oto kilka przykładów oczekiwanych wydatków na narzędzia lub sprzęt związane z zasadami doskonałości operacyjnej:

  • Wymagania i zarządzanie listami prac
  • Narzędzia do projektowania architektury
  • Narzędzia do projektowania interfejsu użytkownika/środowiska użytkownika
  • Hosting kodu i zasobów
  • Środowiska programistyczne z małą ilością kodu
  • Narzędzia do automatyzacji
  • Stacje robocze dotyczące programowania i zapewniania jakości
  • Potoki programowania i wdrażania
  • Testowanie wykonywania i śledzenia
  • Narzędzia do obserwacji

Kompromisy w zakresie doskonałości operacyjnej z wydajnością

Kompromis: zwiększone wykorzystanie zasobów. Filar Wydajność wydajności zaleca przydzielanie jak największej ilości dostępnych zasobów obliczeniowych i sieci do wymagań obciążenia.

  • Struktura wglądu obciążenia wymaga, aby składniki w architekturze przydzielały czas i zasoby do tworzenia, zbierania i przesyłania strumieniowego dzienników i metryk. Te punkty danych pomagają zapewnić, że skuteczne alerty i monitorowanie jest możliwe dla niezawodności, bezpieczeństwa i wydajności. Wraz ze wzrostem poziomu instrumentacji obciążenie zasobów systemowych może również wzrosnąć.

  • Niektóre modele wdrażania, takie jak wdrożenie niebieskie/zielone, które może być używane przez obciążenie do bezpiecznego wdrażania, mogą wprowadzać wdrożenia równoległe na platformie aplikacji produkcyjnych. Wdrożenia te wymagają wywłaszczania skalowania, aby zapewnić wystarczającą ilość dostaw, aby sprostać przyszłemu zapotrzebowaniu, lub pozostawić wdrożenie w większości uśpione przez pewien czas, aby zapewnić obsługę wycofywania.

Kompromis: zwiększone opóźnienie. Aby tworzyć wydajne obciążenia, zespoły szukają sposobów skrócenia czasu i zasobów używanych przez obciążenia do wykonywania zadań.

  • Wiele modeli wdrażania wymaga użycia wzorców dostępu do routingu bramy, co może powodować opóźnienie. To opóźnienie jest związane z budżetem docelowym wydajności dla powiązanych przepływów.

  • Niektóre wzorce projektowe chmury, które obsługują "niezależne zmiany w czasie" podejścia do obsługi ideałów przyrostowych ulepszeń, mogą wprowadzać opóźnienia ze względu na przechodzenie dodatkowych składników. To opóźnienie może być wprowadzane przez bramy, brokerów obsługi komunikatów lub warstwy chroniące przed uszkodzeniem.

Zapoznaj się z kompromisami dla innych filarów: