Middle+
Úgy gondolod, helyes-e egy munkafolyamatban az image építése, tesztelése és feltöltése, valamint lépések hozzáadása különböző környezetekbe történő telepítéshez?
sobes.tech MI
Válasz az MI-től
Ez nem mindig optimális. Bár ilyen megközelítés kényelmes lehet kis projektek vagy helyi tesztépítések esetén, az összes lépés egy workflow-ba való összevonásának hátrányai vannak:
- Rugalmasság csökkenése: A különböző környezetekbe (fejlesztés, staging, termelés) történő telepítéshez különböző paraméterek és gyakran különböző hozzáférési jogok szükségesek. Az összevonás megnehezíti ezek kezelését.
- Környezettől függőség: Ha az egyik környezetbe történő telepítés sikertelen, az egész buildet sikertelennek tekintik, még akkor is, ha a kép létrehozása és tesztelése sikeres volt.
- Visszagörgetés nehézsége: A telepítés visszavonása kevésbé egyszerű, mivel az egész workflow-t vissza kell fordítani.
- Futtatási idő növekedése: Az egész pipeline hosszabb ideig tart, ami lassítja a visszacsatolást a fejlesztők számára.
- Kisebb skálázhatóság: Ahogy a projekt növekszik és nő a telepítési környezetek száma, ez a workflow nehézkessé és kezelhetetlenné válik.
Egy gyakrabban alkalmazott és rugalmasabb gyakorlat a lépések szétválasztása:
- Build & Test Pipeline: A kód összegyűjtéséért, teszteléséért, kép készítéséért és az artefaktárba (pl. Docker Registry, Nexus) való elhelyezéséért felelős. Ez a workflow minden commit vagy pull request esetén elindul.
- Deployment Pipelines: Külön workflow-k minden környezethez. Ezek a már elkészített és tesztelt képet veszik az artefaktárból, és telepítik a célnak megfelelő környezetbe. Ezek a workflow-k lehetnek manuálisan indítva, ütemezés szerint vagy automatikusan a korábbi szakasz sikeres befejezése után (pl. sikeres staging telepítés).
Ez lehetővé teszi:
- Gyorsabb visszacsatolást a kód minőségéről (build & test).
- Független telepítést különböző környezetekbe.
- Rugalmasabb telepítési paraméterek kezelését minden környezethez.
- A visszagörgetési folyamat egyszerűsítését.
Kis pet-projektek vagy egyszerű telepítési folyamatú monolit alkalmazások esetén ez lehet a kivétel, ahol a szétválasztás költségei meghaladják az előnyöket. Azonban a legtöbb vállalati környezetben a workflow szétválasztása a legjobb gyakorlat.