Artykuły
Samouczki
Interaktywne przewodniki
Kwestie dotyczące łańcucha narzędzi DevOps
Lepiej wybrać łańcuch narzędzi DevOps kompleksowy czy z możliwością dostosowania?
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 one sposób tworzenia produktów. Chętnie przestawiliśmy się na małe zespoły interdyscyplinarne 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 zwrotnej i możliwość ciągłego doskonalenia. Zaczęliśmy dostarczać produkty szybciej i przy mniejszej liczbie 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 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.
materiały pokrewne
Zacznij korzystać za darmo
materiały pokrewne
Poznaj integracje
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ści 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.
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.