Sobes.tech
Junior

Wat is continue deployment (continuous deployment)?

sobes.tech AI

Antwoord van AI

Dit is een aanpak in softwareontwikkeling waarbij elke wijziging, die door een geautomatiseerde pipeline van testen en goedkeuring is gegaan, automatisch wordt uitgerold naar de productieomgeving. Het belangrijkste verschil met Continuous Delivery is het ontbreken van een handmatige goedkeuringsstap voordat wordt gedeployed naar productie.

Belangrijkste fasen:

  1. Commit: De ontwikkelaar commit de wijzigingen in het versiebeheersysteem (bijvoorbeeld Git).
  2. Build: Automatische bouw van het artefact (afbeelding, pakket, etc.).
  3. Test: Uitvoering van automatische tests (unit, integratie, functioneel, load, etc.).
  4. Deploy: Als alle tests succesvol zijn, wordt het artefact automatisch gedeployed naar de werkomgeving.

Belangrijke componenten:

  • Hoog niveau van automatisering.
  • Betrouwbare infrastructuur.
  • Gebruik van Continuous Integration (CI) en Continuous Delivery (CD) praktijken.
  • Monitoring en logging voor snelle probleemdetectie.
  • Mogelijkheid tot snelle rollback.
# Voorbeeld van een pipeline in GitLab CI/CD
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Applicatie bouwen..."
    - # Build-commando's

test_job:
  stage: test
  script:
    - echo "Tests uitvoeren..."
    - # Test-commando's
  only:
    - main # Alleen triggeren voor de hoofdbranch

deploy_job:
  stage: deploy
  script:
    - echo "Deployen naar productie..."
    - # Deployment-commando's
  when: on_success # Alleen deployen als vorige fasen slagen
  only:
    - main
Voordelen Nadelen
Snelle uitrol van nieuwe functies/oplossingen Hoge eisen aan testkwaliteit
Verkorting van TTM (Time To Market) Potentieel risico op het uitrollen van ongewenste wijzigingen
Risicovermindering bij elke uitrol Complexiteit bij implementatie zonder volwassen CI/CD-processen
Snelle feedback van gebruikers Noodzaak voor betrouwbare monitoring en rollback-mogelijkheden