Dynamické vývojové prostredia - čo to je
Umiestnenie: Domov »Z praxe» Dynamické vývojové prostredia - čo to je?

V mnohých našich projektoch je bežné, že pracujeme s niekoľkými zamestnancami na niekoľkých vývojových trendoch súčasne. Preto sa často stáva, že dve alebo viac úloh sa vyvíja paralelne, ale mali by sa testovať alebo schvaľovať nezávisle na sebe. Povieme vám, prečo sme sa rozhodli na riešenie tohto problému použiť dynamické vývojové prostredia:
Ako sme doteraz pracovali: Centrálne akceptačné systémy
V zásade pre každú úlohu v Gite vytvoríme samostatnú vetvu, čo znamená, že paralelné testovanie a schvaľovanie nie je problém. Pre mnoho projektov však máme iba jeden centrálny systém akceptácie. Na tomto akceptačnom systéme je potom možné prehrať iba jednu vetvu za druhou. Ak sa napríklad prijatie projektu oneskorí z dôvodu neprítomnosti zamestnanca alebo zodpovednej kontaktnej osoby u zákazníka, všetky ďalšie vývojové kroky sa zatiaľ zablokujú a celý projekt sa zastaví. To vedie nielen k oneskoreniam celého projektu, ale aj k nespokojnosti našich zamestnancov.
Aby sme v budúcnosti mohli hrať niekoľko pobočiek súčasne, bolo potrebných niekoľko prijímacích systémov. Za týmto účelom sme už na TYPO3Camp Rhein-Ruhr 2017 vytvorili koncept pre dynamické vývojové prostredia.
Ako fungujú dynamické vývojové prostredia?
Na základe Docker a Kubernetes sme pôvodne vytvorili vlastný klaster pre Dockerove kontajnery.
Gitlab CI preberá kontrolu nad dynamickými vývojovými prostrediami. S každým stlačením vetvy vytvorí úloha v potrubí Gitlab CI novú verziu obrazu Dockeru. Obrázok pre Docker je vytvorený špeciálne iba pre pobočku a okrem iného obsahuje všetky artefakty a samotný projekt.
Vývojové prostredie sa potom spustí alebo aktualizuje pomocou príkazu Slack alebo priamo cez Gitlab CI. Ak vetvu odstránime, potrubie sa zastaví v Gitlabe CI. Pred zastavením ropovodu sa úloha zastaví a vymaže sa vývojové prostredie.
Výhody a nevýhody dynamického vývojového prostredia
Najväčšou výhodou je jednoznačne to, že pre každú úlohu v projekte máme vlastný schvaľovací systém. To znamená, že testovanie a prijímanie paralelných úloh už nie je problémom. To znamená, že projektoví manažéri a vývojári nemusia tráviť viac času hraním a testovaním úloh. Najmä v zákazníckych projektoch, v ktorých často prebieha veľa vývojových a subprojektov súčasne, sme dokázali pomocou dynamických vývojových prostredí znížiť tlak na systém a eliminovať veľkú časť predtým potrebných dohôd v rámci subprojektových tímov. Všeobecná nespokojnosť s „obsadeným“ prostredím prijímania je dnes minulosťou.
Ako nevýhodu musíme jasne uviesť potrebnú infraštruktúru. Čím viac akceptačných systémov beží na klastri, tým viac hardvéru potrebujeme. Klaster musí byť zodpovedajúcim spôsobom financovaný. Okrem toho je potrebné vynaložiť určité úsilie na konfiguráciu a správu klastra a vývojových prostredí, ktoré na ňom bežia.