• DevOps

Pokonywanie wyzwań w zarządzanym DevOps: Kompleksowy przewodnik

  • Felix Rose-Collins
  • 7 min read

Wprowadzenie

W szybko zmieniającym się krajobrazie rozwoju oprogramowania i operacji IT, organizacje coraz częściej sięgają po zarządzane usługi DevOps, aby usprawnić swoje procesy, poprawić współpracę i przyspieszyć potoki dostaw. Spędziłem ostatnie siedem lat pomagając firmom we wdrażaniu transformacji DevOps i mogę powiedzieć z pierwszej ręki - to nigdy nie jest tak proste, jak się wydaje z błyszczących broszur. Podczas gdy zarządzany DevOps oferuje ogromne korzyści, od oszczędności kosztów po szybsze cykle wdrażania, organizacje często napotykają znaczące przeszkody podczas wdrażania i bieżącej działalności. Niniejszy kompleksowy przewodnik opiera się na moich rzeczywistych doświadczeniach, aby pomóc w poruszaniu się po typowych wyzwaniach związanych z zarządzanym DevOps i wdrażaniu praktycznych rozwiązań, które faktycznie działają w środowiskach produkcyjnych.

Luka w rzeczywistości w oczekiwaniach dotyczących zarządzanego DevOps

Jednym z największych problemów, z jakimi spotykam się podczas konsultacji z klientami, jest rozdźwięk między oczekiwaniami a rzeczywistością. Wiele organizacji wkracza w zarządzany DevOps z nierealistycznymi harmonogramami i oczekiwaniami.

W zeszłym roku współpracowałem ze średniej wielkości firmą z branży fintech, która spodziewała się całkowicie przekształcić swój cykl wydań z miesięcznych na codzienne wdrożenia w ciągu zaledwie sześciu tygodni od zaangażowania dostawcy zarządzanych usług DevOps. Rzeczywistość? Osiągnięcie tego celu zajęło prawie sześć miesięcy. Dlaczego? Ponieważ nie doceniono kilku krytycznych czynników:

  1. Złożoność starszego systemu: Ich podstawowa platforma bankowa miała ponad 15 lat długu technicznego i praktycznie żadnej automatyzacji.

  2. Luki w umiejętnościach zespołu: Ich deweloperzy mieli minimalne doświadczenie z konteneryzacją, infrastrukturą jako kodem lub praktykami CI/CD.

  3. Opór organizacyjny: Kierownictwo średniego szczebla było po cichu odporne na zmianę ustalonych procesów.

Realistyczne ustalanie oczekiwań

Aby uniknąć podobnych rozczarowań, doradzam teraz klientom, aby:

  • Przeprowadź dokładną ocenę: Przed podpisaniem umowy z jakimkolwiek dostawcą zarządzanych usług DevOps, przeprowadź szczegółową analizę swojego obecnego stanu, w tym długu technicznego, luk w umiejętnościach i gotowości organizacyjnej.

  • Stwórz etapowy plan wdrożenia: Podziel przejście na 30-, 60- i 90-dniowe etapy z jasnymi, mierzalnymi celami.

  • Budżet na krzywą uczenia się: Spodziewaj się obniżonej o 20-30% produktywności podczas początkowego okresu przejściowego, gdy zespoły będą dostosowywać się do nowych narzędzi i procesów.

Mój klient z sektora opieki zdrowotnej przyjął to etapowe podejście i osiągnął znacznie płynniejsze przejście. Zaczęliśmy od prostego potoku CI dla niekrytycznej aplikacji wewnętrznej, a następnie stopniowo rozszerzaliśmy go na bardziej złożone systemy, w miarę jak zespół budował zaufanie i kompetencje.

Opór kulturowy: Cichy zabójca DevOps

Z mojego doświadczenia wynika, że techniczne wyzwania związane z zarządzaniem DevOps rzadko są najtrudniejsze do rozwiązania. Prawdziwe przeszkody mają zazwyczaj charakter ludzki i organizacyjny.

Pewien klient z branży produkcyjnej zwrócił się do mnie po tym, jak jego zarządzana inicjatywa DevOps utknęła w martwym punkcie na wiele miesięcy. Na papierze wszystko wyglądało w porządku - mieli wszystkie narzędzia, renomowanego dostawcę usług i wsparcie kierownictwa. Problem? Głęboko zakorzeniony opór kulturowy między zespołami programistycznymi i operacyjnymi.

Deweloperzy postrzegali nowe potoki CI/CD jako "ograniczające ich kreatywność", podczas gdy działy operacyjne postrzegały zautomatyzowane wdrożenia jako "ryzykowne skróty", które stworzyłyby problemy, które musieliby naprawić. Żadna z tych grup nie została odpowiednio włączona w proces decyzyjny.

Budowanie kultury DevOps, która się trzyma

Oto, co faktycznie zadziałało, aby przezwyciężyć ten opór:

  • Stworzenie wspólnej odpowiedzialności: Stworzyliśmy wielofunkcyjne zespoły ze wspólnymi obowiązkami i wskaźnikami KPI, które łączyły rozwój z sukcesem operacyjnym.

  • Zademonstrowanie wczesnych zwycięstw: Zidentyfikowaliśmy szybkie korzyści, które przyniosły korzyści obu grupom - programiści szybciej otrzymywali informacje zwrotne na temat swojego kodu, podczas gdy operacje widziały mniej telefonów alarmowych o północy.

  • Zapewnienie praktycznego szkolenia: Zamiast szkoleń teoretycznych, wykorzystaliśmy rzeczywiste problemy produkcyjne jako okazję do wspólnego rozwiązywania problemów.

  • Publiczne świętowanie sukcesów: Stworzyliśmy pulpit nawigacyjny "wygranych wdrożeń", który śledził udane wdrożenia, zmniejszoną liczbę incydentów i zaoszczędzony czas.

Sześć miesięcy później te same zespoły, które podważały transformację DevOps, stały się jej największymi zwolennikami. Kluczowy wniosek? Wdrożenia techniczne bez dostosowania kulturowego zawsze będą miały trudności.

Wyzwania związane z integracją zabezpieczeń w szybko poruszających się rurociągach

Bezpieczeństwo pozostaje jednym z najbardziej problematycznych obszarów w zarządzanych wdrożeniach DevOps. Nie jestem w stanie zliczyć, ile razy widziałem, jak organizacje przyjmowały szybkie cykle dostarczania tylko po to, by stworzyć nowe luki w zabezpieczeniach.

Klient z branży detalicznej, z którym współpracowałem w zeszłym roku, zwiększył częstotliwość wdrożeń z miesięcznej do tygodniowej przy użyciu zarządzanych procesów DevOps, ale nieumyślnie wprowadził do produkcji trzy krytyczne luki w zabezpieczeniach, ponieważ jego procesy bezpieczeństwa nie nadążały za przyspieszonym cyklem rozwoju.

Praktyczna integracja DevSecOps

W oparciu o kilka udanych integracji zabezpieczeń, które wdrożyłem, oto co działa:

  • Przesunięcie bezpieczeństwa w lewo: Zintegruj automatyczne skanowanie bezpieczeństwa na każdym etapie potoku, zaczynając od wtyczek IDE, które ostrzegają programistów o błędach, zanim jeszcze zatwierdzą kod.

  • Automatyzacja weryfikacji zgodności: W przypadku branż podlegających regulacjom prawnym zaimplementuj zautomatyzowane kontrole zgodności, które sprawdzają zgodność konfiguracji z wymaganymi standardami przed zezwoleniem na wdrożenie.

  • Wdrażanie zabezpieczeń jako kodu: Traktuj konfiguracje i zasady bezpieczeństwa jako kod, który działa obok kodu aplikacji, zgodnie z tymi samymi procesami przeglądu i testowania.

  • Tworzenie mistrzów bezpieczeństwa: Wyznacz i przeszkol członków zespołu, którzy będą działać jako rzecznicy bezpieczeństwa w swoich zespołach, wprowadzając świadomość bezpieczeństwa do codziennych działań programistycznych.

Po wdrożeniu tych praktyk mój klient z branży detalicznej był w stanie utrzymać cotygodniowy cykl wdrażania, jednocześnie poprawiając swój stan bezpieczeństwa. Zespół ds. bezpieczeństwa przestał być postrzegany jako bloker, a stał się czynnikiem umożliwiającym bezpieczną i szybką dostawę.

Dług techniczny: blokada wdrożenia DevOps

Niemal każda organizacja, z którą konsultowałem się, nie doceniła wpływu istniejącego długu technicznego na transformację DevOps. Starsze systemy, ręczne procesy i słaba dokumentacja mogą znacznie spowolnić wdrażanie zarządzanych rozwiązań DevOps.

Firma świadcząca usługi finansowe, z którą współpracowałem, przez wiele miesięcy zmagała się z integracją swoich starszych systemów mainframe z nowymi potokami CI/CD. Systemy te nie posiadały odpowiednich interfejsów API, miały minimalne zautomatyzowane testy i opierały się na plemiennej wiedzy kilku starszych inżynierów, którzy zbliżali się do emerytury.

Strategiczne radzenie sobie z długiem technicznym

Zamiast przyjmować podejście "wszystko albo nic", oto strategia, którą wdrożyliśmy:

  • Mapowanie nieruchomości: Skataloguj wszystkie aplikacje i komponenty infrastruktury, oceniając każdą z nich pod kątem gotowości do DevOps za pomocą prostego systemu czerwony / bursztynowy / zielony.

  • Tworzenie granic integracji: W przypadku starszych systemów, których nie można łatwo zmodernizować, stwórz czyste interfejsy i warstwy API, które pozwolą nowszym systemom na interakcję z nimi.

  • Ustal priorytety strategiczne: Skoncentruj początkowe wysiłki DevOps na systemach o wysokiej wartości biznesowej i mniejszej złożoności, w których możesz szybko wykazać się sukcesem.

  • Przydziel czas na redukcję zadłużenia: Przeznacz 20% czasu sprintu specjalnie na redukcję zadłużenia technicznego, koncentrując się w pierwszej kolejności na elementach o największym wpływie.

Wykorzystując to podejście, firma z branży usług finansowych z powodzeniem wprowadziła 60% swojego portfolio aplikacji do nowoczesnych praktyk DevOps w ciągu roku, jednocześnie tworząc zrównoważony plan dla pozostałych starszych systemów.

Rozproszenie narzędzi i złożoność integracji

Innym powszechnym wyzwaniem, które zaobserwowałem, jest mnożenie się narzędzi DevOps, które nie współpracują ze sobą dobrze. Jeden z klientów z branży telekomunikacyjnej zgromadził 14 różnych narzędzi w swoim potoku CI/CD, monitorowaniu, skanowaniu bezpieczeństwa i zarządzaniu infrastrukturą - z których większość wymagała ręcznego przełączania między systemami.

Oswajanie łańcucha narzędzi DevOps

W oparciu o udane konsolidacje toolchain, którymi kierowałem, oto co działa:

  • Nadaj priorytet możliwościom integracji: Wybierając narzędzia, priorytetowo traktuj te z solidnymi interfejsami API i gotowymi integracjami z istniejącym zestawem narzędzi.

  • Wdrożenie podejścia platformowego: Rozważ platformy DevOps, które zapewniają wiele możliwości w zintegrowanym pakiecie, zamiast montować najlepsze w swojej klasie rozwiązania punktowe.

  • Automatyzacja testowania łańcucha narzędzi: Twórz zautomatyzowane testy dla łańcucha narzędzi DevOps, aby zapewnić ciągłość działania integracji w miarę aktualizacji narzędzi.

  • Dokumentowanie przepływu pracy od początku do końca: Stwórz przejrzystą dokumentację wizualną pokazującą, w jaki sposób praca przepływa przez cały łańcuch narzędzi, identyfikując ręczne przekazywanie zadań, które można zautomatyzować.

Po skonsolidowaniu łańcucha narzędzi do pięciu dobrze zintegrowanych narzędzi, mój klient z branży telekomunikacyjnej skrócił czas realizacji wdrożeń o 70% i wyeliminował wiele podatnych na błędy ręcznych kroków między systemami.

Wyzwania związane ze skalowaniem w środowiskach korporacyjnych

Skalowanie praktyk DevOps poza początkowe zespoły pilotażowe wiąże się z wyjątkowymi wyzwaniami, których wiele organizacji nie docenia. Przedsiębiorstwo opieki zdrowotnej, z którym współpracowałem, z powodzeniem wdrożyło praktyki DevOps w jednym zespole aplikacji, ale ich model załamał się, gdy próbowali skalować go do ponad 20 zespołów.

Skuteczne skalowanie DevOps

Oto podejście, które ostatecznie zadziałało:

  • Utworzenie wewnętrznego zespołu platformy DevOps: Utworzenie dedykowanego zespołu skoncentrowanego na tworzeniu potoków wielokrotnego użytku, szablonów infrastruktury i automatyzacji, które mogą być wykorzystywane przez inne zespoły.

  • Wdrażanie praktyk innersource: Zachęcaj zespoły do udostępniania kodu automatyzacji, konfiguracji i najlepszych praktyk za pośrednictwem wewnętrznych repozytoriów z jasnymi wytycznymi dotyczącymi wkładu.

  • Mądra standaryzacja: Określ, które aspekty procesu DevOps powinny być ustandaryzowane w różnych zespołach (wymagania bezpieczeństwa, zatwierdzanie wdrożeń), a które powinny być elastyczne (wybór ram testowych, wewnętrzne przepływy pracy).

  • Zbuduj społeczność praktyków: Stwórz regularne fora, na których praktycy DevOps z różnych zespołów mogą dzielić się sukcesami, zdobytymi doświadczeniami i współpracować nad wspólnymi wyzwaniami.

Po wdrożeniu tych praktyk organizacja opieki zdrowotnej z powodzeniem skalowała swoje praktyki DevOps do wszystkich 24 zespołów aplikacji w ciągu 18 miesięcy, zachowując przy tym spójne standardy jakości i bezpieczeństwa.

Zarządzanie kosztami i optymalizacja

Podczas gdy zarządzane DevOps często obiecuje oszczędności, zauważyłem, że wiele organizacji początkowo odnotowuje wzrost kosztów bez odpowiedniego zarządzania i praktyk optymalizacyjnych. Jeden z moich klientów z branży detalicznej zaobserwował podwojenie kosztów infrastruktury w chmurze w ciągu trzech miesięcy od wdrożenia DevOps, ponieważ deweloperzy zyskali możliwość samodzielnego przydzielania zasobów.

Kontrola kosztów bez ograniczania innowacji

Oto, co sprawdziło się w przypadku moich klientów:

  • Wdrażanie tagowania i pokazów zwrotnych: Wymagaj, aby cała infrastruktura była oznaczona tagami zespołu, aplikacji i środowiska w celu śledzenia kosztów i uświadomienia zespołom ich wydatków.

  • Konfigurowanie zautomatyzowanego zarządzania kosztami: Twórz zautomatyzowane zasady, które wykrywają i ostrzegają o anomaliach kosztowych lub wymuszają wyłączanie zasobów nieprodukcyjnych poza godzinami pracy.

  • Wbudowanie optymalizacji kosztów w potok: Zintegruj narzędzia do analizy kosztów infrastruktury bezpośrednio z potokami CI/CD, aby zidentyfikować nieefektywne konfiguracje przed wdrożeniem.

  • Stwórz mistrzów kosztów: Podobnie jak w przypadku mistrzów bezpieczeństwa, wyznacz członków zespołu odpowiedzialnych za świadomość i optymalizację kosztów w swoich zespołach.

Po wdrożeniu tych praktyk mój klient z branży detalicznej zmniejszył wydatki na chmurę o 40%, jednocześnie zwiększając częstotliwość wdrożeń i wydajność aplikacji.

Podsumowanie: Sprawianie, by zarządzane DevOps działało w rzeczywistych organizacjach

W oparciu o moje lata pomagania organizacjom we wdrażaniu i optymalizacji zarządzanego DevOps, odkryłem, że sukces wymaga równej uwagi dla wyzwań technicznych, kulturowych i procesowych. Organizacje, które podchodzą do zarządzanego DevOps jako czysto technicznego wdrożenia, nieuchronnie walczą, podczas gdy te, które zajmują się elementami ludzkimi i organizacyjnymi wraz z komponentami technicznymi, osiągają trwały sukces.

Poznaj Ranktracker

Platforma "wszystko w jednym" dla skutecznego SEO

Za każdym udanym biznesem stoi silna kampania SEO. Ale z niezliczonych narzędzi optymalizacji i technik tam do wyboru, może być trudno wiedzieć, gdzie zacząć. Cóż, nie obawiaj się więcej, ponieważ mam właśnie coś, co może pomóc. Przedstawiamy Ranktracker - platformę all-in-one dla skutecznego SEO.

W końcu otworzyliśmy rejestrację do Ranktrackera całkowicie za darmo!

Załóż darmowe konto

Lub Zaloguj się używając swoich danych uwierzytelniających

Najbardziej udane zarządzane wdrożenia DevOps, w których brałem udział, mają wspólne cechy:

  • Wyraźne dostosowanie celów DevOps do celów biznesowych

  • Sponsoring wykonawczy połączony z oddolnym entuzjazmem

  • Realistyczne harmonogramy uwzględniające krzywe uczenia się organizacji

  • Zrównoważony nacisk na ludzi, procesy i technologię

  • Gotowość do adaptacji w oparciu o informacje zwrotne i zmierzone wyniki

Przewidując i proaktywnie podejmując wyzwania opisane w tym przewodniku, organizacje mogą znacznie zwiększyć swoje szanse na osiągnięcie pełnych korzyści z zarządzanego DevOps: szybszego dostarczania, lepszej jakości, zwiększonego bezpieczeństwa i ostatecznie lepszych wyników biznesowych.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

Zacznij używać Ranktrackera... Za darmo!

Dowiedz się, co powstrzymuje Twoją witrynę przed zajęciem miejsca w rankingu.

Załóż darmowe konto

Lub Zaloguj się używając swoich danych uwierzytelniających

Different views of Ranktracker app