Wszyscy to kiedyś widzieliśmy… Kilka słów o DevOps

Wszyscy to kiedyś widzieliśmy… Kilka słów o DevOps

[…]

Wszyscy to kiedyś widzieliśmy… Drużyna sprinterów mknąca w sztafecie do mety po złoto. Każdy z nich śrubujący nieosiągalne wyniki. Każdy z nich zostawiający rywala w pokonanym polu. Ostatnia zmiana przed metą i pałeczka podczas przekazania z rąk do rąk upada na ziemię. Zawiódł nie geniusz zawodników, a element techniczny, proces. Trafność tej analogii z dziedziną IT potwierdzą CIO organizacji, w których równolegle funkcjonują zespoły: Rozwoju (Development) i Operacji (Operations). Oba wykonujące świetnie swoją pracę. Oba mogące pogrążyć wdrożenie projektu poprzez nieefektywny i kosztowny proces komunikacji między nimi. Ten problem rozwiązuje DevOps – metodyka zespalająca działanie obu jednostek. Wyzwanie jego wdrożenia podjął jeden z liderów rynku telco w Polsce, który decyzji tej zawdzięcza wiele wymiernych korzyści o charakterze strategicznym i organizacyjnym.

 

Podejście DevOps priorytetowo traktuje bliską komunikację i wzajemne zaangażowaniu obydwu pionów (Development oraz Operations) w celu usprawnienia zarówno głównych procesów jak i samej jakości produktu. Wspierane jest to przez automatyzację infrastruktury, automatyzację procesów, oraz ciągłe mierzenie wydajności wprowadzanych zmian. W sferze relacji w organizacji wymaga ujednolicenia ośrodków odpowiedzialności oraz zrozumienia ze strony wszystkich pionów IT, że wypracowanie wspólnych procedur pozwala osiągać zamierzone cele łatwiej, szybciej, bezpieczniej, a co za tym idzie skuteczniej.

 

 

To przede wszystkim bardziej elastyczne podejście do samej implementacji zmian i monitorowania ich efektywności w środowisku produkcyjnym, gdyż DevOps zakłada wdrażanie mniejszych partii kodu, których implementacja oraz monitoring wymagają mniejszej ilości czasu.

 

IT przywołanej wcześniej firmy telekomunikacyjnej, w momencie podjęcia decyzji o zmianie podejścia na metodykę DevOps mierzyło się z dwoma wyzwaniami. Po pierwsze, skomplikowane i pracochłonne środowisko integracyjne, w którego obrębie działa pięć środowisk testowych, składających się z około pięćdziesięciu systemów każde.

 

Po drugie, czasochłonność procesu weryfikacji i akceptacji zmian przez Biznes. Testy akceptacyjne w dużym stopniu angażowały użytkowników biznesowych, których cele związane są z obszarem rozwoju przedsiębiorstwa, w opozycji do wnikania w technikalia wdrażanych zmian. Za sztandarowy cel postawiono sobie wdrażanie projektów i poprawę błędów w sposób bardziej efektywny, co wpłynąć miało na obniżenie kosztów i skrócenie czasu wdrożeń. W tym celu należało wykonać pierwszy, ale i najważniejszy krok. Znieść organizacyjny i mentalny podział na zespół IT Rozwój i zespół IT Operacyjny. O powodzeniu tego kroku świadczy nie tylko przejrzystość nowego IT w organizacji, ale przede wszystkim umiejscowienie w nim centralnego ośrodka odpowiedzialności w postaci jednego zarządzającego i jednoczesne zmniejszenie liczby menedżerów o 50%. Jednocześnie, nie dopuszczono do utraty jakości merytorycznej zespołów, redukując liczbę specjalistów tylko nieznacznie. Zmiany te pozwoliły osiągnąć oszczędności w kosztach funkcjonowania IT na poziomie 16%.

 

W nowej rzeczywistości organizacyjnej, w drugim kroku, należało wdrożyć procesy, które pozwolą poprawić efektywność IT i zapewnić jego działaniom odpowiednią jakość i terminowość. Podjęto decyzję o wdrożeniu automatyzacji testów integracyjnych wspieranej wirtualizacją środowisk testowych. Automatyzacja pozwoliła na zwiększenie zakresu testów, skrócenie czasu ich wykonywania i zmniejszenie liczby błędów w systemach produkcyjnych. Błędy te nierzadko mogą przełożyć się na straty finansowe, wynikające z przestoju systemu. Nietrudno zatem dojść do wniosku, że w tak bardzo złożonym środowisku testy stanowią również bardzo kosztotwórczy czynnik. Dlatego właśnie wdrażanej automatyzacji przyświecać miał dodatkowy, ale równie ważny cel: optymalizacja pracy zespołów i ograniczenie pracochłonności wielu zadań. Dzięki temu można było przyspieszyć realizację projektów. Wpłynęło na to również uwolnienie czasu testerów, którzy odtąd mogli skupić się na analizie wykrytych problemów, zamiast być zaangażowanymi w drobne, powtarzalne działania testowe. Z kolei ostateczne testy odbiorcze, realizowane przez dział biznesowy udało się w nowym podejściu ograniczyć do testowania rzeczywistych, punktowych zmian w procesie poprzez automatyczne przejście przez te części procesu, które nie były modyfikowane.

 

Kolejnym krokiem w kierunku nowego IT była automatyzacja deploymentu aplikacji. Całość prac obejmowała 15 systemów i została podzielona na dwa etapy. Wśród automatyzowanych systemów znalazły się rozwiązania o zróżnicowanej architekturze (cienki, gruby klient), zróżnicowanej technologii wykonania (m.in. Java, jBPM, Liferay, Vaadin) oraz zróżnicowanym przeznaczeniu (m.in. CRM, EAI, BPM, Provisioning, Network Inwentory). Realizacja tego kroku pozwoliła zautomatyzować znaczną część procesu dostarczania nowych wersji aplikacji. Stało się to możliwe poprzez połączenie automatycznego deploymentu z automatycznymi testami regresywnymi. Tym samym reorganizacja IT w kierunku metodologii DevOps była już nie tylko gotowa z punktu widzenia struktury zespołów, ale również z punktu widzenia technologii.

 

Patrząc na rozwiązanie z perspektywy biznesowej, DevOps wpływa na szybkość wdrażania zmian w oprogramowaniu oraz skrócenie czasu wymaganego na weryfikację jego poprawności, co pozwala na sprawniejsze dotarcie produktu na rynek oraz docelowo, uzyskanie w tym zakresie przewagi konkurencyjnej. Zyskuje sprawność organizacji i jej efektywność dzięki uwspólnotowieniu odpowiedzialności za produkt finalny oraz usprawnienie wewnętrznej komunikacji.

 

Istotną korzyścią dla CIO będzie automatyzacja infrastruktury oraz procesów, która pozwoli na skupienie większej uwagi na innych elementach działalności rozwojowej i zaangażowaniu w te sektory większych zasobów. Co ważne, wdrożenie podejścia nie jest przedsięwzięciem rozłożonym w latach. Pierwsze korzyści widoczne są już po 2-3 miesiącach. DevOps może mieć zastosowanie w przypadku różnorodnych działań, które finalnie zwiększają jakość produktu dostarczanego klientowi. Na tej płaszczyźnie możemy rozpatrywać jeszcze jedną, ale chyba najważniejszą zaletę tego podejścia – zadowolenie konsumenta docelowego.

 

Co ważne, adresatami tego rozwiązania nie muszą być wyłącznie duże organizacje. Kryteria wdrożenia DevOpsa spełniają nierzadko nawet „małe” (pod względem liczby członków zespołu IT) sklepy internetowe, które obsługują setki, tysiące procesów na minutę, a jednocześnie stoją przed potrzebą wdrażania częstych zmian. W przypadku opisywanej powyżej organizacji kluczowymi celami są redukcja kosztów i skrócenie czasu wdrażania zmian. DevOps wydaje się rozwiązaniem idealnym również w sytuacjach, w których funkcjonowanie na wysoce konkurencyjnym rynku wymaga częstych zmian i stałego rozwoju usługi.

 

2024-07-16

Czy IT lubi się ze sportem?

Przez lata utarło się przekonanie, że specjalista IT swój wolny czas najchętniej spędza, grając w szachy albo e-sporty, czyli np. gry sportowe czy zręcznościowe strzelanki na konsoli. Ten stereotyp jest bardzo odległy od współczesnych realiów, w jakich żyją przedstawiciele branży IT. Świadomi negatywnego wpływu pracy przed komputerem dbają o zdrowie i prowadzą aktywny tryb życia. Potwierdzają to badania, a także nasze obserwacje osób z zespołu Uniteam.
2024-06-12

Optymalizacja onboardingu i offboardingu pracownika: najlepsze praktyki zarządzania dostępami w firmie

W każdej firmie funkcjonuje tzw. cykl życia pracownika. Składa się on z kilku kluczowych etapów, ale w kontekście zwinności działania firmy oraz bezpieczeństwa danych szczególnie istotne są dwa: onboarding, czyli rozpoczęcie pracy w organizacji, oraz offboarding, związany z zakończeniem współpracy.
2024-05-10

Wytworzenie w Jira procesu akceptacji raportów czasu pracy

Projekt został zrealizowany w odpowiedzi na potrzeby klienta z branży telekomunikacyjnej. Firma T-Mobile posiadała rozbudowaną i zróżnicowaną strukturę IT. Klient korzystał z różnych form zatrudnienia pracowników od umów o pracę, przez umowy B2B, po współpracę z firmami outsourcingowymi. Struktura organizacyjna klienta opierała się na zespołach dziedzinowych, tzw. tribe'ach, takich jak analitycy czy developerzy. Członkowie zespołów dziedzinowych angażowani byli nie tylko w wewnętrzne, ale i w zewnętrzne projekty, często kilka w jednym czasie. W ten sposób tworzono oddzielne zespoły projektowe z dodatkową hierarchią zlecania i odbierania prac.