Zasady projektowania doskonałości operacyjnej

Podstawowym elementem filaru doskonałości operacyjnej są praktyki Metodyki DevOps, które zapewniają jakość obciążeń dzięki ustandaryzowanym przepływom pracy i spójności zespołu. Ten filar definiuje procedury operacyjne dla praktyk programistycznych, wglądu i zarządzania wydaniami. Celem jest zminimalizowanie wariancji procesów, prawdopodobieństwa błędu ludzkiego i zakłócenia dla klientów. Aby ocenić kondycję operacyjną, zacznij od następujących pytań:

  • Czy wykonujesz operacje z dziedziną?
  • Czy klienci korzystają z obciążenia z maksymalną przewidywalnością?
  • Jak nauczyć się z doświadczenia i zebranych danych w celu ciągłego ulepszania?

Operacje obciążeń mogą przekształcić się w chaotyczne praktyki, gdy nie ma wyraźnej własności ani przywództwa. W tym środowisku zespoły często uciekają się do metod wykonywanych z dużym nakładem pracy i generują niskie wyniki, co prowadzi do słabego środowiska użytkownika. Te podejścia spełniają tylko krótkoterminowe cele. Długoterminowe korzyści są realizowane poprzez ciągłą ocenę i inwestycje strategiczne.

Zasady projektowania zawierają wytyczne dotyczące strategii operacyjnych, które muszą być brane pod uwagę w celu rozwiązania podstawowych przyczyn, a nie tylko leczenia objawów. Zacznij od zalecanych metod, a następnie obserwuj, co działa i co nie pozwala zidentyfikować obszarów poprawy. Po ustawieniu strategii kontynuuj podejmowanie działań, korzystając z listy kontrolnej doskonałości operacyjnej.

Wymagania operacyjne obciążenia są równie ważne, jak wymagania biznesowe. Wydajne procesy zapewniają, że obciążenie osiąga wyniki biznesowe w ramach ograniczeń zgodności, niezależnie od tego, czy zgodność jest organizacyjna, czy zewnętrzna. Kluczem jest znalezienie powtarzalności ze spójnością.

Celem filaru doskonałości operacyjnej jest zrobienie właściwej rzeczy, zrobienie tego we właściwy sposób i rozwiązanie właściwych problemów jako zespół.

Jeśli spełnisz te cele, obciążenia będą działać niezawodnie i przewidywalnie nawet w czasie zmian. Brak możliwości spełnienia wymagań operacyjnych może prowadzić do niepomyślnie wdrożeń, niespójnego środowiska użytkownika i dodania kosztów, których można było uniknąć dzięki odpowiedniemu planowaniu i usprawnionemu wykonywaniu.

Przyjęcie kultury metodyki DevOps

Ikona celu Zwiększanie możliwości zespołów programistycznych i operacyjnych w celu ciągłego ulepszania ich procesów i projektowania systemu dzięki współpracy, wspólnej odpowiedzialności i własności.

DevOps to społeczność praktyk, w której różnorodność perspektyw i umiejętności kieruje się jedną misją. Zespoły muszą wspierać wspólne środowisko wiedzy zamiast uczenia się silosowego. Użyj funkcji udostępnionych, aby dążyć do przezwyciężenia ograniczeń zasobów.

Dobra kultura DevOps rozwija się na wspólną odpowiedzialność. Zespoły programistyczne i operacyjne powinny dostosować swoje cele i priorytety do oczekiwań klientów i mieć na uwadze skupienie się na biznesie. Zespół programistyczny powinien zaangażować zespół operacyjny w pętli opinii, aby ulepszenia zostały napędzane jako nadrzędne, a inne zespoły również korzystają. Z drugiej strony zespoły operacyjne są odpowiedzialne za pomyślne wdrożenie zespołu programistycznego w wynikach biznesowych przez udostępnienie zasobów i opinii, które są istotne dla obciążenia.

W tym samym czasie praktyki DevOps stosują jasne linie własności i odpowiedzialności dla każdego zespołu. Niezależnie od tego, gdzie działa aplikacja, zespół ds. obciążeń jest odpowiedzialny za aplikację.

Metodyka DevOps optymalizuje zadania operacyjne, aby były skuteczne, ale nie uciążliwe. Aby czerpać pełne korzyści z metodyki DevOps, kultura powinna optymalizować procesy za pomocą technologii i mieć procesy dla osób w organizacji w celu promowania przejrzystej komunikacji.

Podejście Korzyści
Użyj typowych systemów i narzędzi , które promują środowisko współpracy na potrzeby komunikacji i śledzenia postępu. Typowe narzędzia i procesy umożliwiają komunikację przezroczystą. Zarówno zespoły programistyczne, jak i zespoły operacyjne korzystają z świadomości sytuacyjnej w różnych środowiskach, typowych problemów z pomocą techniczną oraz ogólnych wyzwań i zwycięstw.

Zespoły będą już znane z istniejących ścieżek eskalacji, jeśli wystąpi zdarzenie.

Wspólna lista prac sprawia, że priorytety, takie jak praca nad nowymi funkcjami lub naprawianie usterek, jest jasne.
Utwórz sposób uczenia ciągłego i eksperymentowania w całym cyklu programowania.

Obsługa udostępniania wiedzy między zespołami i obsługa dokumentacji do ponownego użycia.

Przeprowadzanie analizy bez winy i przeglądów po wydaniu i/lub po zdarzeniu.
Dzięki mechanizmom eksperymentowania, takim jak testowanie A/B i opracowywanie dowodów koncepcji, możesz zachęcać do innowacji przy jednoczesnym zachowaniu niskich kosztów.

Podziel się wiedzą dzięki współpracy, która sprawia, że zespół biegły w zakresie podejść projektowych, narzędzi i procesów.

Wykonywanie retrospektyw po projekcie pomaga zidentyfikować obszary poprawy i świętować sukces.
Wdrażanie sprawdzonych praktyk branżowych zwinnych , które koncentrują się na optymalizacji akcji.

Poszukaj możliwości "przesunięcia w lewo" w operacjach dotyczących ręcznych i zautomatyzowanych procesów, praktyk wdrażania i zapewniania jakości oraz wglądu.
Rozwiązania programistyczne Agile prowadzą do krótszych cykli życia wydań, które są wskaźnikiem wartości biznesowej.

Wykrywanie, rozwiązywanie i zapobieganie wcześniejszym problemom jest często mniej uciążliwe dla tego procesu.
Ustaw standardy dla wszystkich procedur programistycznych i operacyjnych oraz przejrzyj i zweryfikuj je w regularnym tempie.

Procedury te obejmują rutynowe zadania, procesy poza pasmem, ćwiczenia awaryjne i sytuacje, wybór narzędzi, procedury monitorowania, plany umiejętności, a nawet komunikację z uczestnikami projektu i ujawnieniem klientów.

Bądź celowy i jawny na temat Twoich decyzji.
Standardy dodają przewidywalność operacji i sprawiają, że procesy i praktyki są skalowalne. Walidacja standardów to świetny sposób na narysowanie punktów poprawy.

Przygotuj się na sytuacje awaryjne i rekonwalescencji, przeprowadzając regularne ćwiczenia.

Wykonaj z dokładnością i włącz ład, aby zapobiec anomaliom , które prowadzą do ryzyka.
Korzystaj ze scentralizowanych zespołów operacyjnych z wyspecjalizowanymi umiejętnościami i szerokim doświadczeniem. Korzystanie z zasobów udostępnionych zarówno dla operacji, jak i zasobów jest korzystne.

Mimo że jesteś właścicielem obciążenia, scentralizowany zespół pomaga w zakresie umiejętności funkcjonalnych, takich jak zarządzanie zdarzeniami, proaktywna perspektywa monitorowania i outsourcing wiedzy z zaufaniem.

Ustanawianie standardów rozwoju

Ikona celu Zoptymalizuj produktywność poprzez standaryzację praktyk programistycznych, wymuszanie bram jakości oraz śledzenie postępu i sukcesu dzięki systematycznego zarządzania zmianami.

Zespół deweloperów jest odpowiedzialny za rozwiązywanie problemów z obciążeniami przed wydaniem z minimalnymi problemami. Należy pamiętać o wydajności deweloperów i zoptymalizować je pod kątem szybkich cykli realizacji, od kodowania po wyniki testowania. Implementowanie skutecznych i właściwych procesów, które planują i standandaryzują działania techniczne, a także prowadzą do konsensusu w zespole i uczestnikach projektu.

Podejście Korzyści
Dokumentowanie funkcji obciążeń i przechwytywanie korzyści klienta.

Uzyskiwanie zakresu i szczegółowych wymagań funkcjonalnych i niefunkcjonalnych architektury.

Tworzenie modeli szacowania rozmiaru w celu raportowania zakresu i kosztów związanych z nimi zadań.
Dobre specyfikacje obniżają koszty operacyjne i szanse na awarie , wspierając bardziej produktywne i usprawnione cykle programowania.

Deweloperzy rozumieją kryteria projektowania technicznego, celów i ukończenia przed rozpoczęciem cyklu kodowania.

Dobra dokumentacja ułatwia powtarzalną komunikację i dołączanie nowych członków zespołu.
Użyj standardowej w branży metodologii tworzenia oprogramowania, która jest odpowiednio dostrojona do potrzeb obciążenia i rozmiaru zespołu.

Zachowaj listę prac współdzieloną między wszystkimi rolami.
Przyjęcie dobrze znanej metodologii określa rytm projektu. Usuwa niejednoznaczności procesów, dając członkom zespołu jasne oczekiwania i odpowiedzialność.

Śledzenie na wspólnej liście umożliwia uściślinie i określanie priorytetów zadań zgodnie ze standardowymi rozwiązaniami. Projekt będzie miał większe szanse na dostarczenie na czas.

Metodologie standardowe ułatwiają zarządzanie ryzykiem. Dzięki szczegółowym przeglądom punktów kontrolnych deweloperzy mogą rozwiązywać potencjalne problemy, zanim staną się one showstoppers.
Użyj ujednoliconej kontroli źródła dla wszystkich kodu, skryptów, szablonów wdrażania, definicji potoku i powiązanej dokumentacji.

Strategia rozgałęziania musi obsługiwać bezproblemowe wydawanie niezależnych i zależnych funkcji, poprawek błędów i poprawek.

Użyj wspólnej wiedzy w całej organizacji do tworzenia strategii rozgałęziania i procesów wdrażania.
Właściwe wykorzystanie kontroli źródła ma kluczowe znaczenie w obsłudze współbieżnych zmian i przechowywania wersji.

Zachowaj powtarzalny przepływ pracy umożliwiający wydawanie zmian o różnych rozmiarach i zagrożeniach, przeprowadzanie przeglądów równorzędnych w ramach procesu i przechowywanie dziennika inspekcji.
Mieć procesy zapewniania jakości , które podkreślają testowanie na wczesnym etapie cyklu projektowania.

Uwzględnij wszystkie artefakty dla planowanych procedur testowych, w tym składników aplikacji, infrastruktury i operacji płaszczyzny danych, które są częścią wydania funkcji lub aktualizacji.

Traktuj artefakty jako niezmienne, gdy są promowane przez środowiska, zyskując pewność siebie za każdym razem, gdy przechodzą przez bramę jakości.

W praktyce automatyzuj rutynowe kontrole.
Zapewnienie jakości zapewnia, że wymagania funkcjonalne i niefunkcjonalne zostały spełnione z ufnością, co prowadzi do pozytywnego wpływu na klientów.

Posiadanie planów testów zapewnia jakość i kompletność oraz uwzględnia możliwe przypadki niepowodzeń.

Dzięki bramom jakości można wymusić najlepsze rozwiązania w celu zmniejszenia ryzyka.

Niezmienność daje pewność, ponieważ zapewnia system, który testujesz, jest dokładnie tym, co zwalniasz.

Cykle testowania skutecznie blokują postęp, chyba że zostaną spełnione kryteria jakości.
Zwiększaj spójność przy użyciu przewodników stylów i narzędzi, które wymuszają konwencje, i przyjmują wspólny łańcuch narzędzi na potrzeby programowania, testowania i komunikacji z uczestnikami projektu.

Standardy technologii dla deweloperów powinny wymagać implementacji wzorców, projektowania interfejsów API, rejestrowania, obsługi wyjątków i innych procesów.
Spójność w kodzie umożliwia czytelność i łatwiejszą konserwację. Zmniejsza również złożoność i umożliwia ponowne użycie kodu.

Typowe narzędzia i konwencje ułatwiają zespołom optymalizowanie procesów bez konieczności wprowadzania jednorazowych wyborów.
Konsekwentnie i celowo nalegaj na dokumentację deweloperów kodu zgodnie z jego zapisem. Wyczyść dokumentację kodu, dzięki czemu logika i funkcje są łatwo zrozumiałe, gdy stary kod musi być ponownie przeglądany lub gdy zespoły deweloperskie obracają się.
Zgłaszanie postępów i trendów w celu mierzenia wydajności. Trendy w zakresie usterek, nieudanych aktualizacji, czas wdrażania, pętle opinii i inne metryki są publikowane i które napędzają ulepszenia.

Rozwijanie operacji z obserwacją

Ikona celu Uzyskaj wgląd w system, uzyskaj szczegółowe informacje i podejmuj decyzje oparte na danych.

Utwórz kulturę, która stale poprawia jakość, monitorując obciążenie i biorąc pod uwagę wszystkie filary platformy Azure Well-Architected Framework. Umożliwia zespołowi i uczestnikom projektu podejmowanie zarówno krótkoterminowych, jak i długoterminowych decyzji w wielu aspektach, zapewniając niezbędne dane, statystyki i trendy. Dowiedz się więcej na podstawie ulepszeń danych i dysków.

Operacje utworzone na potrzeby obserwacji są kluczem do proaktywnej konserwacji aplikacji, jakości i bezpieczeństwa, planowania pojemności i zarządzania produktami.

Kluczowym aspektem monitorowania jest aplikacja korzystająca z modelowania kondycji, która ułatwia przewidywanie problemów przed ich wystąpieniem i wpływem na środowisko klienta. Efektywne monitorowanie zmniejsza cykle reaktywne związane z zarządzaniem zdarzeniami.

Podejście Korzyści
Utwórz system monitorowania przy użyciu własnego stosu i przepływów.

Traktuj system monitorowania jako wymiar obciążenia oddzielonego od jego narzędzia. Stos musi obejmować wszystkie warstwy, w tym infrastrukturę, kondycję aplikacji oraz procesy kompilacji i wydawania.

Przechwytywanie lub próbkowanie danych biznesowych jest poza zakresem implementacji możliwości obserwacji.
Rozdzielaj stosy monitorowania i obciążeń, aby oddzielić wymagania funkcjonalne i wymagania dotyczące obserwacji oraz umożliwić niezależną ewolucję. Zmiany w kodzie nie powinny wpływać na monitorowanie i odwrotnie.

Ponieważ wymagania dotyczące obserwacji są oddzielone od wymagań funkcjonalnych, dane biznesowenie będą zakłócane przez monitorowanie zmian konfiguracji ani awarii.
Spójność dysku w procesie zbierania dla każdego typu źródła danych.

Standaryzacja instrumentacji w kodzie przy użyciu standardów branżowych dotyczących telemetrii, zbierania metryk infrastruktury i narzędzi.
Spójność zapobiega wariancji w wykrywaniu i pomiarze, ponieważ znajomość podobnych zasobów skraca czas spędzony na korelowaniu i analizowaniu danych. Masz całościową perspektywę przewidywania problemów.

Emituj dane telemetryczne z kodu aplikacji, który koreluje kluczowe punkty przepływu wykonywania i zapewnia pełny widok na różnych poziomach szczegółowości. Określanie priorytetów akcji na podstawie poziomu ważności i zrozumienie kontekstu pod względem ich szczegółowości. Te informacje mają kluczowe znaczenie dla celów rozwiązywania problemów.
Właścicielem odpowiedzialności za emitowanie i zbieranie danych, nawet gdy ujścia danych są współużytkowane przez wiele zespołów i zarządzane przez centralne zespoły. Dzięki zlokalizowaniu danych monitorowania w środowisku obciążenia zespół może uzyskać dostęp do dzienników i metryk, aby rozwiązać problemy związane z obciążeniem.
Zbierz wystarczająco dużo danych i zachowaj je przez wystarczająco dużo czasu.

Rozważ kompromisy kosztów związane z rejestrowaniem i przechowywaniem danych.
Celowe zbieranie danych pomaga zoptymalizować koszty finansowe i operacyjne związane ze zbieraniem większej ilości danych niż potrzebujesz.

Zminimalizuj szum i unikaj intensywnych obliczeń podczas analizy, a także zmniejsz koszt przechowywania danych, których już nie potrzebujesz.
Rozróżniaj różne sygnały monitorowania: profile, dzienniki, metryki i ślady. Użyj każdego sygnału w odpowiednim celu.

Określanie priorytetów użycia metryk w celu wyzwalania akcji opartych na pomiarach liczbowych.

Użyj profilów, aby uzyskać widoczność niższego poziomu, na przykład alokację pamięci, do systemu.

Zarezerwuj użycie dzienników i śladów, aby zapewnić kontekst przepływów i zależności.
Korzystając z sygnałów dla odpowiednich celów, można zapobiec nieefektywnej implementacji systemu monitorowania.

Na przykład używanie dzienników dla akcji wymaga analizowania. Możesz szybciej osiągnąć te same cele za pomocą metryk.
Agregowanie i wizualizowanie danych na pulpitach nawigacyjnych w celu prezentowania danych monitorowania, które są zaspokajane przez odbiorców i utrzymuje kontekst biznesowy.

Użyj pulpitów nawigacyjnych sytuacyjnych do kształtowania danych, aby zwiększyć świadomość wśród uczestników projektu.

Użyj operacyjnych pulpitów nawigacyjnych i skoroszytów z funkcjami przechodzenia do szczegółów dla działań operatorów, takich jak reagowanie na zdarzenia. Często odświeżaj pulpity nawigacyjne i udostępniaj szczegółowe dane.
Wizualizacje umożliwiają analizowanie trendów, śledzenie pod kątem celów biznesowych i zarządzanie zdarzeniami.

Pulpity nawigacyjne dostosowane do zainteresowania klienta sprawiają, że interpretacja jest odpowiednia i przyspiesza czas wykrywania i akcji.
Umożliwia podejmowanie działań alertów przez powiadamianie ról możliwych do odpowiedzialności za pomocą ustandaryzowanych opisów i poziomów ważności. Podaj informacje, które są sortowane z różnych źródeł i śledzą odchylenia od celów biznesowych.

Wyzwalaj alerty tylko dla zdarzeń, które wymagają akcji.

Dążenie do proaktywnych i prowokujących do myślenia alertów, które inicjują akcje, zanim stan obniżonej wydajności stanie się niepowodzeniem.
Alerty zwracają uwagę na istotne zdarzenia zdefiniowane przez organizację.

Dobry system alertów identyfikuje akcje i ważność oraz zapewnia wystarczającą ilość danych, aby zwiększyć przejrzystość i cel. Operatorzy mogą rozpocząć korygowanie bez opóźnień.

Wdrażanie z pewnością

Ikona celu Osiągnij żądany stan wdrożenia z przewidywalnością.

Utwórz łańcuch dostaw obciążenia, który umożliwia spójne osiągnięcie celu przewidywalności we wszystkich środowiskach w ramach platform hostingowych, aplikacji, danych i zasobów konfiguracji obciążenia. Mechanizm wdrażania musi mieć możliwość automatyzacji, testowania, monitorowania i przechowywania wersji. Powinna być modularyzowana i gotowa do wykonania na żądanie. Nie powinien być reprezentowany jako monolityczny proces kompleksowego. Łańcuch dostaw nie musi być przeznaczony do szybszego wykonywania, ale do osiągnięcia spójności i samodzielnej dokumentacji w wielu iteracji.

Zespół ds. obciążeń jest odpowiedzialny za łańcuch dostaw, ponieważ odnosi się do własnego obciążenia.

Podejście Korzyści
Użyj infrastruktury jako kodu (IaC), aby zdefiniować powtarzalne aspekty łańcucha dostaw, które są gotowe do produkcji.

Preferuj metody deklaratywne w przypadku metod imperatywnych.
Technologie IaC deklaratywne są zaprojektowane z myślą o automatyzacji i ponownym użyciu. Wdrożenia infrastruktury można odciążać od użytkowników indywidualnych do narzędzi i osiągać spójną jakość.

Z perspektywy infrastruktury mniejsza liczba opcji technologicznych eliminuje wariancję narzędzi i ułatwia wykrywanie dryfu konfiguracji. Konserwacja będzie również łatwiejsza. Jeśli dopasujesz wybory do istniejącego zestawu umiejętności zespołu, zespół może je łatwo przyjąć.
Przygotuj zespół do korzystania z wybranej technologii IaC. Dowiedz się więcej o swoim modelu rozszerzalności, możliwościach i ograniczeniach.

Wykorzystaj specjalizację w zespole i udostępnioną wiedzę w organizacji.
Upskilling zwiększa produktywność i wspiera środowisko współpracy poprzez wspólne uczenie się.

Możesz wypełnić luki w szkoleniu zamiast zatrudniania.
Postępuj zgodnie z zaleceniami dotyczącymi programowania i konserwacji IaC.

Modularyzacja w moderacji. Unikaj abstrakcji niestandardowych lub niskich wartości.

Postępuj zgodnie z podejściem warstwowym, aby odzwierciedlić różne cykle życia. Warstwy podstawowe formularza, w których niższe warstwy pozostają stałe, a górne warstwy zmieniają się zgodnie z potrzebami.

Artefakty wdrażania, takie jak pliki binarne aplikacji, szablony IaC i parametry, są częścią obszaru podatnego na ataki. Zastosuj gwarancje, takie jak zarządzanie wpisami tajnymi, kontrola dostępu i inne zasady filaru zabezpieczeń.
Artefakty mają taki sam poziom inżynierii, jak kod aplikacji. Kontrole jakości za pośrednictwem przeglądów równorzędnych i testowania zapewniają pewność wdrożenia.

Podejście warstwowe ułatwia konserwację i tworzy granice, które określają jasne linie odpowiedzialności.

Dodanie mechanizmów kontroli zabezpieczeń do artefaktów pomaga chronić system podczas procesu wdrażania.
Utwórz wspólny manifest wdrożenia używany we wszystkich środowiskach. Użyj tego manifestu jako domyślnego mechanizmu dla projektów greenfield, przyrostowych aktualizacji obciążeń lub odzyskiwania po awarii. Usuń obciążenie związane z utrzymywaniem wielu zasobów.

Jeśli wystąpi awaria, odzyskiwanie będzie szybkie i niezawodne, ponieważ można wdrożyć wypróbowany i przetestowany manifest zamiast tworzyć improwizowane środowisko.
Staraj się dążyć do niezmiennej i efemerycznej infrastruktury wdrożonej za pośrednictwem automatyzacji IaC. Uniemożliwianie dryfu konfiguracji i wprowadzanie idempotentnego wdrożenia.

Tego rodzaju infrastruktura usuwa znaczne obciążenia operacyjne, takie jak stosowanie poprawek. Oferuje również podstawowe scenariusze weryfikacji, takie jak wdrożenia infrastruktury niebieskiej zielonej.

Uwaga

Zmniejsz zakres użycia portalu tylko do zadań śledczych, które nie powtarzają się.

Automatyzacja pod kątem wydajności

Ikona celZastępuje powtarzające się zadania ręczne automatyzacją oprogramowania , która umożliwia szybsze ich wykonywanie, większą spójność i dokładność oraz zmniejsza ryzyko.

Obciążenie może mieć przepływy pracy z procesami, które obejmują członków zespołu wykonujących przyziemne, powtarzalne i czasochłonne zadania, które w rzeczywistości nie potrzebują człowieka intelektu. W zależności od częstotliwości możesz poświęcić dużo czasu na te wysiłki, inwestując więcej czasu w miarę wzrostu obciążenia. Ponadto te procesy są często podatne na błędy z powodu ludzkich danych wejściowych.

Dzięki automatyzacji oszczędzasz czas, nakład pracy i pieniądze i unikasz błędów.

Podejście Korzyści
Oceń wszystkie przepływy pracy pod kątem kryteriów, które są na odpowiednim poziomie złożoności, nakładu pracy, częstotliwości, dokładności, osi czasu i cyklu życia.

Automatyzuj przepływy pracy na podstawie tej oceny i ustalaj priorytety przepływów pracy z najwyższymi oczekiwanymi zwrotami.

Usuń nadmiarowe przepływy pracy lub dodaj wartość, aby uzasadnić wysiłek ludzki.
Możesz reinwestować pojemność zespołu w wyższej wartości pracy i zwiększyć produktywność i spójność.

Utworzenie spisu przepływów pracy zapewnia automatyzację odpowiednich zadań. Usuwanie nadmiarowych zadań zmniejsza złożoność i błędy.
Podczas oceniania, czy tworzyć niestandardowe narzędzia, czy kupować oprogramowanie, należy jawnie podjąć decyzję.

Zarezerwuj automatyzację budynku dla wysoce wyspecjalizowanych i wysokowartych prac.
Kupując gotowe oprogramowanie i korzystając z umowy pomocy technicznej, można zaoszczędzić na kosztach konserwacji.

Tworząc oprogramowanie, masz większą kontrolę i możesz obsługiwać przypadki użycia, które są unikatowe dla twojego zespołu i obciążenia. Jednak istnieje wpływ na koszty.

Wybór narzędzi zapewnia poziom standaryzacji operacji. Dzięki szkoleniu można osiągnąć jednolity poziom gotowości do wdrożenia.
Projektowanie składników obciążenia w celu obsługi możliwości automatyzacji. Unikaj sytuacji, w której brak automatyzacji w projekcie systemu promuje antywzór powtarzających się zadań, spowalnia wzrost i rozpoczyna gromadzenie długu technicznego.
Traktuj całą automatyzację jako krytyczną zależność obciążenia. Dostosuj się do oczekiwanego wzrostu obciążenia.

Narzędzia automatyzacji są integralną częścią obciążenia i powinny być zgodne z pięcioma filarami platformy Well-Architected Framework.
Zaprojektuj składnik automatyzacji tak, aby wytrzymał zagrożenia, takie jak zagrożenia bezpieczeństwa. Zastosowanie najlepszych rozwiązań pozwala uniknąć rozrastania implementacji.

Obciążenie będzie nadal działać z gwarancją wysokiego poziomu, jeśli ta zależność jest zachowana funkcjonalnie i bezpieczna.
Automatyzuj na dużą skalę , eksplorując opcje wykraczające poza obciążenie.

Faworyzowanie modelu "jeden raz, uruchamianie wszędzie", udostępniając szablony i struktury do dołączania nowych projektów i promowania ponownego użycia istniejących projektów i implementacji.
Stosowanie wypróbowanych i przetestowanych metod oraz zmniejszanie prawdopodobieństwa awarii.

Wdrażanie bezpiecznych praktyk wdrażania

Ikona celu Zaimplementuj zabezpieczenia w procesie wdrażania, aby zminimalizować wpływ błędów lub nieoczekiwanych warunków.

Podczas cyklu tworzenia artefakty obciążeń przechodzą wiele zmian w miarę ich implementacji i testowania oraz naprawiania usterek.

Proces wdrażania musi być zgodny ze standardową procedurą operacyjną. Każda zmiana musi zostać wdrożona z tym samym poziomem rygora. Ta zasada ma również zastosowanie do kodu, konfiguracji i wszystkich powiązanych artefaktów. Kluczem jest stosowanie bezpiecznych praktyk tak szybko, jak to możliwe, aby zapewnić przewidywalność w środowisku produkcyjnym. Nawet jeśli błędy docierają do klientów, powinno być możliwe jak najszybsze wdrożenie zmian odzyskiwania.

Podejście Korzyści
Standaryzacja procesu wdrażania wszelkich zmian przy użyciu zautomatyzowanych procesów wdrażania, takich jak potoki.

Wszystkie środowiska muszą używać potoków.

Klasyfikowanie zasobów i wersji na środowisko w celu łatwego śledzenia i identyfikacji.
Spójne metody wdrażania zmniejszają problemy spowodowane błędami procesów i wariancją oraz umożliwiają skoncentrowanie wysiłku na kwestiach związanych z obciążeniem.

Standaryzacja zapewnia bezpieczne, niezawodne i powtarzalność wdrożenia.

Klasyfikacja ułatwia wyświetlanie dzienników poprzednich wdrożeń i problemów, które wystąpiły. Możesz użyć tych informacji, aby przyspieszyć operacje wycofywania i wycofywania.
Wdrażanie małych aktualizacji przyrostowych w regularnym tempie. Częste, dobrze przetestowane, małe aktualizacje ułatwiają walidację wersji.

Szybsze rozwiązywanie problemów z minimalnym wpływem klientów z powodu mniejszego zużycia pamięci.
Rygorystyczne testowanie aktualizacji przy użyciu różnych mechanizmów w całym cyklu projektowania. Przechwyć problemy we wczesnych etapach programowania. Iteracyjne poprawki i spójne rozwiązania wdrażania powodują problemy z naciśnięciem do czasu gotowości aktualizacji do środowiska produkcyjnego.
Stopniowo wdrażaj aktualizacje z należytą starannością.

Używaj modeli wdrażania, które zapewniają kontrolę, aby stopniowo zwiększać liczbę wystąpień i klientów do momentu bezpiecznego przyjęcia aktualizacji przez wszystkie.
Przetestuj każdą aktualizację w kontrolowany sposób, aby problemy zostały rozwiązane na wczesnym etapie produkcji. Unikaj wdrażania wadliwej aktualizacji, która ma wpływ na całą bazę klientów.

Sprawdź, czy aktualizacja jest zgodna z poprzednimi wersjami i do przodu.
Mają strategię ograniczania ryzyka, aby szybko odzyskać sprawność po niepowodzeniach wdrażania.

Strategia powinna obejmować podejmowanie decyzji dotyczących wycofywania lub wprowadzania dalej w oparciu o krytyczność problemu.

Mają dobrze zdefiniowane procesy i zautomatyzowane systemy , które mogą szybko wdrażać poprawki przy użyciu standardowych potoków wdrażania.
Zmniejsz czas trwania potencjalnego wpływu.

Przywróć system z powrotem do poprzedniej wersji roboczej lub przejdź do wersji, która zawiera poprawki, które zostały dokładnie przetestowane.
Plan rezerwowy , który resetuje system do stanu roboczego w przypadku wystąpienia awarii i odzyskiwania po nieoczekiwanych awariach. Tej strategii należy używać tylko wtedy, gdy jest to konieczne i z zatwierdzeniem.

Staraj się ulepszać plan w czasie.
Możesz szybko śledzić poprawki o wysokim priorytcie, takie jak korygowanie zabezpieczeń.

Przyspieszony potok może nie mieć wszystkich kontroli standardowych procedur operacyjnych, ale klienci będą mogli korzystać z bezpiecznej wersji w najszybszy możliwy sposób, co przewyższa błędy o niższym wpływie.

Następne kroki

Zalecamy przejrzenie listy kontrolnej doskonałości operacyjnej, aby zapoznać się z innymi pojęciami.