Sobes.tech
Middle

Hoe voert u de deployment van applicaties uit?

sobes.tech AI

Antwoord van AI

Het deploymentproces hangt af van de omvang van het project en de gebruikte infrastructuur, maar ik volg over het algemeen de volgende stappen:

  1. Build van het project: Ik gebruik bundlers zoals Webpack, Rollup of Vite om de code te transpilen, minificeren en bronnen te optimaliseren.
  2. Testen: Ik voer geautomatiseerde tests uit (unit, integratie, end-to-end) om de functionaliteit te controleren.
  3. Versiebeheer: Ik maak een git-tag of commit aan om de releaseversie vast te leggen.
  4. Deployment op staging (optioneel): Deployment op een testserver voor een laatste controle door het team.
  5. Deployment op productie:
    • Upload de gebouwde bestanden naar de webserver (Nginx, Apache) of CDN.
    • Werk de configuratiebestanden bij (indien nodig).
    • Voer migraties uit (indien van toepassing voor backend).
    • Herstart de webserver of service.
  6. Post-deployment controle: Ik controleer de functionaliteit in de productieomgeving, monitor de metrics.

Ik gebruik CI/CD-tools (GitHub Actions, GitLab CI, Jenkins) om de meeste van deze stappen te automatiseren, wat consistentie garandeert en de kans op fouten verkleint.

Voorbeeld van een eenvoudige CI/CD-pipeline voor deployment op een statische host:

# .github/workflows/deploy.yml
name: Deploy naar GitHub Pages

on:
  push:
    branches:
      - main # Trigger bij push naar de main-branch

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # Besturingssysteem

    steps:
    - name: Code uitchecken
      uses: actions/checkout@v2 # Code ophalen uit repository

    - name: Node.js instellen
      uses: actions/setup-node@v2 # Node.js configureren
      with:
        node-version: '16' # Specifieke Node.js-versie

    - name: Dependencies installeren
      run: npm ci # Dependencies installeren

    - name: Project bouwen
      run: npm run build # Build-script uitvoeren uit package.json

    - name: Deploy naar GitHub Pages
      uses: peaceiris/actions-gh-pages@v3 # Actie voor deployment naar GitHub Pages
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Toegangstoken
        publish_dir: ./dist # Map met het gebouwde project (afhankelijk van de configuratie van de bundler)