15 lipca 2025

Bamboo Umbrella czyli wdrożenia na petardzie

W erze mikroserwisów, konteneryzacji i wielozespołowego rozwoju oprogramowania, sukces projektu coraz częściej zależy nie od samego kodu, ale od sposobu jego dostarczania. Dynamiczne środowiska IT (a za takie należy uznać nasze;) wymagają narzędzi, które zapewnią powtarzalność, automatyzację i możliwość pełnej obserwacji procesu wdrożeniowego.

Autor

Mateusz Lipiński

Autor

Mateusz Wojsa

Krótki opis projektu

Bamboo Umbrella to nasza komplementarna odpowiedź na te potrzeby. Gdyby pokusić się o jego definicję, nazwalibyśmy go wewnętrznym orchestratorem CI/CD, integrującym istniejące pipeline’y, standardy i praktyki DevOps w jedno spójne środowisko. Dzięki temu rozwiązaniu możemy automatyzować krytyczne etapy procesu wydawniczego, porządkować cykl życia artefaktów i precyzyjnie zarządzać wdrożeniami – od pull requesta po rollout na produkcję.
 

Dlaczego to zrobiliśmy

Wraz ze wzrostem skali projektów i liczby zespołów programistycznych, w PZU IT pojawiła się potrzeba ustandaryzowania i usprawnienia procesu CI/CD. Bamboo Umbrella stworzyliśmy jako mechanizm zarządzający działaniami wokół cyklu wydawniczego – od obsługi pull requestów, przez walidację artefaktów, aż po ich wdrożenie i retencję.

Rozwiązanie pozwala na:

  • wdrażanie części monolitycznej aplikacji bez przerywania dostępności środowiska;
  • jednolity sposób wdrożenia aplikacji niezależnie od środowiska;
  • realizację złożonych pipeline’ów CI/CD opartych o Atlassian Bamboo;
  • integrację  z Git i automatyzację zarządzania branchami oraz weryfikację PR przed release'm;
  • automatyczne tworzenie i publikację build planów;
  • kontrolę wersji i retencję artefaktów w repozytorium Harbor;
  • pilnowanie kompletności procesu wydawniczego;
  • łatwiejszą automatyzację release’ów oraz rolloutów aplikacji w środowiskach docelowych.

W skrócie: Bamboo Umbrella porządkuje, standaryzuje i przyspiesza proces dostarczania aplikacji w całej organizacji, zwiększając jego niezawodność, bezpieczeństwo i przewidywalność.
 

Jak do tego podeszliśmy

W pierwszej kolejności zidentyfikowaliśmy powtarzalne zadania w procesie wytwórczym, które nadmiernie obciążały zespoły deweloperskie i administracyjne, takie jak manualna konfiguracja planów build'ów, ręczne wdrożenia czy walidacja branch'ów. Zmapowaliśmy te obszary oraz określiliśmy punkty krytyczne, w których brak standaryzacji skutkował opóźnieniami lub ryzykiem błędu.

Na tej podstawie zaprojektowaliśmy koncepcję orkiestratora CI/CD, który automatyzuje typowe scenariusze, uszczelnia przepływ wdrożeniowy i zapewnia zgodność z najlepszymi praktykami DevOps. Kluczowe przy tym było zachowanie elastyczności. Nasze rozwiązanie miało nie tylko wspierać różne zespoły i typy aplikacji (w tym monolity), ale też integrować się z istniejącym ekosystemem narzędzi: Bamboo, Git, Harbor i systemami monitoringu.

Budowa Bamboo Umbrella przebiegała iteracyjnie. W kolejnych fazach wdrażaliśmy kolejne funkcjonalności: od automatyzacji publikacji planów build'ów, przez weryfikację PR, aż po zarządzanie rollout'ami aplikacji. Każdy komponent był rozwijany z myślą o reużywalności i rozszerzalności, z założeniem, że będzie służył dziesiątkom zespołów w całej organizacji.
 

Jakie technologie za tym stoją

Bamboo Umbrella to aplikacja webowa oparta na architekturze klient-serwer, zbudowana z wykorzystaniem sprawdzonych i wydajnych komponentów technologicznych. Część back-endową zaimplementowaliśmy w języku Java z wykorzystaniem frameworka Spring Boot, co zapewnia wysoką wydajność, modularność oraz łatwość integracji z zewnętrznymi systemami (takimi jak Bamboo, Git czy Harbor). Udostępniane API pozwala na uruchamianie procesów bezpośrednio z poziomu narzędzi zewnętrznych.

Interfejs użytkownika oparliśmy na Angularze, co przekłada się na tworzenie responsywnych ekranów do zarządzania procesami CI/CD – takich jak lista pipeline’ów, historia wdrożeń czy manualne rollouty.

Do przechowywania danych tymczasowych i cache’owania operacji aplikacja wykorzystuje Redis, co znacząco redukuje czas odpowiedzi i obciążenie serwera bazowego przy dużym wolumenie operacji.

Autoryzacja i uwierzytelnianie użytkowników realizowane są w pełni poprzez SSO (Single Sign-On) zintegrowane z centralnym mechanizmem w PZU. Logowanie odbywa się na podstawie tożsamości korporacyjnej, a uprawnienia są mapowane na role systemowe, co pozwala na kontrolę dostępu do funkcji takich jak zatwierdzanie release’ów czy rollback produkcji.

Aplikacja działa na platformie Sahul, wewnętrznym środowisku kontenerowym opartym o Kubernetes, co zapewnia skalowalność, wysoką dostępność oraz integrację z monitoringiem i systemami logowania.

Integralnym elementem środowiska jest również Japet, platforma wspierająca konteneryzację baz danych, wykorzystywana do dynamicznego uruchamiania instancji baz w izolowanych środowiskach.
 

Liczby, tego projektu 

Efekty wdrożenia Bamboo Umbrella są mierzalne zarówno w skali operacyjnej, jak i organizacyjnej. Automatyzacja procesu CI/CD przełożyła się na konkretne usprawnienia, które poprawiają komfort pracy nie tylko zespołów deweloperskich, ale też, co niezwykle ważne, użytkowników końcowych.

A co do konkretów...

  • 23 aktywnych użytkowników korzystających z narzędzia na co dzień (wcześniej: tylko 2 osoby z pełną wiedzą i uprawnieniami - kontrast, który znacząco podbija skalę sukcesu rozwiązania);
  • Wzrost liczby wdrożeń z 4 miesięcznie (wyłącznie w godzinach nocnych 22:00–24:00) do nawet 5 jednego dnia (aktualny rekord!) w godzinach 8:00–16:00 – zgodnie z harmonogramem i bez przestojów,
  • Pełna automatyzacja wdrożeń na środowiska testowe – wcześniej wykonywane ręcznie wyłącznie w oknach serwisowych;
  • Redukcja czasu wydania paczki produkcyjnej z 8 godzin do 2 minut. Robi wrażenie, prawda?
  • Maksymalny czas od podjęcia decyzji do wdrożenia na produkcję: 30 minut, czyli przeciętna długość odcinka ulubionego serialu;);
  • Eliminacja zamrażania kodu w 12 modułach – wcześniej wstrzymywane indywidualnie, obecnie procesy realizowane zgodnie z kalendarzem wydań.
Zamknij