search
Przypadki klientów Case studies Gitlab – Przypadek klienta: PrivatBank

O firmie

PrivatBank to największy państwowy bank na Ukrainie. 18 milionów aktywnych klientów, a z jego usług korzysta ponad 70% Ukraińców. Sieć banku obejmuje ponad 1 173 oddziały, 6 860 bankomatów, około 10,4 tys. terminali samoobsługowych oraz ponad 311 000 terminali POS w całym kraju, a zespół liczy niemal 20 000 pracowników.

PrivatBank jest liderem bankowości detalicznej, stale wdrażając nowe i doskonaląc istniejące usługi dla małych i średnich przedsiębiorstw, a także rozwijając potężny ekosystem cyfrowy.

Kraj

Ukraina

Branża

Finanse

FinTech

Stos technologiczny

GitLab Self-Hosted

GitLab CI/CD

Merge Requests / Code Review

SAST, DAST, Vulnerability Scanning

Infrastructure as Code

Statystyki

1 000+ programistów

700+ platform wewnętrznych i zewnętrznych

14 119 projektów i 150 367 commitów w 2 miesiące

15–25% oszczędności czasu w cyklach weryfikacji

5+ lat stabilnej pracy GitLab bez incydentów

Jak PrivatBank zbudował bezpieczne środowisko dla tysiąca programistów wspólnie z GitLab i Cloudfresh

PrivatBank to jeden z największych banków w Europie Wschodniej. Z perspektywy technologicznej to także jedna z największych organizacji IT na Ukrainie.

Ponad 80% oprogramowania używanego wewnątrz banku oraz przez klientów jest tworzone przez własne zespoły. Jednocześnie bank musi spełniać bardzo wyśrubowane wymogi bezpieczeństwa, zgodności (compliance), stabilności i kontroli zmian. Dlatego zespół poszukiwał platformy, która pozwoliłaby ustandaryzować procesy programistyczne w całej organizacji.

„We operate like an IT company with a massive development staff, but we are also a state bank with very high stability and compliance standards.”
Dmytro Kondakov Zastępca Dyrektora, Szef Rozwoju Oprogramowania w PrivatBank

Wcześniej narzędzia były rozproszone: Jenkins służył do CI, kod przechowywano w innych systemach, a procesy były rozdzielone między różne platformy.

Generowało to szereg problemów:

  • Brak jednolitego środowiska
  • Różne standardy programowania
  • Niska przejrzystość procesów

W związku z tym bank rozpoczął stopniowe przejście na zintegrowaną platformę DevSecOps.

Dlaczego GitLab

W ciągu ostatnich 1,5–2 lat GitLab został zatwierdzony jako standardowa platforma programistyczna w banku. I nie chodzi tylko o przechowywanie kodu. GitLab stał się fundamentem zarządzania projektami, CI/CD, bezpieczeństwa kodu, kontroli zmian, audytu i compliance.

„Główną ideą GitLab jest połączenie kilku mechanizmów w jednym systemie. Wcześniej używaliśmy Jenkinsa do buildów i różnych systemów do kodu. GitLab pozwolił nam skonsolidować wszystkie informacje i dać programiście jedno, spójne środowisko.”
Dmytro Kondakov Zastępca Dyrektora, Szef Rozwoju Oprogramowania w PrivatBank

W PrivatBanku GitLab stał się sercem procesu DevSecOps.

Dev: Ustandaryzowane programowanie i spójny workflow

Kluczowym wyzwaniem dla PrivatBanku nie było samo przechowywanie kodu, ale wypracowanie jednego, spójnego modelu pracy inżynieryjnej dla całej organizacji.

Gdy w firmie pracują setki inżynierów i dziesiątki zespołów, nawet niewielkie różnice w procesach mogą prowadzić do komplikacji. Przyjmując GitLab jako centralną platformę, bank zintegrował wszystkie kluczowe etapy cyklu życia kodu:

01
Repozytoria
02
Merge requests
03
Code reviews
04
Dokumentację
05
Pipeline'y CI/CD

Programiści mogą teraz śledzić pełną ścieżkę dostarczania w jednym miejscu, od pierwszego commitu aż po produkcję.

Code Review jako standard inżynieryjny

GitLab stanowi obecnie fundament standardów inżynieryjnych banku. Każda zmiana w kodzie odbywa się zgodnie z procesem merge request, w ramach którego inżynierowie (peer reviewers) sprawdzają wprowadzone zmiany. Podczas review zespół może:

  • Zweryfikować zgodność ze standardami kodowania
  • Wcześnie zidentyfikować potencjalne problemy
  • Zaproponować lepsze rozwiązania architektoniczne
  • Upewnić się, że kod spełnia wymogi bezpieczeństwa

System utrzymuje pełną historię zmian, zapewniając przejrzystość co do ewolucji kodu i powodów podjęcia konkretnych decyzji.

Jest to szczególnie krytyczne dla organizacji o dużej skali: GitLab sprawia, że proces recenzji jest przejrzysty i zautomatyzowany, nawet w rozproszonych zespołach. W rezultacie code review funkcjonuje jako bezpośredni mechanizm poprawy jakości kodu.

Elastyczność programowania w skali banku

Dla PrivatBanku kolejną kluczową zaletą jest możliwość równoległego zarządzania wieloma strumieniami prac.

W bankowości długofalowe projekty często toczą się obok pilnych aktualizacji regulacyjnych. Aby tym zarządzać, zespoły PrivatBanku korzystają z elastycznego modelu gałęzi (branching model) GitLab. Pozwala to na jednoczesną pracę nad:

  • Długoterminowym rozwojem funkcjonalnym
  • Krytycznymi poprawkami (hotfixes)
  • Projektami eksperymentalnymi lub badawczymi (R&D)

W praktyce oznacza to, że zespół może stworzyć osobną gałąź dla pilnej zmiany, wdrożyć ją i dostarczyć na produkcję bez wstrzymywania prac nad głównym, dużym projektem.

Infrastructure-as-Code i przejrzysta architektura

Kolejną podstawową zasadą praktyki inżynieryjnej banku jest zarządzanie infrastrukturą wraz z kodem (IaC). Takie podejście gwarantuje, że zespoły wchodzą w interakcję z systemem jako ze spójnym środowiskiem, a nie zbiorem odizolowanych fragmentów kodu.

Gdy nowy inżynier dołącza do zespołu, natychmiast uzyskuje dostęp do pełnego kontekstu systemu, w tym:

  • Udokumentowanego kodu
  • Zdefiniowanej architektury
  • Jasnej struktury komponentów

Skraca to czas onboardingu i pozwala na szybszy wkład w projekty. Co więcej, GitLab umożliwia uruchamianie niezależnych gałęzi w celu testowania konkretnych zmian. Programiści mogą wdrażać aktualizacje we własnym środowisku, aby natychmiast zobaczyć rezultaty — eliminując konieczność czekania na zbudowanie całego systemu.

Dla organizacji o skali PrivatBanku znacznie skraca to czas między opracowaniem funkcji a jej weryfikacją.

Sec: Bezpieczeństwo zintegrowane z programowaniem

Dla instytucji finansowej bezpieczeństwo nie może być ostatnim krokiem; musi być częścią procesu budowania. W PrivatBanku narzędzia bezpieczeństwa uruchamiane są automatycznie wewnątrz pipeline’u, zanim zmiany trafią do głównego repozytorium.

PrivatBank wykorzystuje następujące mechanizmy bezpieczeństwa GitLab:

  • SAST — analiza kodu źródłowego pod kątem podatności
  • Dependency Scanning — sprawdzanie bibliotek zewnętrznych
  • Vulnerability Scanning — wykrywanie znanych ryzyk w zależnościach

Testy te działają bezpośrednio wewnątrz pipeline’u CI/CD, co pozwala zespołowi zidentyfikować błędy, zanim kod dotrze do środowiska testowego.

Dzięki wcześniejszej integracji testów, inżynierowie otrzymują informację zwrotną już w trakcie pisania kodu. Jeśli biblioteka zawiera lukę, system powiadamia o tym dewelopera na etapie kodowania, co eliminuje konieczność poprawek na późnych etapach.

Ta zmiana zasadniczo modyfikuje cykl życia oprogramowania. Wcześniej przepływ pracy wyglądał następująco:

  1. Programista pisze kod.
  2. Wykonuje commit.
  3. Rozpoczyna się proces budowania (build).
  4. Następują kontrole bezpieczeństwa i zgodności z polityką.
  5. Wykrywany jest problem.
  6. Programista musi poprawić kod i zrestartować cały cykl.

Obecnie wiele z tych powtarzalnych kroków zostało wyeliminowanych. Inżynierowie natychmiast identyfikują problemy i rozwiązują je podczas pracy nad kodem, co zwiększa ogólną wydajność.

Bank szacuje, że takie podejście wyeliminowało wiele zbędnych etapów weryfikacji, oszczędzając 15–25% czasu poświęcanego wcześniej na te cykle. Głównym rezultatem jest jednak jakość kodu. Gdy bezpieczeństwo jest częścią workflow, inżynierowie tworzą kod, który z natury spełnia standardy organizacji. Od samego początku uwzględniają wymogi bezpieczeństwa i zasady architektoniczne. W konsekwencji kod trafiający do systemu jest zgodny z wewnętrznymi politykami już za pierwszym razem.

Ta zmiana przynosi kilka kluczowych rezultatów:

Zwiększony zakres testów i dokumentacji
Mniejsza liczba incydentów w środowisku produkcyjnym
Szybsza analiza przyczyn źródłowych incydentów
Planujesz skalowanie DevSecOps w swojej firmie? Zespół Cloudfresh pomaga wdrażać GitLab, standaryzować CI/CD i integrować bezpieczeństwo bezpośrednio w procesie programowania. Skontaktuj się z nami →
CTA Image

Oprogramowanie open source i zgodność z licencjami

Kolejnym kluczowym priorytetem dla banku jest zarządzanie komponentami open source.

„Ponad 80% komercyjnego oprogramowania składa się dziś z komponentów open-source. To ogromna korzyść dla biznesu, ale i nowe ryzyka prawne. Automatyzacja zarządzania licencjami w skali banku to zadanie typu must-have, które GitLab skutecznie rozwiązuje.”
Oleksiy Zaiets Head of IT w PrivatBank

Różne licencje mogą nakładać poważne ograniczenia:

  • Wymóg ujawnienia zastrzeżonego kodu źródłowego
  • Tworzenie konfliktów prawnych
  • Narażenie na kary finansowe lub problemy wizerunkowe

W organizacji o skali PrivatBanku ręczna kontrola takich ryzyk jest praktycznie niemożliwa, dlatego bank zautomatyzował ten proces za pomocą GitLab.

Podczas pipeline’u CI/CD system generuje Software Bill of Materials (SBOM) — kompleksową listę komponentów wchodzących w skład produktu oprogramowania. Wykorzystywane są do tego standardy przemysłowe CycloneDX i SPDX.
Na podstawie tych informacji zespół banku konfiguruje własne polityki korzystania z open-source.

Oznacza to, że system automatycznie:

  • Identyfikuje licencje zależności
  • Weryfikuje je pod kątem wewnętrznych zasad
  • Powiadamia programistę o potencjalnych naruszeniach

Jeśli nowa biblioteka nie jest zgodna z polityką organizacji, programista otrzymuje sygnał bezpośrednio podczas merge requestu. Może wtedy uzyskać niezbędną zgodę lub natychmiast wybrać inną zależność.

W ten sposób kontrola licencji przestaje być osobnym procesem następującym po zakończeniu prac — staje się naturalną częścią codziennej pracy inżyniera.

Pełna przejrzystość zmian i audyt

Dla instytucji finansowej równie ważna jest kontrola zmian w kodzie. Każda modyfikacja musi być mierzalna i zrozumiała.

Dlatego PrivatBank wykorzystuje mechanizmy polityk i kontroli dostępu GitLab do regulowania procesu wprowadzania zmian.

W szczególności zespół skonfigurował:

  • Polityki zatwierdzania dla krytycznych zmian
  • Obowiązkowe recenzje merge requestów
  • Ograniczenia commitów dla określonych ról
  • Pełną ścieżkę audytu wszystkich zmian

Oznacza to, że w dowolnym momencie bank może odpowiedzieć na trzy kluczowe pytania: kto wprowadził zmianę do kodu, kto ją sprawdził i zatwierdził oraz dlaczego trafiła ona do wydania.

Dla dużej organizacji finansowej taka transparentność jest krytyczna. Pozwala na szybkie audyty wewnętrzne, analizę incydentów i zapewnienie zgodności z wymogami regulacyjnymi.

W rezultacie bezpieczeństwo przestaje być odrębną funkcją kontrolowaną przez specyficzny zespół — staje się integralną częścią codziennej pracy inżynierów, wbudowaną w samą platformę programistyczną.

Ops: Kontrolowane dostarczanie zmian

W środowisku, gdzie dziesiątki zespołów codziennie modyfikują setki systemów, pisanie kodu to tylko połowa sukcesu. Równie ważne jest to, jak ten kod jest dostarczany do systemu. Każda zmiana musi podążać jasno określoną ścieżką — od commitu do produkcji.

Po zatwierdzeniu GitLab jako standardowej platformy, zespół stworzył wewnętrzne zasady pracy z CI/CD. Bank opracował nawet oddzielne regulacje definiujące sposób budowania pipeline’ów i zarządzania dostarczaniem kodu przez zespoły.

Większość projektów wykorzystuje dziś GitLab CI/CD jako główny mechanizm automatyzacji. Pozwoliło to na ustandaryzowanie procesów budowania, testowania i wdrażania w różnych zespołach.

Jednocześnie pipeline’y pozostają wystarczająco elastyczne, by uwzględniać specyfikę różnych systemów. W procesach CI/CD bank integruje nie tylko standardowe możliwości GitLab, ale także własne narzędzia kontroli jakości i bezpieczeństwa.

W szczególności do pipeline’u mogą być podłączone:

  • Wewnętrzne narzędzia bezpieczeństwa
  • Własne skanery SAST
  • Kontrole zgodności ze standardami technologicznymi banku

Takie podejście pozwala połączyć automatyzację GitLab z wewnętrznymi mechanizmami kontroli wypracowanymi przez bank na przestrzeni lat.

Obsługa systemów legacy

Osobnym wyzwaniem dla dużej organizacji finansowej jest obecność znacznej liczby systemów legacy.

Wiele z nich powstało przed erą nowoczesnego DevOps i nie zawsze łatwo integrują się ze standardową automatyzacją. Całkowita przebudowa takich systemów w krótkim czasie jest praktycznie niemożliwa.

Dlatego zespół banku wykorzystał elastyczność GitLab, aby stopniowo włączać te systemy do procesu CI/CD.

Nawet jeśli niektóre etapy w projektach legacy pozostają częściowo manualne, GitLab pozwala zbudować wokół nich kontrolowany pipeline. Oznacza to, że:

  • Wszystkie zmiany przechodzą przez jeden proces budowania
  • Wyniki weryfikacji są zapisywane w systemie
  • Historia wydań pozostaje przejrzysta

W efekcie nawet starsze systemy stają się częścią ujednoliconego procesu inżynieryjnego banku.

Mniej pracy ręcznej — więcej kontroli

Dla zespołu PrivatBanku główna wartość CI/CD nie polega tylko na szybkości wydań. Co ważniejsze, dostarczanie kodu staje się procesem przewidywalnym i kontrolowanym.

Gdy pipeline automatyzuje sprawdzenia i budowanie systemu, zespoły mają pewność, że każda zmiana przechodzi przez te same etapy. Zmniejsza to ryzyko błędów i stabilizuje proces wydań.

W połączeniu z mechanizmami Dev i Sec, tworzy to jednolity model pracy:

  • Kod przechodzi ustandaryzowaną recenzję
  • Jest automatycznie sprawdzany pod kątem podatności
  • Jest dostarczany przez kontrolowany pipeline

W ten sposób GitLab pomógł PrivatBankowi zbudować pełnowartościowy proces DevSecOps, w którym programowanie, bezpieczeństwo i operacje funkcjonują jako jeden system.

Jakość kodu jako główna miara sukcesu

W PrivatBanku efekty wdrożenia GitLab ocenia się nie poprzez indywidualne wskaźniki szybkości, ale przez jakość kodu, jaką organizacja otrzymuje w rezultacie.

„W naszym przypadku metryką jest kod, który otrzymujemy na końcu. Kiedyś dostawaliśmy po prostu kod. Teraz to kod udokumentowany, pokryty testami i wolny od podatności już w momencie powstania.”
Dmytro Kondakov Zastępca Dyrektora, Szef Rozwoju Oprogramowania w PrivatBank

To rozwiązanie zmienia nie tylko procesy techniczne, ale również sam model pracy zespołów. Inżynierowie poświęcają teraz mniej czasu na rozwiązywanie problemów na środowisku produkcyjnym, skupiając się w większym stopniu na rozwoju samego produktu.

Kolejnym istotnym efektem jest szybszy onboarding nowych programistów. Gdy kod jest uporządkowany, udokumentowany i przechodzi standaryzowane testy, nowi inżynierowie mogą znacznie sprawniej wdrożyć się w projekty.

Skala inżynieryjna

Aby zrozumieć, dlaczego standaryzacja procesów jest tak kluczowa, wystarczy spojrzeć na skalę operacji deweloperskich w PrivatBanku. Obecnie GitLab służy do obsługi setek systemów i tysięcy komponentów. W szczególności mowa o:

  • ponad 700 platformach wewnętrznych i zewnętrznych
  • 1 000 programistów pracujących jednocześnie
  • dziesiątkach zespołów działających w trybie 24/7

Skala ta jest wyraźnie widoczna nie tylko na poziomie organizacyjnym, ale również w codziennych interakcjach z platformą. Tylko w ciągu ostatnich dwóch miesięcy środowisko GitLab w PrivatBanku odnotowało:

14,119
projektów
150,367
commitów
1,115
kontrybutorów
143.2
mln dodanych linii kodu
68.4
mln usuniętych linii kodu

Przy takiej skali każdy brak standardów szybko przeradza się w poważny problem. Właśnie dlatego centralizacja procesów deweloperskich stała się kluczowym czynnikiem sukcesu.

Stabilność platformy

GitLab w PrivatBanku działa w środowisku self-hosted, co pozwala na pełną kontrolę nad infrastrukturą i zapewnia zgodność z wymogami bezpieczeństwa instytucji finansowej.

Według zespołu banku, platforma wykazuje bardzo wysoki poziom stabilności.

„W ciągu co najmniej ostatnich pięciu lat nie przypominamy sobie ani jednego przypadku związanego z awariami serwisu GitLab.”
Dmytro Kondakov Zastępca Dyrektora, Szef Rozwoju Oprogramowania w PrivatBank

Dla organizacji, w której tysiące inżynierów każdego dnia pracuje z kodem, jest to czynnik o krytycznym znaczeniu. Niezawodność platformy oznacza, że zespoły mogą skupić się na rozwoju produktu, nie tracąc czasu na rozwiązywanie problemów z infrastrukturą.

Współpraca z Cloudfresh

Przejście PrivatBanku na komercyjną wersję GitLaba odbyło się we współpracy z Cloudfresh — oficjalnym partnerem GitLab w Polsce.

Zespół Cloudfresh wspiera bank w kilku kluczowych obszarach: od licencjonowania platformy po wsparcie zespołów inżynieryjnych podczas skalowania procesów DevSecOps.

Współpraca obejmuje w szczególności:

  • Doradztwo w zakresie licencjonowania i optymalnego modelu korzystania z GitLaba
  • Wsparcie techniczne podczas wdrażania nowych możliwości platformy, takich jak Duo Agent Platform
  • Wsparcie dla zespołów inżynieryjnych pracujących z rozwiązaniem GitLab
  • Pomoc w rozwiązywaniu problemów technicznych

W przypadku dużej organizacji, w której tysiące inżynierów korzysta z platformy każdego dnia, kluczowy jest dostęp do specjalistycznej wiedzy i szybkiego wsparcia.

„Cloudfresh is always available. You can always reach out to them and resolve issues. Our problem-related requests receive very fast and high-quality responses—sometimes we resolve them right in an online session.”
Dmytro Kondakov Zastępca Dyrektora, Szef Rozwoju Oprogramowania w PrivatBank

Taka forma współpracy pozwala bankowi nie tylko zapewnić stabilne działanie platformy, ale także stopniowo rozszerzać zakres jej wykorzystania. We współpracy z Cloudfresh zespół banku testuje nowe funkcje GitLab i wdraża je do swoich procesów inżynieryjnych.

Podejście do rozwoju oparte na AI

Kolejnym etapem rozwoju platformy jest integracja narzędzi AI z procesem deweloperskim. Zespół testuje już nowe środowiska IDE i agentów AI, a także eksperymentuje z możliwościami GitLab Duo Agent Platform.

Wśród potencjalnych obszarów zastosowań znajdują się:

  • Automatyczna kontrola jakości kodu
  • Analiza zgodności ze standardami stosu technologicznego
  • Optymalizacja procesów CI/CD
  • Dodatkowe wsparcie dla inżynierów podczas pisania kodu

Obecnie funkcje te są wykorzystywane w scenariuszach pilotażowych, ale zespół banku aktywnie bada, jak zintegrować AI z codzienną pracą programistów.

W ostatecznym rozrachunku GitLab stał się dla PrivatBanku czymś więcej niż tylko systemem przechowywania kodu. Platforma zjednoczyła rozwój, bezpieczeństwo i operacje w jeden ekosystem inżynieryjny, co pozwala na dalsze skalowanie jednej z największych organizacji finansowych w kraju.

Skontaktuj się z Сloudfresh