
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.