← Wróć

Wdrożenie i utrzymanie środowiska CI/CD

Dla naszego klienta, firmy z branży energetycznej, świadczymy kompleksową obsługę środowiska CI/CD stworzonego pierwotnie na przestrzeni wielu lat przez kilkadziesiąt (!) zespołów wewnętrznych i zewnętrznych (dostawcy).

W ramach wdrożenia wykonano analizę potrzeb oraz zrealizowano środowisko rozwojowo/testowo/wdrożeniowe wspierające zaprojektowane procesy CI/CD aplikacji w sposób zunifikowany, na ustandaryzowanych środowiskach. Ze względu na bardzo restrykcyjne wymagania bezpieczeństwa, środowisko musiało być zestawione on-premise , a używanie chmurowych „kombajnów” DevOps było niemożliwe. Ze względu na zróżnicowany poziom kompetencji technicznych zespołów (nie tylko programiści, ale również analitycy i przedstawiciele biznesu) obsługa procesów CI/CD musiała być maksymalnie zautomatyzowana. Od strony konstrukcji architektonicznej środowisko zbudowano jako skonteneryzowane, prekonfigurowane obrazy dockerowe:

  • runtime – obrazy uruchomieniowe (do testowania i wdrożeń produkcyjnych)
  • build – obrazy runtime uzupełnione o narzędzia do budowania wdrażalnych paczek
  • devel – obrazy build uzupełnione o narzędzia do rozwoju

Dostęp do platformy dla użytkowników możliwy jest, zgodnie z wymaganiami klienta, wyłącznie poprzez www. Automatyczny routing uruchamianych kontenerów odbywa się z wykorzystaniem Fabio.

Przepływy budowania/testowania/wdrażania oparto o GitLab Pipelines predefiniowane lub customowe z definicjami w postaci kodów yaml. Repozytorium obiektów (artefakty oraz repozytoria bibliotek/pakietów) zrealizowane zostały za pomocą MinIO (również zintegrowane z KeyCloak). Środowisko zestawiono zgodnie z wymogami redundancji kluczowych komponentów: 3 serwery nomad, 3 serwery consul, 3 serwery vault, redundantne serwery KeyCloak i MinIO. GitLab był częścią istniejącej infrastruktury korporacyjnej. Monitorowanie platformy oparto o stack ELK.

Wykorzystane technologie

Backend developement
C++
IT Architecture
Java
Python
Spring Boot