Blog

Czy specjalista devops jest cenniejszym graczem niż Michael Jordan?

Czy specjalista devops jest cenniejszym graczem niż Michael Jordan?

Kim jest Michael Jordan, nie trzeba tłumaczyć nikomu i jak cennym zawodnikiem był w latach 90. Tego, czy specjalista devops może być równie cenny, dowiesz się w tym artykule.

Powrót do przeszłości...

Żeby zrozumieć, czym jest DevOps, należałoby się cofnąć do czasów, kiedy to rozwiązania chmurowe nie były tak dostępne, jak dziś. W tych zamierzchłych czasach programiści byli odpowiedzialni za wytwarzanie oprogramowania, a administratorzy za jego wdrożenie, przygotowanie serwerów, instalację wymaganych paczek, zarządzanie dostępami, i wiele innych rzeczy, o których wiedzieli tylko oni „Admini”. 

W takim podejściu jak to zwykle bywa, jedni nie rozumieli potrzeb drugich i odwrotnie. Dla zobrazowania tego niezrozumienia przyjrzyjmy się od początku procesowi implementacji oraz wdrożenia nowej funkcjonalności. Dla ułatwienia odbiorcą naszego systemu będą hurtownie z częściami samochodowymi. 

Implementacja i wdrożenie po staremu

Potrzebujemy dodać nową wyszukiwarkę, która przeszuka bazę danych części wyłącznie po wpisaniu jej nazwy oraz marki/modelu samochodu. Niby nic trudnego, jednak zależy nam na podpowiadaniu ostatnich wyszukiwań no i oczywiście musi być szybka. Zespół programistów postanowił do tego celu wykorzystać Elasticsearch oraz Redis dla przechowywania ostatnich wyszukiwań. 

Każdy z zespołu, na swojej lokalnej maszynie zainstalował obydwa systemy. Mijają sprinty, kolejne zadanie są kończone, jesteśmy o krok od ukończenia wyczekiwanej funkcjonalności. Na środowisku testowym wszystko zostało zainstalowane i skonfigurowane przez jednego z programistów, skoro mamy dostęp do serwerów to możemy to zrobić sami, żeby nie czekać na zespół administratorów, który jest zajęty przydzielaniem dostępów dla nowych pracowników oraz monitorowaniem aktualnych systemów produkcyjnych. 

Wszystkie zadania są gotowe do wdrożenia, tworzone są zadania na utworzenie infrastruktury sieciowej i niespodzianka środowisko będzie gotowe za 2 tygodnie. Zważywszy, że zespołowi udało się zmieścić w zakładanej wycenie i zostało jeszcze trochę czasu, proponowany termin zostaje zaakceptowany bez negocjacji.

Co może pójść nie tak?

Po 2 tygodniach programiści otrzymują informację, że wszystko jest gotowe. Ustalony został termin wdrożenia. Zmiany w kodzie zostały wdrożone i kolejna niespodzianka, serwer produkcyjny potrzebuje dodatkowych bibliotek do działania. Nerwowe instalowanie wymaganych paczek, bo system produkcyjny aktualnie przestał działać, klient nie może wyszukiwać, a ni sprzedawać części. 

Na szczęście wdrożenie realizowane jest w nocy, jest jeszcze trochę czasu na wdrożenie poprawek. 

Udało się wszystkie paczki, zostały zainstalowane. 

Niestety to nie koniec problemów. Jedna z kluczowych funkcjonalności nie działa. Okazało się, że na serwerze testowym programiści zainstalowali najnowszą wersję Elasticsearch, która nie była jeszcze gotowa do wdrożeń produkcyjnych. 

Niestety nie możemy na produkcji zwiększyć jej wersji, ponieważ mogłoby to powodować luki w bezpieczeństwie systemów. Wdrażane były tylko nowe elementy systemu, dlatego padła decyzja o wycofaniu aktualnego kodu. W firmie nigdy nie stosowano takiej procedury, no ale co mogłoby pójść nie tak? 

Jak się okazało wszystko. Nowa wyszukiwarka potrzebowała zmian w bazie danych, których nie jesteśmy w stanie cofnąć. Nie zostało nic innego jak walka i zmiany w aplikacji, które są wymagane do poprawnego działania ze starszą wersją Elasticsearch.

Po wielogodzinnej walce sukces. System działa z nową wyszukiwarką. Zostało jeszcze kilkanaście minut do otwarcia pierwszej hurtowni. Można iść do domu. 

Jak można poprawić proces wdrożeń?

Takie przypadki mnożyły się w działach IT, dlatego postanowiono stworzyć nową metodykę wytwarzania, testowania oraz wdrażania aplikacji. Nazwano ją właśnie devops z połączenia dwóch słów Dev, czyli działu programowania (development) oraz Operations od działu zarządzania systemami. Pozwoliło to na dodanie do cyklu wytwarzania oprogramowania nowe elementy takie jak dostarczanie oraz obsługa. Metodyka ta zakłada ścisłą współpracę pomiędzy poszczególnymi zespołami odpowiedzialnymi za kolejne cykle życia systemu. 

Wdrożenie kultury devops we własnej organizacji może nie być prostą sprawą, jednak korzyści, jakie z niej płyną, są tego warte. Zespoły, które wdrażają praktyki i narzędzia devops, stają się wysoce wydajne, tworząc szybciej lepsze produkty. Co pomaga firmom osiągać ich cele biznesowe takie jak: szybsze wejście na rynek, dostosowanie się do zmieniającego się rynku czy czas przywrócenia systemu do działania po awarii. 

Poza samą filozofią devops należy jeszcze stosować praktyki takie jak CI/CDzwinne wytwarzanie oprogramowania, czy opisywać infrastrukturę jako kod.

Podsumowanie

Czy specjalista DevOps jest cennym graczem? Na to pytanie każdy powinien odpowiedzieć sobie sam. Naszym zdaniem nie chodzi tutaj tylko o specjalistę, ale również o całe podejście do wytwarzania oprogramowania. Pozwala ono niwelować problemy związane z wdrożeniami oraz poprawia komunikację wszystkich osób zaangażowanych w ten proces. Reasumując, wdrożenie kultury devops może przynieść dużo korzyści organizacji. W żadnym wypadku nie jest to tylko jedna osoba i ciężko jednoznacznie stwierdzić czy osoba zatrudniona na takim stanowisku jest równie cenna co Michael Jordan.

Grzegorz Kielar

Grzegorz Kielar

Architekt możliwości

W Kielni Kodu dbam o to, żeby proponowane rozwiązania i technologie były dobrane do potrzeb i budżetu klienta. Poza zarządzaniem firmą i kontaktem z klientami odpowiadam za backend oprogramowania, kwestie związane z serwerami i usługami chmurowymi. Innymi słowy, robię wszystko to, czego nikt nie widzi i nie wie, dlaczego działa, ale działa :)

Prywatnie fotograf amator, mąż i właściciel psa Eliota.