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.