Dzięki rozwijającym się technologiom możemy zrobić wszystko szybciej, lepiej i przy coraz mniejszym zużyciu zasobów. Widzimy to w każdej branży, ale bez wątpienia liderem w tym obszarze jest IT – powstają nowe narzędzia i metodyki, w tym DevOps. Co to jest?
Co to jest DevOps?
Chociaż ta metoda stała się popularna stosunkowo niedawno, nie jest nowością w świecie IT. Dyskutowano o tym już w 2009 roku na konferencji w Gandawie, która otworzyła serię spotkań pod nazwą DevOps Days. Jego główną sugestią jest poprawa komunikacji i współpracy między zespołami deweloperskimi i administracyjnymi. Stąd nazwa, która łączy w sobie rozwój i działanie (ang. Development & Operations – „rozwój i działanie”).
Co się zmieniło w DevOps?
Przed zastosowaniem tej metodologii dwa główne działy odpowiedzialne za realizację projektu miały różne priorytety i cele. Deweloperzy chcieli jak najszybciej zakończyć prace programistyczne i wdrożyć oprogramowanie u klienta. Polityka ta była jednak sprzeczna z interesami działu administracyjnego, który wolał ograniczyć liczbę zmian kodu do minimum.
Jaki jest wynik tego modelu pracy? Więcej błędów, więcej terminów i kosztów dostawy oraz niższa jakość dostarczonego produktu. Stracili wszyscy: firma, pracownicy i użytkownicy końcowi.
Rozwiązanie znaleziono w połączeniu obu dywizji w jeden zespół, którego członkowie dzielą się między sobą swoją wiedzą i odkryciami. Tak pierwotnie funkcjonował DevOps i właśnie w tej formie wdrażają go teraz mniejsze firmy – administratorzy zapoznają się z podstawami wiedzy produkcyjnej, a deweloperzy rozwijają kompetencje w zakresie wsparcia.
Kolejną zmianą jest zwiększone zainteresowanie automatyzacją procesów (testowanie, analiza, wdrażanie i monitorowanie) oraz infrastrukturą chmurową, które stały się integralną częścią DevOps. Świat IT zyskał nie tylko bardzo praktyczną metodologię, ale także szeroką gamę nowych narzędzi i technologii. Zmiany w sposobie działania były na tyle skuteczne, że wdraża je coraz więcej firm, a na rynku pojawiła się nowa pozycja – inżynier DevOps.
Iteracyjny model pracy
Bardzo ważną modyfikacją, którą zawdzięczamy DevOps, jest zastąpienie kaskadowego modelu pracy modelem iteracyjnym. Co to oznacza i jakie są korzyści? System „tradycyjny” lub kaskadowy dzieli proces realizacji projektu na odrębne etapy, przebiegające jeden po drugim. Należy pamiętać, że aby rozpocząć pracę nad kolejną fazą projektu, należy najpierw wykonać wszystkie zadania z poprzednich faz. Model ten okazał się problematyczny, ponieważ wszystkie kolejne kroki muszą zostać zakończone, jeśli modyfikacje są wymagane na wcześniejszym etapie wdrażania.
Zauważono również, że w trakcie procesu wdrożeniowego zmieniają się oczekiwania klientów, co zmusza zespół do wielokrotnych poprawek. Jak można się domyślić, poświęcono ogromne zasoby czasu, w wyniku czego efekt końcowy daleki był od ideału.
Te niedociągnięcia zostały wyeliminowane w modelu iteracyjnym. Początkowo przyjmuje się tu jedynie przybliżone założenia, które są sprawdzane i dopracowywane w dalszej części procesu wdrażania. Ponadto zamiast czekać na zakończenie całej pracy, fragmenty kodu są zatwierdzane i testowane tak szybko, jak to możliwe. Dzięki temu zespół szybko reaguje na ewentualne potrzeby zmian, a końcowe wyniki są w pełni zgodne z aktualnymi oczekiwaniami klientów.
Dla kogo jest DevOps?
Największymi beneficjentami tej metody są organizacje, których działalność wymaga częstych, ale niekoniecznie dużych zmian w infrastrukturze produktu.
Czy DevOps ma przyszłość?
Firmy, które zdecydowały się na wdrożenie DevOps, widzą w tej metodzie znacznie więcej niż tylko automatyzację i kulturę pracy. Rozumieją, że zwycięzcą jest dostawca, który może pracować szybciej, wydajniej i z lepszymi wynikami niż konkurencja. Nie dziwią zatem statystyki, że np. 77% amerykańskich przedsiębiorstw deklaruje wykorzystanie DevOps w procesie wdrożeniowym lub posiada takie rozwiązanie w najbliższym czasie.