Sobes.tech
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:

  1. 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.
  2. 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.