Kompromisy w zakresie doskonałości operacyjnej
Doskonałość operacyjna zapewnia jakość obciążeń dzięki wdrożeniu jasnych standardów zespołu, zrozumiałej 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 liczby błędów ludzkich i ostatecznie zwiększenie wartości dla obciążenia. Ta wartość nie jest po prostu mierzona względem 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 cyklu życia, w miarę podejmowania kroków ciągłego ulepszania, 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 doskonałości operacyjnej mogą mieć wpływ 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ół ds. 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, modułowa lub sparametryzowana infrastruktura, ponieważ 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 w konteneryzowanej platformie aplikacji. Dodatkowe składniki i dodatkowe warstwy pośrednie zwiększają punkty interakcji w systemie, zwiększając obszar powierzchni do 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 jako warstwy pośredniej. Odnajdywanie usługi może nie reagować na zmianę, a awaria może być trudna do zdiagnozowania.
Kompromis: Zwiększone potencjalnie destabilizujące działania. Filar niezawodności zachęca do unikania działań lub wyborów projektowych, które mogą zdestabilizować 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ą zdestabilizować 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 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 zabezpieczeniami
Kompromis: Zwiększony obszar powierzchni. Filar zabezpieczeń zaleca zredukowany 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 traktowane jako wektory ataków i muszą zostać uwzględnione w mechanizmach kontroli zabezpieczeń i weryfikacji obciążenia.
Platforma obserwacji systemu zbiera dzienniki i metryki dotyczące obciążenia, które mogą być cennym źródłem ujawnienia informacji. W związku z tym zabezpieczenia obciążenia muszą być rozszerzone, aby chronić ujścia danych przed zagrożeniami wewnętrznymi i zewnętrznymi.
Kompiluj agentów, zewnętrzną konfigurację i przełączniki funkcji, a także podejścia do wdrażania równoległego zwiększają obszar powierzchni aplikacji, który wymaga zabezpieczeń.
Większa częstotliwość wdrażania spowodowana małymi zmianami przyrostowym lub "uzyskiwanie bieżącej, stałej aktualności" powoduje zwiększenie testowania zabezpieczeń w cyklu 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 obserwacji pozyskiwają dane wszystkich typów, aby uzyskać wgląd w kondycję i zachowanie obciążenia. W miarę jak zespoły próbują uzyskać większą wierność danych z obserwacji, istnieje zwiększone ryzyko, że mechanizmy 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 do zabezpieczeń 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 segmentacją odwrotną 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 szerokiego zakresu 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ę przenosić fokus z działań związanych z dostarczaniem, uwzględniają długoterminowe najlepsze zainteresowania dla obciążenia i zespołu. Jeśli obciążenie zbliża się do daty zachodu słońca, prawdopodobnie nie ma sensu inwestować wysoce w rekomendacje, 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 ustalanie rozmiaru zasobów i zmniejszenie zużycia zwykle pomaga utrzymać niskie koszty.
Implementowanie 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, aby ruch mógł być przesuwany w kontrolowany sposób. Ten wzrost jest bardziej widoczny w obciążeniu, które korzysta z niezmiennego podejścia infrastruktury.
Zespół może wymagać wprowadzenia dodatkowych składników obciążenia w celu zaimplementowania w sposób operacyjny dostosowanych wzorców projektowych chmury lub automatyzacji obciążeń. Na przykład w celu zapewnienia elastyczności wdrożenia mogą one dodać składnik routingu bramy. Aby zapewnić lepszą obsługę zarządzania konfiguracją, mogą dodać zewnętrzny magazyn konfiguracji. Aby obsługiwać zdarzenia cyklu życia dzierżawy, mogą one tworzyć 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 zapotrzebowanie produkcyjne, zwiększają koszt rozwiązania.
Zwiększenie parzystości środowisk przedprodukcyjnych przy użyciu środowiska produkcyjnego w zakresie liczby zasobów, jednostek SKU i woluminów danych zwiększa proces zapewniania jakości. Koszt wzrasta 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 telemetrii o małym opóźnieniu, zwiększa się również koszty. W przypadku wdrożeń obejmujących wiele regionów te ujścia danych operacyjnych powinny zostać wdrożone w poszczególnych regionach, więc wszelkie koszty poszczególnych zasobów staną się czynnikiem.
Kompromis: zmniejszony nacisk na działania związane z dostarczaniem. Członkowie zespołu ds. obciążeń zapewniają zwiększoną wartość obciążenia, wydajnie wykonując zadania dostosowane do ich możliwości.
Zespoły ds. obciążeń, które poświęcają czas na tworzenie i udoskonalanie 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 formalnych rotacji połączeń) 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ń dostawy do funkcji pomocniczych.
Szkolenie jest krytyczną częścią osobistego procesu ciągłego ulepszania zespołu obciążeń. To szkolenie może być formalne lub samoreżyserowane podczas osobistego wzbogacenia. Wraz ze wzrostem czasu trenowania ilość czasu dostępnego na potrzeby bezpośredniego opracowywania obciążenia 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ą trochę czasu, aby zdefiniować, udoskonalić i wykonać. Ten czas nie jest bezpośrednio poświęcany na dostarczanie. Niektóre z 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 wymagania i różnorodność narzędzi. 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. Rośnie platforma handlowa 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 użytkownika, na urządzenie lub w całej witrynie. Często wymagają one również bieżących umów konserwacyjnych. Może być konieczne ustanowienie nowych relacji dostawcy. Poniżej przedstawiono kilka przykładów oczekiwanych wydatków związanych z narzędziami lub sprzętem, które są związane z zasadami doskonałości operacyjnej:
- Wymagania i zarządzanie listami prac
- Narzędzia do projektowania architektury
- Narzędzia projektowe interfejsu użytkownika/środowiska użytkownika
- Hosting kodu i zasobów
- Środowiska programistyczne kodu i środowiska deweloperskie z małą ilością kodu
- Narzędzia automatyzacji
- Tworzenie i zapewnianie jakości stacji roboczych
- 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ść zaleca przydzielanie jak największej ilości dostępnych zasobów obliczeniowych i sieciowych zgodnie z wymaganiami obciążenia.
Struktura obserwacji 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 efektywne 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ą wcześniejszego skalowania, aby zapewnić wystarczającą ilość dostaw, aby sprostać przyszłemu zapotrzebowaniu, lub pozostawić w miejscu w większości uśpione wdrożenie przez pewien czas, aby zapewnić obsługę wycofywania.
Kompromis: zwiększone opóźnienie. Aby tworzyć wydajne obciążenia, zespoły szukają sposobów na skrócenie 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 poprawy przyrostowej, 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.
Pokrewne łącza
Zapoznaj się z kompromisami dotyczącymi innych filarów: