Jako, że – naturalnie upraszczając – przyszłość operacji IT to DevOps, ważne jest, aby zrozumieć, co to jest DevOps i jak firmy mogą wdrożyć to nowe podejście do informatyki w swoim przedsiębiorstwie.
DevOps - co to?
DevOps to filozofia i praktyka koncentrująca się na zwinności, współpracy i automatyzacji procesów zespołów IT i deweloperskich. Takie łączenie dwóch światów: programistów i administratorów.
Zgodnie z tradycyjnym podejściem do tematu tworzenie oprogramowania odbywało się niejako w niezależnych od siebie pionach, a działy IT i rozwoju pracowały samodzielnie w ramach własnych zespołów i procesów. Ta separacja i wręcz konkurujące cele teamów tworzyły środowisko pełne nieporozumień, które generowało opóźnienia w produkcji.
DevOps jest odpowiedzią na kulturę „my kontra oni”. Celem jest zniwelowanie różnic pomiędzy działami operacyjnymi IT a działem rozwoju. W konsekwencji – poprawa komunikacji i dobra współpraca. Wprowadzenie kultury DevOps powinno pozwolić stworzyć bardziej płynne, elastyczne procesy oraz dopasować strategię i priorytety w celu szybszego i efektywniejszego dostarczania produktów.
DevOps - jak zacząć? Zasady
Choć DevOps jest praktyczną metodologią, jest to również fundamentalna zmiana sposobu myślenia i kultury w firmie. Kilka kluczowych zasad podkreśla tę filozofię:
- Automatyzacja: Zautomatyzuj wszystko: przepływy pracy, testowanie nowego kodu i sposób dostarczania infrastruktury; ogranicz marnotrawstwo i nadmiar pracy.
- Iteracja: Pisanie małych fragmentów kodu w czasie sprintu co zwiększa szybkość i częstotliwość wdrożeń.
- Ciągłe doskonalenie: Ciągłe testowanie, wyciąganie wniosków z niepowodzeń i działanie na podstawie informacji zwrotnych w celu optymalizacji wydajności, kosztów i czasu wdrożenia.
- Współpraca: ma łączyć zespoły, wspierać komunikację i rozbijać silosy pomiędzy działami rozwoju, operacji IT i zapewniania jakości.
Automatyzacja (i narzędzia, które ją wspierają) pozwalają programistom i specjalistom IT połączyć swoje wysiłki w jeden płynny proces i przyjąć zwinne praktyki, takie jak CI/CD. Proces ten umożliwia współpracę w całym potoku rozwoju, od koncepcji i budowania po wdrażanie i testowanie.
Dodatkowo zasady DevOps traktują priorytetowo ciągłe testowanie i informacje zwrotne. Praktyka ta pozwala na przyspieszenie procesu rozwoju, ale także poprawia jakość i bezpieczeństwo produktów. Poprzez ciągłe testowanie, monitorowanie i niejako przeplatanie się informacji zwrotnej z mniejszymi, ale częstszymi wdrożeniami, wprowadzenie zasad DevOps w firmie ma zapewnić współpracę pomiędzy użytkownikami, programistami i administratorami.
Przebieg procesu DevOps
Przepływ DevOps to przede wszystkim zwinność i automatyzacja. Każda faza procesu koncentruje się na napędzaniu działań produkcyjnych poprzez ciągły rozwój, integrację, testowanie, monitorowanie, informacje zwrotne, dostarczanie i wdrażanie:
- Ciągły rozwój jest terminem zbiorczym, który opisuje iteracyjny proces tworzenia oprogramowania, które ma być dostarczane klientom. Obejmuje on ciągłe: integrację, testowanie, dostarczanie i wdrażanie.
- Ciągła integracja (CI) jest praktyką rozwoju oprogramowania powszechnie stosowaną w procesie DevOps. Programiści regularnie scalają swoje zmiany w kodzie do wspólnego repozytorium, gdzie te aktualizacje kodu są automatycznie testowane.
- Ciągłe testowanie to proces weryfikacji, który pozwala programistom upewnić się, że kod faktycznie działa tak, jak powinien działać w środowisku produkcyjnym. Testowanie może ujawnić błędy i te aspekty działania kodu, które mogą wymagać naprawy lub ulepszenia.
- W trakcie całego procesu rozwoju zespół powinien dysponować środkami do ciągłego monitorowania i przekazywania informacji zwrotnych na temat produktów i systemów. Również w tym przypadku większość procesu monitorowania powinna być zautomatyzowana, aby zapewnić ciągłą informację zwrotną.
- Ciągłe dostarczanie (CD) jest kolejnym logicznym krokiem po CI. Zmiany w kodzie są automatycznie testowane i „pakowane” do wypuszczenia na produkcję. Celem jest szybkie wydanie aktualizacji dla użytkowników. Aby to osiągnąć, CD automatyzuje proces wydawania (bazując na automatycznych testach w CI) tak, że nowe kompilacje mogą być wydawane za pomocą dosłownie jednego wciśnięcia przycisku.
- Dla doświadczonych organizacji DevOps ciągłe wdrażanie może być lepszą opcją niż CD. Jest w pełni zautomatyzowaną wersją CD, bez konieczności ręcznej interwencji człowieka.
DevOps tools - narzędza, które pomogą Ci zmapować Twoje procesy
Dostosowując swoje procesy do środowiska DevOps, warto rozważyć użycie odpowiednich narzędzi, tzw. Devops tools:
- Git: narzędzie DevOps do zarządzania rozproszonym kodem źródłowym, które pozwala śledzić postępy w rozwoju oprogramowania. Można łatwo zapisywać lub powracać do różnych wersji kodu źródłowego i korzystać z funkcji takich jak rozgałęzianie kodu.
- Lucidchart: wizualny obszar roboczy, który pomaga programistom i menedżerom IT tworzyć solidne, łatwe do zrozumienia (to już zależy od ich autorów…) diagramy procesów, zespołów i danych. Lucidchart można wykorzystać jako narzędzie DevOps do modelowania nowego przepływu procesów w celu szkolenia członków zespołu, dokumentowania przekazywania zadań, śledzenia postępów w rozwoju czy utrzymywania wiedzy wszystkich członków zespołu na tym samym poziomie.
- Kubernetes: przeniesienie konteneryzacji na wyższy poziom - grupowanie w logiczne jednostki, wdrażanie w klastrach oraz automatyzacja dystrybucji i harmonogramowania. Kubernetes jest popularnym systemem open-source i narzędziem DevOps, które pomaga zespołom rozwijać swoje projekty z uwzględnieniem możliwości ich skalowania.
- Raygun: monitorowanie błędów i raportów – jest to Devops tool, a konkretnie platforma do monitorowania wydajności aplikacji. Pomaga zdiagnozować problemy i prześledzić błąd aż do konkretnej linii kodu, funkcji czy wywołania API.