Späť
Red Robot s.r.o.

Red Robot s.r.o.

Popis
Práca na projekte vytvorenia a modernizácií infraštruktúry a procesov pre odvetvie štátnej správy Českej Republiky ako dodávateľ tímu subdodávateľa riešenia.
Typ projektu
Zákazkový — tím
Začiatok
júl 2025
Koniec
Súčasnosť
Adresa projektu
https://redrobot.cz
Zručnosti

O projekte

Na tomto projekte sa primárne podieľam dodávkou kontajnerizačných riešení pre existujúce aplikácie v rámci určitých systémov štátnej správy pre subdodávateľa Red Robot s.r.o.

Jadro riešenia je postavené na WSO2 Micro Integrátore, do ktorého sú formou CarbonApps implementované dodatočné služby a integrácie, ku ktorým postupne pribúdajú pre implementačnú jednoduchosť a udržovateľnosť štandartné SpringBoot aplikácie plus nejaké frontendy.

Hlavnou bolesťou tohoto projektu ale bol proces nasadzovania na prostredia a vydávania nových verzií a s tým súvisiaceho aj testovania, ktorý sa vykonával vyslovene manuálnym zabalením zdrojových kódov, ansible a bash skriptov do zip balíčka, ktorý následne musel prevádzkový administrátor na cieľovom prostredí pracne, ručne a presne podľa postupu inštalovať.

Fáza 1

V prvej fáze projektu boli vytvárané kontajnery jednotlivých aplikácií a CI/CD pipeline pre ich build, kontrolu a doťahovanie závislostí.

Ďalšími úlohami bolo pre dodávateľa vytvoriť alebo nainštalovať a konfigurovať:

  • verzovací systém na uloženie zdrojového kódu a spúšťanie CI/CD (GitLab)
    • migrácia existujúcich repozitárov na strane dodávateľa, vytvorenie a konfigurácia ďalších
    • migrácia repozitárov od subdodávateľa
  • aplikácie na uskladnenie artefaktov (GitLab, Nexus)
  • registry na uschovávanie docker obrazov (Harbor)
  • aplikácia na bezpečné uloženie citlivých informácií (Vault)
  • správa deploymentov, monitorovanie Kubernetes clustera (ArgoCD)

Tieto činnosti viedli k tomu, aby následne tím dodávateľa mohol nainštalovať Kubernetes clustery. Všetku vyššie spomenutú činnosť obstaráva CI/CD pipeline, ktorá spúšťa pre jednotlivé aplikácie terraform skripty, keďže napríklad množstvo repozitárov v GitLabe sa blíži (ak aj nepresahuje) stovku a to sú delené podľa vývojárskych oblastí do skupín a podskupín so špecifickým delením prístupových práv - toto množstvo by nebolo v ľudských silách spravovať ručne, naviac v druhej fáze sa rovnaké prostredie vytvára aj u koncového zákazníka.

Fáza 2

Po inštalácií Kubernetes clusterov na prostredí dodávateľa bolo možné rozbehnúť štandartné činnosti nasadzovania kontajnerizovaných aplikácií,

  • vytváranie GitOps repozitárov s helm chartami, jednotlivými resources a ArgoCD aplikáciami
  • vytváranie a úpravy helm chartov, pridávanie a úpravy externalSecrets, configMaps, services...
  • poupravenie kontajnerizovaných aplikácií na beh v clusteri, initContainers, jobs, ...

V druhej fáze taktiež prebehla inštalácia Kubernetes clustera a aplikácií spomenutých vo fáze 1 na prostredie koncového zákazníka tímom subdodávateľa a ďalšie prispôsobovanie a refaktor HELM chartov a templates, refaktor secrets vo vault.

Ďalšou výzvou pre mňa bola implementácia CI/CD pipeline, ktorá prenesie z prostredia dodávateľa na prostredie koncového zákazníka - ktoré je z bezpečnostných dôvodov a z opatrnosti prevádzkované v "ostrovnom" režime

  • artefakty z Nexusu
  • docker obrazy v Harbor
  • pre vybrané skupiny otagované verzie na release / fix z GitLabu
  • dohliadne na správne poradie kopírovania jednotlivých skupín repozitárov a spustenienie a dokončenie CI/CD buildov do internej GitLab artifactory

Tu je výzvou taktiež vysekanie čohokoľvek čo by sa mohlo chceiť stiahnuť z internetu a presmerovať do do Harboru, kde musím mať stiahnutú vlastnú kópiu, napríklad rôzne docker image využívané v CI/CD pipelines, kubernetes init kontajneroch a podobne.

Výsledok

  • subdodávateľ a ostatné subjekty teraz pracujú (skladujú zdrojové kódy, používajú K8s clustery) na prostredí dodávateľa
  • vydanie novej verzie prebieha automatizovane
    • otagovanie dotknutých knižníc a aplikácií
      • vrátane GitOps repozitárov
    • echo pre koncového zákazníka
    • spustenie "migračnej" pipeline zákazníkom
    • spustenie "konfiguračnej" pipeline s Terraformom zákazníkom na prípadné zmeny nastavenia aplikácií infraštruktúry
    • doplnenie / vyplnenie nových Vault secrets ručne podľa dokumentácie
  • po predchádzajúcich krokoch by už zákazník mal zamieriť do ArgoCD/Kubernetes clusterov a začať otáčať aplikácie.