Jak wdrożyć skuteczną strategię DevOps?
Opublikowany: 2022-06-29Wstęp
DevOps to strategia rozwoju, która kładzie nacisk na współpracę między programistami a personelem operacyjnym IT. Ale implementacja DevOps to coś więcej niż zwykłe proszenie zespołów o współpracę.
Termin DevOps został wymyślony przez Patricka Debois w 2009 roku, znanego również jako „ojciec DevOps”. Proces składa się z następujących głównych etapów:
- Plan
- Utwórz/Kod
- Budować
- Test
- Wydanie
- Wdrożyć
- Obsługuj i
- Monitor
Oto przewodnik po tym, jak pomyślnie wdrożyć DevOps i wielu różnych strategiach, aby to zrobić.
Nie próbuj robić wszystkiego na raz
Gdy zaczynasz korzystać z DevOps, łatwo się przytłoczyć. Istnieje wiele informacji i może być trudno wiedzieć, od czego zacząć. Polecam zacząć od małych rzeczy i iść w górę.
Najpierw wybierz obszar, który można łatwo zautomatyzować, monitorować i komunikować z użytkownikami końcowymi. Ułatwi Ci to odniesienie sukcesu na wczesnym etapie i nadanie tempa innym obszarom działalności. Na przykład: jeśli automatyzujesz wdrożenia lub konfigurujesz narzędzia do monitorowania, możesz rozważyć rozpoczęcie od wdrożenia aplikacji internetowych lub aplikacji kontenerowych (takich jak Docker). Tego typu usługi zazwyczaj mają mniej zależności niż inne typy systemów, takie jak bazy danych, więc są to łatwiejsze przypadki testowe, dzięki którym możemy mierzyć nasze postępy we wdrażaniu praktyk DevOps w naszych organizacjach.
Rób, co możesz i kiedy możesz
Pierwszą rzeczą do zrobienia jest zapewnienie zespołowi narzędzi, których potrzebuje. Zacznij od tego, co jest dostępne i dodaj więcej funkcji, gdy poczujesz się bardziej komfortowo. Nie próbuj robić wszystkiego na raz; znajdź jedną lub dwie rzeczy, które działają dla Ciebie, a następnie przejdź do następnej.
Zatrudnij automatyzację
Celem DevOps jest zwiększenie szybkości, zmniejszenie kosztów i błędów ludzkich oraz poprawa jakości. Dlatego tak ważna jest automatyzacja. Automatyzacja może oznaczać różne rzeczy w różnych kontekstach (dwa typowe przykłady to testowanie automatyczne i ciągła integracja), ale ogólnie odnosi się do wykorzystania oprogramowania do wykonywania określonych zadań. Oznacza to, że w procesach rozwojowych i produkcyjnych będzie zaangażowanych mniej ludzi, co zmniejszy koszty przy jednoczesnej poprawie jakości — przy jednoczesnym zwiększeniu szybkości.
Zacznij od istniejących narzędzi do tworzenia niestandardowych rozwiązań
Łatwiej jest zacząć od istniejących narzędzi niż opracowywać niestandardowe rozwiązania. Jeśli dopiero zaczynasz, istnieje wiele projektów typu open source i usług w chmurze, które mogą pomóc w szybkim uruchomieniu. Na przykład:
- Platforma automatyzacji DevOps Jenkins Stack: projekt typu open source, który zarządza całym cyklem rozwoju oprogramowania. Zawiera narzędzia do ciągłej integracji (CI) i ciągłego dostarczania (CD), a także do innych typowych zadań DevOps, takich jak testowanie, budowanie, pakowanie i wdrażanie kodu. Obsługuje kilka systemów operacyjnych, w tym Linux i macOS.
- Elasticsearch: Wyszukiwarka oparta na Apache Lucene, która zapewnia pełnotekstowe możliwości wyszukiwania dużych ilości nieustrukturyzowanych danych w czasie rzeczywistym na wielu serwerach. Jest używany przez wiele firm, takich jak Netflix czy PayPal, dzięki czemu mogą bardzo szybko indeksować wszystkie swoje transakcje zachodzące w tych podmiotach dzięki możliwości skalowania w poziomie (czyli dodawania większej liczby instancji w razie potrzeby).
Zacznij od narzędzi, które dobrze łączą się z Twoją kulturą
Kiedy zaczynasz swoją przygodę z DevOps, ważne jest, aby zrozumieć, że nie będziesz w stanie zmienić wszystkiego na raz. Nie możesz zmusić swojej kultury, procesów, ludzi lub technologii do zmiany; jeśli nie są zgodne z celami DevOps i rozwoju Agile, utrudnią jego sukces.
Zamiast próbować wymuszać te elementy w ustalonej formie, która nie pasuje do obecnego sposobu funkcjonowania Twojej firmy, poszukaj narzędzi zaprojektowanych specjalnie dla zespołów programistycznych stosujących metodologie Agile — i daj im miejsce na rozwój, gdy zespół z czasem zwiększy swoje możliwości .
Skoncentruj się na współpracy i zdobywaniu najlepszych mózgów, kiedy tylko możesz
Ale znalezienie i zatrudnienie tych zasobów nie jest łatwe.
Na szczęście istnieje kilka świetnych opcji uzyskania pomocy:
- Poszukaj pomocy w innych firmach, które już wdrożyły DevOps. Nauczyli się już niektórych trudnych lekcji i mogą udzielić ci porady na podstawie własnego doświadczenia.
- Konsultanci mogą być również dobrą opcją, jeśli nie masz czasu na samodzielne poznanie tajników DevOps. Zwykle wiedzą, jakie pytania zadać i gdzie szukać odpowiedzi; są również bardziej prawdopodobne niż pracownicy innych firm (którzy mogą być skoncentrowani na swojej codziennej pracy), ponieważ motywują ich pieniądze, a nie tylko samo dzielenie się wiedzą.* Społeczności open source, takie jak GitHub, zapewniają dodatkowe zasoby po uczenie się, jak współpracują ze sobą poprzez współpracę.* Kursy szkoleniowe mogą być inną opcją, jeśli chcesz dodatkowo skorzystać z wiedzy innej osoby lub zamiast korzystać z zewnętrznego konsultanta.* Książki takie jak The Phoenix Project oferują wewnętrzny wgląd w to, jak jedna firma z powodzeniem wdrożyła DevOps; często są pisane przez osoby, które same były zaangażowane w ich wdrażanie, a nie tylko obserwowały je z daleka.
Automatyczne monitorowanie i raportowanie
Zautomatyzowane monitorowanie i raportowanie to kluczowa praktyka DevOps. Aby poprawić jakość swojego oprogramowania, musisz być w stanie zmierzyć, jak dobrze radzi sobie w produkcji. Deweloperzy powinni być odpowiedzialni za monitorowanie swojego kodu, aby mogli szybko identyfikować problemy. Muszą również mieć strategię gromadzenia tych danych i wdrażania narzędzi analitycznych, które pozwolą im zrozumieć, co dzieje się z ich aplikacjami podczas pracy w środowisku produkcyjnym.

Zespół operacyjny powinien monitorować swoją infrastrukturę, ponieważ odpowiada za upewnienie się, że wszystko działa sprawnie na co dzień. Oznacza to zbieranie metryk dotyczących wykorzystania procesora, wykorzystania miejsca na dysku, wykorzystania przepustowości sieci itp., a także rejestrowanie wszelkich problemów pojawiających się w aplikacjach, aby można było je natychmiast rozwiązać.
Twoja firma powinna monitorować swoje wyniki finansowe, mierząc, jaki przychód przynosi każda nowa funkcja w stosunku do kosztów, takich jak czas opracowania i koszty utrzymania w przyszłości (w tym bieżące wsparcie). Możliwość dokładnego pomiaru tego typu metryk pozwala zespołom w organizacji lub w wielu organizacjach pracujących razem nad jednym projektem — na przykład korzystającym z mikrousług — podejmować lepsze decyzje dotyczące tego, które funkcje powinny mieć pierwszeństwo podczas tworzenia mapy drogowej produktu w oparciu o cele finansowe zamiast skupiać się wyłącznie na redukcji długu technicznego bez względu na szerszy obraz”.
Informuj swoich klientów, bo mogą nie lubić niespodzianek
Załóżmy, że Twoja organizacja wdraża nową bazę kodu dla całej aplikacji internetowej. Wiesz, że wpłynie to na użytkowników końcowych i że nie spodoba im się to, jeśli będą zaskoczeni zmianą.
Możesz ich ostrzec i dać im czas na przygotowanie się do zmiany lub możesz poczekać, aż wejdzie ona w życie, a następnie wyjaśnić, co się stało, dlaczego tak się stało i jak mogą pomóc sobie przyzwyczaić się do zmian.
Jednym ze sposobów informowania użytkowników byłaby kampania e-mailowa, w której wysyłasz zaproszenia z kalendarza z instrukcjami, jak ludzie powinni korzystać z nowych narzędzi, a także ze wskazówkami, jak mogą skorzystać z tych funkcji po ich wprowadzeniu do produkcji (np. pojawi się nowa funkcja wyszukiwania).
Zacznij od małych rzeczy, zautomatyzuj, monitoruj postępy i optymalizuj
Najlepszą strategią wdrażania DevOps jest rozpoczęcie od małych działań, automatyzacja i monitorowanie postępów w czasie.
Zacznij od małych rzeczy: łatwiej jest nabrać rozpędu, gdy zaczniesz od łatwego w zarządzaniu teleskopu. Jeśli spróbujesz zająć się całym działem lub organizacją na raz, może to być przytłaczające i wydawać się niemożliwe. Zamiast próbować wdrażać DevOps w całej firmie jednocześnie, skup się na jednym projekcie lub zespole na raz.
Automatyzacja: dostępnych jest wiele narzędzi, które mogą pomóc zautomatyzować części procesu rozwoju (serwery ciągłej integracji, takie jak Jenkins lub TeamCity), ale mogą być pewne rzeczy, które nie mają jeszcze dostępnych narzędzi — na przykład konfigurowanie kopii zapasowych na potrzeby produkcji serwery w szablonach AWS CloudFormation — więc upewnij się, że te rzeczy są uwzględnione w Twoim planie automatyzacji, zanim przejdziesz do innych!
Monitoruj postęp w czasie: Posiadanie metryk pozwoli wszystkim zaangażowanym (w tym Tobie) ocenić, jak dobrze wszystko idzie w czasie, abyśmy mogli wprowadzać niezbędne korekty na każdym etapie naszej podróży w kierunku pełnej automatyzacji!
Wniosek
Mamy nadzieję, że teraz lepiej rozumiesz, jak DevOps może działać w Twojej organizacji. Jak widzieliśmy, zespół DevOps jest pełen pomocnych zasobów i narzędzi, które pomogą Ci rozpocząć i kontynuować pracę po dokonaniu początkowego przejścia. Kluczem do udanej implementacji jest rozpoczęcie od tego, co już wiesz, a następnie powtarzanie tego, aż zostanie udoskonalone. W ten sposób będziesz mógł wdrożyć skuteczną strategię DevOps bez naruszania budżetu lub obciążania zespołu nowymi obowiązkami!
Polecany obraz: Przepływ pracy DevOps: Źródło: Pease, 2017.
Biografia autora:
Priya ma około 7 lat doświadczenia w badaniach rynku. Obecnie pracuje dla Valasys Media jako Assistant Manager – Content Strategist, która jest jednym z czołowych wydawców mediów B2B na całym świecie. Przygotowała kilka spersonalizowanych raportów dla naszych klientów i przeprowadziła wiele badań dotyczących segmentacji rynku, analizy klastrowej odbiorców i metodologii przychodzących. Współpracowała z instytutami rządowymi oraz domami korporacyjnymi przy kilku projektach. Ma różne zainteresowania i wierzy w podejście do rozwiązywania problemów oparte na danych. Ukończyła studia podyplomowe w dziedzinie nauk ścisłych, a także pisze obszernie o wszystkim, co dotyczy życia, poza marketingiem, nauką, nauką o danych i statystyką. Mocno wierzy w wyższe rzeczywistości i że w życiu zawsze jest coś więcej, niż rozumiemy. Jest uzdrowicielką psychiczną i praktykującą tarota, która wierzy w duchowy sposób życia oraz praktykuje jogę i medytację. Kiedy nie pisze, możesz znaleźć ją, która lubi muzykę lub gotuje.