Sobes.tech
Middle

Cum realizați deployment-ul aplicațiilor?

sobes.tech AI

Răspuns de la AI

Procesul de implementare depinde de amploarea proiectului și de infrastructura utilizată, dar în general urmez pașii următori:

  1. Construirea proiectului: Folosesc bundlere precum Webpack, Rollup sau Vite pentru transpilarea codului, minificare și optimizarea resurselor.
  2. Testare: Efectuez teste automatizate (unitare, de integrare, end-to-end) pentru a verifica funcționalitatea.
  3. Versionare: Creez un tag git sau un commit pentru a fixa versiunea release-ului.
  4. Deploy pe staging (opțional): Deploy pe un server de test pentru verificări finale.
  5. Deploy pe producție:
    • Încarc fișierele construite pe serverul web (Nginx, Apache) sau CDN.
    • Actualizez fișierele de configurare (dacă este necesar).
    • Aplic migrațiile (dacă este cazul pentru backend).
    • Repornesc serverul web sau serviciul.
  6. Verificare post-deploy: Verific funcționalitatea în mediul de producție, monitorizez metricile.

Folosesc instrumente CI/CD (GitHub Actions, GitLab CI, Jenkins) pentru a automatiza majoritatea acestor pași, asigurând coerența și reducând probabilitatea de erori.

Exemplu de pipeline CI/CD simplu pentru deployment pe hosting static:

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

on:
  push:
    branches:
      - main # Trigger la push pe branch-ul main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # Sistem de operare utilizat

    steps:
    - name: Clonare cod
      uses: actions/checkout@v2 # Obține codul din repository

    - name: Configurare Node.js
      uses: actions/setup-node@v2 # Configurează Node.js
      with:
        node-version: '16' # Versiune specifică Node.js

    - name: Instalează dependențe
      run: npm ci # Instalează dependențele

    - name: Construiește proiectul
      run: npm run build # Rulează scriptul de build din package.json

    - name: Deploy pe GitHub Pages
      uses: peaceiris/actions-gh-pages@v3 # Acțiune pentru deploy pe GitHub Pages
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Token de acces
        publish_dir: ./dist # Folderul cu proiectul construit (depinde de configurația bundler-ului)