Sobes.tech
Middle

Ako vykonávate nasadenie aplikácií?

sobes.tech AI

Odpoveď od AI

Proces nasadenia závisí od veľkosti projektu a použitých infraštruktúr, ale všeobecne nasledujem tieto kroky:

  1. Skladanie projektu: Používam balíčkovače ako Webpack, Rollup alebo Vite na transpilačný kód, minifikáciu a optimalizáciu zdrojov.
  2. Testovanie: Vykonávam automatizované testy (unit, integračné, end-to-end) na overenie funkčnosti.
  3. Verzionovanie: Vytváram git tag alebo commit na fixáciu verzie vydania.
  4. Nasadenie na staging (voliteľné): Nasadenie na testovací server na finálnu kontrolu tímom.
  5. Nasadenie na produkciu:
    • Nahranie zostavených súborov na webový server (Nginx, Apache) alebo CDN.
    • Aktualizácia konfiguračných súborov (ak je potrebné).
    • Aplikácia migrácií (ak je to relevantné pre backend).
    • Reštart webového servera alebo služby.
  6. Kontrola po nasadení: Kontrolujem funkčnosť v produkčnom prostredí, monitorovanie metrík.

Používam nástroje CI/CD (GitHub Actions, GitLab CI, Jenkins) na automatizáciu väčšiny týchto krokov, čo zabezpečuje konzistentnosť a znižuje pravdepodobnosť chýb.

Príklad jednoduchého CI/CD pipeline pre nasadenie na statický hosting:

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

on:
  push:
    branches:
      - main # Trigger pri push na branch main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # Operačný systém

    steps:
    - name: Stiahnutie kódu
      uses: actions/checkout@v2 # Stiahnutie kódu z repozitára

    - name: Nastavenie Node.js
      uses: actions/setup-node@v2 # Konfigurácia Node.js
      with:
        node-version: '16' # Konkrétna verzia Node.js

    - name: Inštalácia závislostí
      run: npm ci # Inštalácia závislostí

    - name: Skladanie projektu
      run: npm run build # Spustenie build skriptu z package.json

    - name: Nasadenie na GitHub Pages
      uses: peaceiris/actions-gh-pages@v3 # Akcia na nasadenie na GitHub Pages
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Prístupový token
        publish_dir: ./dist # Zložka s postaveným projektom (závisí od konfigurácie bundlera)