Sobes.tech
Middle+

Myslíš, že je správne spojiť zostavenie, testovanie a publikovanie obrazu v jednom workflow a tiež pridať kroky pre nasadenie do rôznych prostredí?

sobes.tech AI

Odpoveď od AI

To nie je vždy optimálne. Chociaž takýto prístup môže byť vhodný pre malé projekty alebo lokálne testovacie zostavy, spájanie všetkých krokov do jedného workflow má nevýhody:

  • Zníženie flexibility: Nasadenie do rôznych prostredí (dev, staging, produkcia) vyžaduje rôzne parametre a často rôzne prístupové práva. Spájanie to sťažuje správu týchto rozdielov.
  • Závislosť od prostredia: Ak sa nasadenie v jednom z prostredí nepodarí, celá zostava sa považuje za neúspešnú, aj keď tvorba obrazu a testy prebehli úspešne.
  • Ťažkosti pri rollbacku: Vrátenie nasadenia je menej jednoduché, pretože je potrebné vrátiť celý workflow.
  • Predĺženie doby behu: Celý pipeline trvá dlhšie, čo spomaľuje spätnú väzbu pre vývojárov.
  • Menšia škálovateľnosť: S rastom projektu a zvyšovaním počtu prostredí pre nasadenie sa tento workflow stáva neprehľadným a ťažko spravovateľným.

Častejšou a flexibilnejšou praxou je rozdelenie týchto etáp:

  1. Build & Test Pipeline: Zodpovedá za zostavenie kódu, testovanie, vytvorenie obrazu a jeho uloženie do artefaktového úložiska (napríklad Docker Registry, Nexus). Tento workflow sa spúšťa pri každom commite alebo pull requeste.
  2. Deployment Pipelines: Samostatné workflows pre nasadenie do každého prostredia. Tieto načítavajú už zostavený a otestovaný obraz z artefaktového úložiska a nasadzujú ho do cieľového prostredia. Tieto workflows môžu byť spustené manuálne, podľa plánu alebo automaticky po úspešnom ukončení predchádzajúcej fázy (napríklad, úspešné nasadenie v staging).

Toto umožňuje:

  • Rýchlejšiu spätnú väzbu o kvalite kódu (build & test).
  • Nezávislé nasadenie do rôznych prostredí.
  • Flexibilnejšie riadenie parametrov nasadenia pre každé prostredie.
  • Zjednodušenie procesu rollbacku.

Výnimkou môžu byť malé pet-projekty alebo monolitické aplikácie s jednoduchým procesom nasadenia, kde náklady na rozdelenie prevyšujú prínosy. V väčšine podnikových prostredí je však rozdelenie workflow najlepšou praxou.