Sobes.tech
Junior

Czym jest ciągłe wdrażanie (continuous deployment)?

sobes.tech AI

Odpowiedź od AI

To jest podejście w rozwoju oprogramowania, w którym każda zmiana, przechodząca przez zautomatyzowany pipeline testów i zatwierdzenia, jest automatycznie wdrażana na środowisko produkcyjne. Główna różnica od Continuous Delivery polega na braku ręcznego kroku zatwierdzenia przed wdrożeniem na produkcję.

Główne etapy:

  1. Commit: Programista dokonuje commitu zmian w systemie kontroli wersji (np. Git).
  2. Build: Automatyczne zbudowanie artefaktu (obrazu, pakietu itp.).
  3. Test: Uruchomienie automatycznych testów (testy jednostkowe, integracyjne, funkcjonalne, obciążeniowe itp.).
  4. Deploy: Jeśli wszystkie testy przejdą pomyślnie, artefakt jest automatycznie wdrażany na środowisko robocze.

Kluczowe składniki:

  • Wysoki poziom automatyzacji.
  • Niezawodna infrastruktura.
  • Wykorzystanie praktyk Continuous Integration (CI) i Continuous Delivery (CD).
  • Monitoring i logowanie w celu szybkiego wykrywania problemów.
  • Możliwość szybkiego wycofania.
# Przykład części pipeline w GitLab CI/CD
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Budowanie aplikacji..."
    - # Komendy build tutaj

test_job:
  stage: test
  script:
    - echo "Uruchamianie testów..."
    - # Komendy testowe tutaj
  only:
    - main # Wywołuj tylko dla głównej gałęzi

deploy_job:
  stage: deploy
  script:
    - echo "Wdrażanie na produkcję..."
    - # Komendy wdrożeniowe tutaj
  when: on_success # Wdrażaj tylko jeśli poprzednie etapy się powiodły
  only:
    - main
Zalety Wady
Szybkie wydanie nowych funkcji/napraw Wysokie wymagania dotyczące jakości testów
Skrócenie TTM (Time To Market) Potencjalne ryzyko wdrożenia niepożądanych zmian
Zmniejszenie ryzyka przy każdym wdrożeniu Złożoność wdrożenia bez dojrzałych procesów CI/CD
Szybka informacja zwrotna od użytkowników Konieczność niezawodnego monitorowania i możliwości wycofania