Bez DevOps nie ma projektu
Jak mówi Kamil Krawczyk, DevOps Engineer, DevOps w Brainhubie jest prawdziwym core każdego projektu. Takie nastawienie sprawia, że poszerzają się kompetencje całego zespołu, działamy efektywniej i szybciej dowozimy funkcjonalne rozwiązania.
— Dobrze funkcjonujący DevOps ułatwia procesy developmentu i wdrażania. Działania związane z DevOps, które podejmujemy przy konkretnych projektach uzależniamy od wymagań i potrzeb — wyjaśnia Kamil. — Sam DevOps, który jest dopełnieniem zwinnych metodyk wytwarzania oprogramowania, nie jest constans. Według mnie, treścią samego DevOps jest ciągłe ulepszanie i usprawnianie każdego elementu składowego procesu.
W czasie trwania całego developmentu, procesy CI/CD podlegają ewolucji. Zmieniamy dobierane środowiska, kiedy wymagają tego zmienne projektu. Nie byłoby to możliwe bez czynnego udziału developerów tworzących zespół. Komunikują oni, jakie są potrzeby względem CI/CD, środowisk developerskich czy infrastruktury.
Czy programista to DevOps czy DevOps to programista?
W Brainhubie postanowiliśmy, że osobami odpowiedzialnymi za proces CI/CD są członkowie zespołu, którzy mają umiejętności devopsowe. Ich zadaniem jest gwarancja, że procesy CI/CD są zautomatyzowane i nie wymagają interwencji developerskiej (poza bieżącym informowaniem, czy proces się udał). Gdy nastąpi niepowodzenie, developerzy otrzymują notyfikację np. przy Merge Requeście lub przez bota w komunikatorze.
Oprócz tego chętni developerzy mogą samodzielnie dopracowywać procesy CI/CD w ramach zwykłych tasków. W ten sposób realizujemy podejście everything as code: procesy zapisane w postaci kodu przechowujemy w repozytorium gitowym. Nad zgodnością wprowadzanych zmian czuwają developerzy z wiedzą DevOps, którzy muszą zatwierdzić każdą zmianę przez Merge Request.
W Brainhubie funkcjonujemy w oparciu o domeny, których zadaniem jest koordynowanie przepływów wiedzy i wsparcie merytoryczne w konkretnych płaszczyznach. DevOps jest jedną z takich domen: mamy tutaj grupy tematyczne dla osób, które chcą się rozwijać w poszczególnych ścieżkach. Aktualnie są to np. grupa przygotowująca się do certyfikacji z AWS-a oraz grupa, która skupia się na poszerzaniu wiedzy z zakresu Kubernetes wewnątrz firmy.
Naszym planem jest jednak nie tylko poszerzanie wiedzy praktycznej, ale także pogłębianie zrozumienia kultury DevOps, ponieważ wykracza ona daleko poza umiejętności techniczne. DevOps to także umiejętności miękkie: komunikacja z klientem i członkami zespołu. W tym rozumieniu DevOps łączy się z BizDevOps: który jest po prostu uwzględnieniem biznesu w procesach devopsowych. A to kluczowe dla efektywnego developmentu i deploymentu produktów, które odpowiadają na faktyczne zapotrzebowanie klienta.
Szczęśliwszy developer i zadowolony klient
W codziennej pracy DevOps zapewnia komfort dla obu stron kontraktu.
— Dzięki podejściu GitOps i everything as a code, mamy wgląd jak zmieniały się procesy CI/CD i infrastruktura, a tym samym możemy łatwo je analizować i ewentualnie poprawiać — podkreśla Darek Luber, Senior JavaScript Fullstack Developer & Technical Advisor. — Ponadto istnieje możliwość automatycznego wystawiania „feature environment" dla każdego Merge Requesta, dzięki czemu można w prosty sposób zweryfikować czy wprowadzone nowe funkcjonalności odpowiadają klientowi i czy nie generują błędów jeszcze przed zmerge’owaniem zmian do głównej gałęzi.
Wielokrotnie sprawdziliśmy, że kultura DevOps pozwala nam dostarczać projekty szybko i efektywnie, a tym samym zwiększać satysfakcję klientów. Dlatego też planujemy dalszy devopsowy rozwój. Pracujemy nad tym, aby w niedalekiej przyszłości nasi developerzy od razu tworzyli oprogramowanie wewnątrz skonteneryzowanych środowisk developerskich (jak np. DevEnviroments) czy środowiskach zdalnych (typu Jetbrains Gateway). Dzięki temu proces wdrażania osób do projektu będzie jeszcze łatwiejszy, a środowisko pracy będzie dostosowane pod dany projekt.
Procesy DevOps, które wdrażamy w Brainhubie, nie odbiegają zasadniczo od tych, które stosowane są w innych firmach stawiających na tę kulturę. Jednak jesteśmy przekonani, że rdzeniem stanowiącym o unikalności i skuteczności danego zespołu nie tyle są procesy, ale ludzie, którzy je tworzą i interpretują.
— Narzędzia DevOps to zawsze skończony zbiór rozwiązań (często podobnych) — mówi Kamil. — Ale ludzie tworzący zespoły już zdecydowanie nie i to oni stanowią o wyjątkowości. W Brainhubie jakości szukamy na styku tych dwóch rzeczywistości.