Choć dla niektórych DevOps nadal nie jest zbyt jasnym pojęciem, nie ma wątpliwości, że to metodologia, której biznes powinien się uważniej przyjrzeć. DevOps pozwala eliminować opóźnienia i efektywnie wykorzystywać zasoby IT, co jest niezwykle istotne przy wciąż rosnących oczekiwaniach i wymaganiach nowej, cyfrowej rzeczywistości.

 REKLAMA 
 ERP-VIEW.PL- STREAMSOFT 
Do tej pory dostarczanie oprogramowania było stosunkowo proste. Wszystkie wymagania były definiowane z klientem następnie przekazywane do kodowania oraz do testów jakości (Q&A) i wdrażane przez administratorów. Proces ten wydaje się czytelny i poukładany. I nadal sprawdza się w tych sytuacjach, gdy szybkość i wydajność nie są priorytetem. Jednak obecnie firmy odczuwają coraz większą presję do wprowadzania nowych funkcji i usług, gdy tylko są potrzebne. Status quo coraz częściej nie odpowiada nowoczesnym ambicjom i oczekiwaniom.

Tradycyjnie = znacznie wolniej

W tradycyjnym modelu różne zespoły programistów pracują równolegle. Często zdarzają się sytuacje, w których po stworzeniu całego kodu lub nawet sfinalizowaniu aplikacji – odkrywa się, że niektóre fragmenty są niekompatybilne. Wszystkie zespoły muszą czekać na rozwiązanie problemu i zakończenie działań, zanim możliwe będzie połączenie kodu w aplikację. Nie tylko zaburza to dynamikę pracy, ale jest również zwyczajnym marnowaniem czasu.

Możliwe są także takie scenariusze, w których integracja kodu kończy się sukcesem. Wówczas zespół testerów Q&A prosi administratorów o konkretne środowisko, aby móc przetestować aplikację. Bez automatyzacji zespół Ops może potrzebować nawet kilku dni, aby je zapewnić. Programiści kontynuują tworzenie kodu. Może się okazać się, że powielają błędy, które zostaną odkryte dopiero podczas testów. Ponieważ wszystko odbywa się w tym samym czasie, ale w odrębnych procesach – potencjalnie nawet cały kod może wymagać kolejnego poważnego przeglądu.

Innym powszechnym problemem jest tempo, w jakim operatorzy mogą zapewnić odpowiednie środowisko do testowania kodu. W większych organizacjach opóźnienia mogą trwać tygodnie i obejmować więcej niż jeden dział, jeśli np. konieczne jest specjalne pozwolenie od odrębnego zespołu ds. bezpieczeństwa.

DevOps na ratunek!

Eliminowanie problemów wynikających z tradycyjnych metod pracy IT stanie się niedługo jednym z priorytetów firm. W czasie, kiedy wymaga się coraz szybszego i efektywniejszego dostarczania nowych aplikacji, optymalizacja tych procesów może przynieść znaczne korzyści.

Warto poznać „ABC” metodologii pracy DevOps, aby lepiej zrozumieć ich zasady działania:
  • Ciągła Integracja (CI – Continuous Integration) – podejście DevOps wykorzystuje zwinną metodologię (agile), w której zazwyczaj mniejsze funkcjonalne fragmenty kodu, takie jak np. dodatkowa funkcja, są regularnie i płynnie integrowane z główną gałęzią aplikacji. W ten sposób błędy są od razu zauważane i szybko poprawiane.
  • Architektura mikroserwisów – małe fragmenty kodu, nad którymi właśnie toczy się praca, są zazwyczaj tworzone w ich własnym, odizolowanym (konteneryzowanym) środowisku, gdzie poszczególne elementy mają swoje punkty komunikacyjne, aby móc porozumiewać się z innymi komponentami poprzez interfejsy programowania aplikacji (API). Daje to deweloperom wystarczającą elastyczność, aby móc dodawać lub usuwać komponenty bez wpływania jednocześnie na inne. Również w przypadku awarii – w architekturze mikrousług – przestają działać wyłącznie wybrane funkcje, niekoniecznie cała aplikacja.
  • Ciągła Dostawa (CD – Continuous Delivery) – po CI (ciągłej integracji) zintegrowany kod jest automatycznie testowany w kilku środowiskach, aż do preprodukcji, gdzie jest już wdrażany lub gotowy do wdrożenia. Niektóre firmy stosują automatyzację jedynie do tego etapu i dalej preferują manualne wdrażanie. Integracja CI i CD określana jest jako CI/CD. 
  • Ciągłe wdrażanie (CD – Continuous Deployement) – ostatecznym celem działania zespołu DevOps jest: ciągła integracja, a następnie ciągła dostawa i ciągłe wdrażanie (CI / CD²). Cały proces staje się wówczas zautomatyzowany – od zatwierdzania kodu aż do produkcji. Ciągłe, automatyczne wdrożenie sprawia, że klienci uzyskują dostęp do poszczególnych funkcji dokładnie w tym momencie, gdy są one gotowe.
  • Centralizacja w chmurze – DevOps rozwija się w chmurze i w ten sposób naturalnie wspiera swoje narzędzia. Chmura pozwala na przyspieszenie pracy i automatyzację konieczną do przełomowych innowacji. Usługi chmurowe pozwalają także na pokonywanie niektórych problemów związanych z brakiem odpowiedniej infrastruktury.
  • Infrastruktura jako kod/usługa (in. IaaS – Infrastructure as a Service) – silnie zautomatyzowana infrastruktura jest idealna dla zespołu Dev do automatycznego wdrażania kodu w każdym momencie: od testowania po środowisko wdrażania. Jest to silne antidotum na potencjalne „wąskie gardła” Dev i Ops i pozwala eliminować niepotrzebne opóźnienia. Odpowiedni IaaS powinien zapewniać narzędzia pozwalające na zbudowanie i wdrożenie infrastruktury za pomocą jednego kliknięcia czy szybkiego wypełnienia szablonu. 
  • Współpraca – sukces DevOps zależy od skoordynowanej współpracy pomiędzy klientami, programistami i zespołami IT. Deweloperzy muszą skupić się na kodowaniu, a administratorzy na zarządzaniu zautomatyzowaną infrastrukturą. Jednak jedni i drudzy muszą ze sobą rozmawiać, aby odkryć nowe możliwości do wprowadzania innowacji i ulepszania zarówno samych procesów, jak i ich rezultatów. Autonomiczna, zamknięta praca poszczególnych działów jest przestarzała.
Zasadniczo, DevOps jest metodologią, która pozwala eliminować opóźnienia czy straty w procesie dostarczania aplikacji. Pozwala na sterowanie wydajnością poprzez optymalizację procesów, wykorzystanie automatyzacji, standaryzację infrastruktury i ustanawia silną kulturę współpracy. Jest to efektywny sposób omijania „wąskich gardeł’ w tradycyjnym procesie tworzenia oprogramowania i norm infrastruktury. Tworzy to ogromne pole do innowacji i pozwala firmom nadążyć za rosnącymi wymaganiami rynku i cyfrowej rzeczywistości.

Autor: Ireneusz Wiśniewski, dyrektor zrządzający F5 Poland

PRZECZYTAJ RÓWNIEŻ:


Back to top