Dinamikus fejlesztési környezetek - mi ez

Helyszín: Kezdőlap »Gyakorlatból» Dinamikus fejlesztési környezetek - mi ez?

fejlesztési környezetek

Számos projektünkben gyakori, hogy több alkalmazottal dolgozunk együtt több fejlesztésen egyszerre. Ezért gyakran előfordul, hogy két vagy több feladatot párhuzamosan fejlesztenek ki, de ezeket egymástól függetlenül kell tesztelni vagy jóváhagyni. Megmondjuk, miért döntöttünk dinamikus fejlesztői környezetek alkalmazásával a probléma megoldása érdekében:

Hogyan dolgoztunk eddig: Központi elfogadó rendszerek

Alapvetően minden feladathoz külön ágat hozunk létre a Gitben, ami azt jelenti, hogy a párhuzamos tesztelés és jóváhagyás nem jelent problémát. Számos projekt esetében azonban csak egy központi elfogadó rendszerünk van. Ekkor csak az egyik ág a másik után játszható le ezen az elfogadó rendszeren. Ha például egy fejlesztés elfogadása késik egy alkalmazott vagy a felelős kapcsolattartó hiánya miatt az ügyfélnél, egyelőre minden további fejlesztés blokkolva van, és az egész projekt leáll. Ez nemcsak a teljes projekt késedelméhez vezet, hanem munkatársaink elégedetlenségéhez is.

Ahhoz, hogy a jövőben egyszerre több ágat játsszunk, több elfogadó rendszerre volt szükség. Erre a célra a TYPO3Camp Rhein-Ruhr 2017-ben már kidolgoztunk egy koncepciót a dinamikus fejlesztési környezetekről.

Hogyan működnek a dinamikus fejlesztői környezetek?

A Docker és a Kubernetes alapján kezdetben saját klasztert hoztunk létre a Docker konténerek számára.

A Gitlab CI átveszi a dinamikus fejlesztési környezetek irányítását. Az elágazás minden egyes megnyomásával a Gitlab CI folyamatban lévő munka létrehozza a Docker-kép új verzióját. A Docker képe kifejezetten csak az ág számára készült, és magában foglalja többek között az összes tárgyat és magát a projektet.

Ezután a fejlesztői környezet elindul vagy frissül egy Slack paranccsal vagy közvetlenül a Gitlab CI-n keresztül. Ha töröljük az ágat, akkor a folyamat leáll a Gitlab CI-ben. Mielőtt a folyamat leállna, egy feladat leáll és törli a fejlesztői környezetet.

A dinamikus fejlesztési környezetek előnyei és hátrányai

A legnagyobb előny egyértelműen az, hogy a projekt minden egyes feladatához saját jóváhagyási rendszerünk van. Ennek eredményeként a párhuzamos feladatok tesztelése és elfogadása már nem jelent problémát, a projektmenedzsereknek és a fejlesztőknek nem kell több időt tölteniük egy feladat játékával és tesztelésével. Különösen azokban az ügyfélprojektekben, amelyekben sok fejlesztés és alprojekt gyakran fut egyszerre, a dinamikus fejlesztési környezeteken keresztül sikerült levenni a nyomást a rendszerről, és az alprojekt-csapatokon belül megszüntetni a korábban szükséges megállapodások nagy részét. A "elfoglalt" elfogadó környezetekkel szembeni általános elégedetlenség már a múlté.

Hátrányként egyértelműen meg kell határoznunk a szükséges infrastruktúrát. Minél több elfogadó rendszer fut a fürtön, annál több hardverre van szükségünk. A klasztert ennek megfelelően kell finanszírozni. Ezenkívül természetesen bizonyos mennyiségű munka folyik a fürt és a rajta futó fejlesztői környezetek konfigurálásában és kezelésében.