Logo Crossweb

Logowanie

Nie masz konta? Zapomniałem hasła

Przypomnij hasło

close Wypełnij formularz.
Na Twój adres e-mail zostanie wysłane link umożliwiający zmianę hasła.
Wyślij

Jak zwiększyć produktywność w projektach? Współpraca operacji i specjalistów DevOps pracujących w zespołach zwinnych.

Krzysztof Nowak , 14 kwietnia 2021
Jak zwiększyć produktywność w projektach? Współpraca operacji i specjalistów DevOps pracujących w zespołach zwinnych.

Krzysztof Nowak pracuje w Comarch już prawie 18 lat. Od początku swojej kariery odpowiada za systemy informatyczne skierowane do branży finansowej – oprogramowanie dla banków, towarzystw ubezpieczeniowych, domów maklerskich, firm zarządzających aktywami oraz funduszy inwestycyjnych i emerytalnych. Przez te niemal dwie dekady przeszedł bardzo długą drogę – zaczynał jako programista, był także architektem, project managerem, inżynierem DevOps, obecnie natomiast jest szefem jednostki, która odpowiada za wsparcie wdrożonych projektów. 

Krzysztof na co dzień pracuje z zespołem, w którego skład wchodzą inżynierowie IT, administratorzy oraz specjaliści DevOps. Nam opowiedział, jak w praktyce wygląda współpraca pomiędzy specjalistami DevOps a zespołami produkcyjnymi.

 

Jakie korzyści wynikają ze stosowania praktyk DevOps?


Termin DevOps powstał z połączenia 2 angielskich słów: „development” (programowanie) i „operations” (operacje). W ten sposób określa się metodykę łączącą ludzi, procesy i technologie, która umożliwia ciągłe i szybkie dostarczanie klientom określonych wartości.


Zespoły, które wdrażają kulturę, praktyki i narzędzia DevOps stają się wysoce wydajne, ponieważ są w stanie znacznie szybciej dostarczać swoim klientom lepszej jakości produkty. Dzięki temu klienci są bardziej zadowoleni ze współpracy, a to z kolei przekłada się na sukces biznesowy i sprzyja zawieraniu kolejnych kontraktów. Efekty wdrożenia narzędzi i praktyk DevOps jest widoczny niemalże natychmiast. 


Najlepiej zilustruje to konkretny przykład. Każdy większy projekt implementowany jest przez wielu developerów. Jeszcze do niedawna ich praca wyglądała nieco inaczej niż dziś – każdy developer kilka razy w ciągu dnia (lub dopiero na koniec dnia) dzielił się z zespołem efektami swojej pracy. W nocy uruchamiane były procesy CI / CD i dopiero kolejnego dnia wszyscy otrzymywali raport, z którego dowiadywali się, czy to, co zrobili dzień wcześniej działa bez zarzutu, czy może zaburzyło inne funkcjonalności lub procesy. Ewentualne problemy natychmiast oczywiście korygowano, jednak zespół musiał czekać na ponowne budowanie systemu.


Obecnie w momencie, kiedy developer wrzuci swój kod do repozytorium, projekt jest natychmiast budowany i weryfikowany w tymczasowym, nowo utworzonym środowisku. Tym samym programista dosłownie po paru minutach widzi efekty swoje pracy i w przypadku ewentualnych problemów może je od razu rozwiązać.


Co to tak naprawdę oznacza z punktu widzenia osób zaangażowanych w projekty? 


Specjaliści DevOps pomagają przede wszystkim w automatyzacji oraz ciągłej optymalizacji i usprawnieniu procesu CI/CD (Continuous Integration / Continuous Deployment or Delivery). Zajmujemy się więc usprawnianiem procesu, w ramach którego developer wrzuca swój odcinek kodu do repozytorium (GitLab). Następnie wykonywana jest aktualizacja środowiska testowego, wykonuje się szereg testów (jednostkowych, integracyjnych, wydajnościowych itd.), aż do wystawienia paczki z nową wersją oprogramowania lub aktualizacji środowiska produkcyjnego dla klienta. Jak wspomniałem, cały ten proces składa się z wielu kroków. Dodatkowo trzeba pamiętać, że w zależności od produktu oraz projektu wykorzystywane są różne technologie, a tym samym różny stos narzędziowy.


Najlepszym dowodem na skuteczność wdrożenia praktyk DevOps niech będzie przykład, jak usprawniło to proces dostarczania oprogramowania dla jednego z naszych klientów. Jeszcze kilka lat temu przy dość dużym i skomplikowanym produkcie potrzebowaliśmy około 2 dni na wystawienie nowej wersji systemu. Aby tak się stało, musieliśmy przeprowadzić szereg działań, często sterowanych „ręcznie”, między naszymi systemami a środowiskiem klienta musiało dojść do bardzo wielu integracji. Dodatkowo proces utrudniały zależności pomiędzy systemami czy modułami - najpierw należało wprowadzić zmianę w jednym systemie, a dopiero później należało przeprowadzić weryfikację w module lub systemie zależnym. Trzeba pamiętać, że wiele funkcjonalności działa w sposób asynchroniczny, tzn. w momencie wykonania jakiejś operacji w systemie nie dostajemy od razu informacji, że cały proces już się zakończył. Przykładem tego może być np. zlecanie przelewu. Każdy, kto posiada konto w systemie bankowości internetowej na pewno zauważył, że pieniądze zazwyczaj nie trafią do odbiorcy od razu (szczególnie jeśli ten ma konto w innym banku). Przelewy pomiędzy bankami są realizowane o określonych porach dnia.


Dziś, dzięki wprowadzonym zmianom, cały proces zajmuje niecałą godzinę i jest w pełni zautomatyzowany. To prawie 50-krotne przyśpieszenie.


Czy to już koniec?


Odpowiedź jest dość oczywista – nie. Zawsze stawiamy przed sobą ambitne cele i dlatego staramy się opisany proces jeszcze bardziej zoptymalizować i skrócić. Chcielibyśmy dojść do 15 minut. Apetyt rośnie w miarę jedzenia, niewykluczone więc, że kiedy to osiągniemy, będziemy chcieli jeszcze więcej. Oczywiście w pewnym momencie koszt optymalizacji może przekroczyć zysk z nią związany i trzeba będzie powiedzieć „dość”.


Z drugiej strony świat nie stoi w miejscu. Nieustannie pojawiają się nowe wersje baz danych, serwerów aplikacji, a podejście do tworzenia systemów informatycznych wciąż ewoluuje. Jeszcze kilka lat temu większość instalacji przeprowadzaliśmy bezpośrednio na środowisku klienta, tymczasem dziś spora część naszych klientów wdraża rozwiązania chmurowe oparte o Kubernetes czy OpenShift.


Co będzie za kilka lat? Czas pokaże. Na pewno pracy nie zabraknie, zwłaszcza dla inżynierów z zacięciem DevOps, których Comarch aktualnie poszukuje. Jeśli chcesz spróbować swoich sił w złożonych projektach dla instytucji finansowych, zapoznaj się z aktualnymi ofertami pracy na profilu Comarch.


----


Autor: Krzysztof Nowak – dyrektor service desk w Comarch Finanse, Bankowość, Ubezpieczenia.

Z firmą związany od 18 lat, początkowo jako programista, następnie jako architekt, manager i inżynier DevOps.


___________________________________


Artykuł powstał w ramach cyklu wpisów gościnnych, tworzonych we współpracy z naszymi klientami i partnerami.




Blog - najnowsze wpisy