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

  1. Commit: Programer pravi commit promena u sistem za kontrolu verzija (npr. Git).
  2. Build: Automatska izgradnja artefakta (slika, paket itd.).
  3. Test: Izvršavanje automatizovanih testova (jediničnih, integracionih, funkcionalnih, opterećenja itd.).
  4. 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