W ENP przeszliśmy drogę od zespołu 10 developerów do pracy wielu zespołów i 150+ developerów. Wraz z zwiększaniem ilości developerów jak również aktywnych projektów musieliśmy przejść transformacje procesów około „gitlabowych”.
Pojawiło się kilka wyzwań, które należało rozwiązać:
- Jednolitość procesu w każdym projekcie gitlab.
- Te same zasady obowiązujące przy łączeniu zmian do głównej gałęzi.
-
Eliminacja błędu ludzkiego.
- Ujednolicenie komunikacji i nazewnictwa.
Przechodziliśmy przez wiele etapów oraz prób rozwiązania problemów. Polegaliśmy na wąskiej grupie weryfikującej wymagania Definition of Done. Niestety rozwiązanie to wiązało się z wieloma bolączkami. Wraz z rozrostem zespołu oraz rozbudową DoD taka weryfikacja pochłaniała coraz więcej czasu powodując „zatory” w procesie łączenia zmian.
Kolejnym problemem na jaki natrafiliśmy to „toporność” interfejsu gitlaba. Proces nakładania labelek nie może być wykonywane równocześnie przez wiele osób (z uwagi na konflikty i wzajemne usuwanie labeli). Z kolei w momencie łączenia zmian GUI wykonuje dodatkowe requesty przez co proces łączenia zmian jest bardzo powolny.
W czasie analizy weryfikowaliśmy istniejące na rynku rozwiązania dla naszego stacku technologicznego takie jak Gitlab Triage (https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage), Merge Bot (https://github.com/smarkets/marge-bot).
Każde z rozwiązań jednak posiadało braki lub trudności w konfiguracji, którą chcieliśmy osiągnąć. Z racji tego postanowiliśmy stworzyć własne rozwiązanie.
Tak narodził się projekt „Dubaj” na cześć naszego biurowego pupila.
„Dubaj” jako aplikacja integruje się z Gitlabem poprzez mechanizm API. Pilnuje, żeby Merge Request w każdym projekcie procesowany był w taki sam sposób.
„Dubaj” bardzo szybko zdobył serca developerów i zaczął otrzymywać kolejne usprawnienia:
Żeby wyeliminować problem błędu ludzkiego w czasie weryfikacji DoD nauczyliśmy Dubaja go weryfikować.
Technicznie „Dubaj” to obecnie 6 mikroaplikacji które poprzez API lub procesy CI pomagają nam zapanować nad stale rozrastającym się zespołem developerów.
Jeśli chciałbyś pomóc w rozwoju „Dubaja” aplikuj na stanowisko PHP DevOps.