Close

Kwestie dotyczące łańcucha narzędzi DevOps

Lepiej wybrać łańcuch narzędzi DevOps kompleksowy czy z możliwością dostosowania?

Roberta Krohn — zdjęcie portretowe
Robert Krohn

Kierownik ds. inżynierii, dział DevOps

Opracowanie redakcyjne: Chandler Harris

Łańcuch narzędzi DevOps to zbiór narzędzi, często pochodzących od różnych dostawców, które działają jako zintegrowany moduł służący do projektowania, kompilowania, testowania, zarządzania, mierzenia i obsługi oprogramowania oraz systemów. Pozwala on zespołom programistycznym i operacyjnym współpracować w ramach całego cyklu życia produktu i uwzględnia kluczowe założenia DevOps, takie jak ciągła integracja, ciągłe dostarczanie, automatyzacja i współpraca.

Od Agile do DevOps


Kiedy zasady Agile upowszechniły się, zrewolucjonizowały sposób tworzenia produktów. Chętnie przestawiliśmy się na małe, obejmujące wiele działów zespoły oraz trwające od jednego do dwóch tygodni sprinty, które pozwalały uzyskać artefakty gotowe do wdrożenia produkcyjnego. Zyskaliśmy krótkie cykle informacji zwrotnych i możliwość ciągłego doskonalenia. Zaczęliśmy dostarczać produkty szybciej i z mniejszą liczbą problemów.

To niesamowite, jak szybko zachodzą zmiany. Teraz ,dzięki chmurze, SaaS i zawsze dostępnym usługom, cykl życia tworzenia oprogramowania jest znacznie krótszy. Często zdarza się, że wiele etapów programowania i testowania przebiega równocześnie. W przypadku metodologii Agile stosowano zwykle sprinty o długości od jednego do dwóch tygodni, tymczasem zespoły w dzisiejszych środowiskach opartych na chmurze przeprowadzają iteracje i wdrożenia wiele razy dziennie. Przepływy pracy i bazy kodu ciągle ewoluują. Zespoły wykorzystują flagi funkcji, wydawanie progresywne i testy A/B, aby stale wdrażać bezbłędny kod o wysokiej jakości.

Umożliwiło to przejście od Agile do DevOps, czyli zestawu praktyk, które pozwalają zautomatyzować i zintegrować procesy zachodzące między zespołami programistycznymi a zespołami IT, dzięki czemu mogą one kompilować, testować i wydawać oprogramowanie w sposób szybszy i bardziej niezawodny. Wydajność zespołów DevOps mierzy się na podstawie tego, jak szybo wypychają kod do środowiska produkcyjnego. Jest to zależne od liczby iteracji dostarczanych każdego dnia i tego, jak długo trwa przejście kodu od etapu testowania, przez wdrożenie, aż do produkcji. Typowe projekty w moim zespole odnotowują do 20 zmian dziennie. W niektórych większych projektach mamy nawet 100 zmian dziennie.

Ten przyspieszony przepływ pracy jest możliwy dzięki nowym narzędziom, które umożliwiają zespołom współpracę podczas programowania, testowania i wdrażania. Łańcuch narzędzi DevOps jest szczególnie pomocny, gdyż pozwala zespołom bardzo szybko poradzić sobie z każdym etapem cyklu życia tworzenia oprogramowania.

Czym jest łańcuch narzędzi DevOps?


Łańcuch narzędzi DevOps obejmuje narzędzia i technologie, które umożliwiają zespołom programistycznym i operacyjnym współpracę w całym cyklu życia tworzenia oprogramowania. Uwzględnia on kluczowe założenia DevOps, takie jak ciągła integracja, ciągłe dostarczanie, automatyzacja i współpraca.

Ponieważ DevOps jest zmianą kulturową, w ramach której zespoły programistyczne i operacyjne działają jako zintegrowana jednostka, nie ma jednego narzędzia, które umożliwiałoby wdrożenie zasad i praktyk DevOps. Istnieje za to łańcuch narzędzi DevOps, czyli zbiór rozwiązań, często pochodzących od różnych dostawców, które działają jako zintegrowany moduł służący do projektowania, kompilowania, testowania, zarządzania, mierzenia i obsługi oprogramowania oraz systemów. Często organizacje i zespoły muszą eksperymentować z różnymi kombinacjami narzędzi, aby znaleźć odpowiedni zestaw dla siebie.

Gdy spojrzymy na zaawansowany produkt DevOps, łańcuch narzędzi DevOps powinien umożliwić szybkie zajęcie się różnymi częściami cyklu życia tworzenia oprogramowania i oferować różnym użytkownikom wgląd w prace z różnych perspektyw. Powinien on obejmować narzędzia programistyczne używane w różnych fazach cyklu życia tworzenia oprogramowania, takich jak ciągła integracja i dostarczanie, automatyzacja testów i szybkie wdrażanie. Jeśli chodzi o działalność operacyjną, narzędzia DevOps powinny oferować funkcje pomagające w monitorowaniu i zarządzaniu incydentami. Ponadto powinny łączyć działy programistyczne i operacyjne poprzez zapewnienie ciągłych informacji zwrotnych i rejestrowanie.

Ikona połączonych ze sobą pierścieni
powiązane materiały

Zacznij korzystać za darmo

Ikona węzła organizacji
powiązane materiały

Poznaj integracje

Ilustracja cyklu DevOps

Jeśli potraktujemy lewą stronę pętli nieskończoności jako stronę produktu a prawą jako stronę operacji, menedżer produktu, który przekazuje nową funkcję do produkcji, z pewnością będzie chciał zobaczyć, jak projekt dzieli się na zadania i historyjki użytkowników. Programista po lewej stronie projektu musi zobaczyć, jak przenieść tę funkcję do produkcji, wraz ze zgłoszeniami projektu, historyjkami użytkowników i zależnościami. Jeśli programiści będą stosować się do zasady DevOps polegającej na odpowiedzialność za produkt („you build it, you run it”), będą również zainteresowani usuwaniem przyczyn incydentów.

Jeśli chodzi o stronę operacyjną cyklu życia, inżynier ds. niezawodności lokalizacji musi rozumieć usługi, które można mierzyć i monitorować, aby w przypadku wystąpienia problemu można go było naprawić. Jeśli nie masz łańcucha narzędzi, który łączy wszystkie te procesy ze sobą, efektem jest nieuporządkowane, nieskorelowane i chaotyczne środowisko. Jeśli masz dobrze zintegrowany łańcuch narzędzi, możesz uzyskać lepszy kontekst bieżącej sytuacji.

Opcje w zakresie tworzenia łańcucha narzędzi DevOps


Przy podejmowaniu decyzji dotyczącej odpowiedniego łańcucha narzędzi DevOps ważne jest przede wszystkim zrozumienie podstawowych najlepszych praktyk DevOps oraz sposobu, w jaki narzędzia wspierają te praktyki. Następnie trzeba określić wspólną strategię dotyczącą narzędzi, która umożliwi zespołom współpracę podczas programowania, testowania i wdrażania.

Wdrażając DevOps, organizacje mają zazwyczaj do wyboru dwie opcje — kompleksowy łańcuch narzędzi DevOps lub niestandardowy łańcuch narzędzi DevOps. Wybór odpowiedniego rozwiązania jest ważny, ponieważ kształtuje procesy DevOps zespołu.

Kompleksowy łańcuch narzędzi DevOps

Kompleksowy łańcuch narzędzi DevOps zapewnia kompletne rozwiązanie, które może nie integrować się z narzędziami innych firm. Może on być przydatny dla firm lub grup dopiero rozpoczynających swoją przygodę z DevOps lub w sytuacji, gdy zespół chce szybko rozpocząć projekt. Wadą tego typu łańcucha jest to, że większość zespołów ma już zestaw narzędzi, których używa i które preferuje, a które mogą nie integrować się z kompleksowym rozwiązaniem. Ponadto problemem kompleksowego łańcucha narzędzi może być to, że będzie on dobry w każdym obszarze, ale w żadnym nie będzie najlepszy. Jedno narzędzie po prostu nie jest w stanie ewoluować w tempie szybko zmieniających się rynków. Ponadto firmy dość często muszą integrować starsze narzędzia z łańcuchem narzędzi DevOps, a kompleksowy łańcuch może to ograniczać.

Łańcuch narzędzi DevOps z możliwością dostosowania

Innym podejściem jest użycie łańcucha narzędzi DevOps, który można dostosować do potrzeb zespołu za pomocą różnych rozwiązań. Dzięki temu zespoły mogą wprowadzić dotychczasowe narzędzia, które już znają i lubią, do szerszego łańcucha narzędzi DevOps. Przykładowo zespół może używać systemu Jira do planowania i śledzenia przepływu pracy, Kubernetes do aprowizacji poszczególnych środowisk programistycznych, GitHub do współpracy podczas kodowania, Jenkins do ciągłej integracji itd. Organizacje mogą dostosowywać swoje przepływy pracy pod kątem określonych zespołów i/lub projektów.

W przypadku tego typu łańcuchów narzędzi podstawową kwestią jest integracja. Jeśli różne narzędzia nie pozwalają na integrację ze sobą, członkowie zespołu poświęcają zbędny czas na przełączanie się między ekranami i logowanie do wielu miejsc, a udostępnianie informacji między narzędziami może być utrudnione. Nie jest to optymalny sposób pracy dla programistów ani osób, które próbują zdiagnozować problem. Kiedy reagujesz na incydent, nie masz czasu na czytanie instrukcji i znalezienie kluczowych informacji o nowym narzędziu.

Podsumowując…


DevOps polega na eliminowaniu barier organizacyjnych i sprawieniu, aby cykl życia tworzenia oprogramowania był szybszy, wysoce zautomatyzowany i oparty na bezproblemowej współpracy — niezależnie od tego, czy obejmuje on wiele działów, czy tylko jeden zespół. Wybór odpowiednich narzędzi DevOps, które współpracują ze sobą, wymaga przede wszystkim przyjrzenia się aktualnemu procesowi tworzenia oprogramowania i operacji IT oraz zdecydowania, które obszary należy ulepszyć.

Przeczytaj więcej o narzędziach dla każdej fazy cyklu życia DevOps.

Robert Krohn
Robert Krohn

Robert Krohn jest kierownikiem ds. inżynierii w dziale DevOps Atlassian. Ma ponad 20 lat doświadczenia w inżynierii oprogramowania, zarządzaniu i pracy na stanowiskach kierowniczych związanych z oprogramowaniem, sprzętem i działalnością operacyjną w różnych obszarach rynku. Jego pasją jest budowanie światowej klasy zespołów inżynierskich i wiodących na rynku produktów. Uwielbia jazdę na rowerze, żeglowanie swoim Laserem i narciarstwo zjazdowe. Mieszka w Belvedere w Kalifornii z żoną Nicole, dziećmi, psami i kotem.


Udostępnij ten artykuł
Następny temat

Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ilustracja DevOps

Społeczność DevOps

Ilustracja DevOps

Warsztaty symulacyjne

Ilustracja przedstawiająca mapę

Zacznij korzystać za darmo

Zapisz się do newslettera DevOps

Thank you for signing up