Junior
Šta je kontinuirano implementiranje (continuous deployment)?
sobes.tech АИ
Одговор од АИ
Ovo je pristup u razvoju softvera gde se svaka promena, koja prođe kroz automatizovani pipeline testova i odobrenja, automatski implementira u proizvodno okruženje. Glavna razlika u odnosu na Continuous Delivery je odsustvo ručnog koraka odobrenja pre deploy-a u produkciju.
Glavni koraci:
- Commit: Programer pravi commit promena u sistem za kontrolu verzija (npr. Git).
- Build: Automatska izgradnja artefakta (slika, paket itd.).
- Test: Izvršavanje automatizovanih testova (jediničnih, integracionih, funkcionalnih, opterećenja itd.).
- Deploy: Ako svi testovi uspešno prođu, artefakt se automatski deploy-uje u radno okruženje.
Ključni sastojci:
- Visok nivo automatizacije.
- Pouzdana infrastruktura.
- Korišćenje praksi Continuous Integration (CI) i Continuous Delivery (CD).
- Monitoring i logovanje za brzo otkrivanje problema.
- Mogućnost brzog rollback-a.
# Primer dela pipeline-a u GitLab CI/CD
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Gradnja aplikacije..."
- # Komande za build
test_job:
stage: test
script:
- echo "Pokretanje testova..."
- # Komande za testove
only:
- main # Pokreće se samo za glavnu granu
deploy_job:
stage: deploy
script:
- echo "Deploy u produkciju..."
- # Komande za deploy
when: on_success # Deploy samo ako prethodne faze uspeju
only:
- main
| Prednosti | Nedostaci |
|---|---|
| Brzo izdavanje novih funkcija/popravki | Visoki zahtevi za kvalitet testova |
| Smanjenje TTM (Time To Market) | Potencijalni rizik od deploy-a neželjenih promena |
| Smanjenje rizika pri svakom deploy-u | Složenost implementacije bez zrelih CI/CD procesa |
| Brza povratna informacija od korisnika | Potreba za pouzdanim monitoringom i mogućnošću rollback-a |