Sobes.tech
Middle

Ako prebieha proces nasadenia (deployment) aplikácie?

sobes.tech AI

Odpoveď od AI

Automatizovaný proces nasadenia zahŕňa nasledujúce kroky:

  1. Získanie aktuálnej verzie kódu: Zvyčajne sa používa systém správy verzií (napríklad Git) na stiahnutie najnovších zmien z repozitára.

    # Príklad príkazu Git na získanie najnovších zmien
    git pull origin main
    
  2. Inštalácia závislostí: Ak projekt používa správcu závislostí (napríklad Composer), spustí sa príkaz na inštaláciu alebo aktualizáciu knižníc.

    // Príklad príkazu Composer
    composer install --no-dev --optimize-autoloader
    
  3. Skladanie frontendu (ak je to potrebné): Ak sa používa skladací nástroj pre frontend (napríklad Webpack, Gulp), vykoná sa príkaz na zostavenie statických zdrojov.

    # Príklad príkazu NPM na zostavenie
    npm run build
    
  4. Migrácie databázy: Spúšťajú sa skripty na prispôsobenie štruktúry databázy aktuálnej verzii aplikácie.

    # Príklad príkazu na vykonanie migrácií
    php artisan migrate --force # Laravel
    
  5. Vyčistenie a teplá cache: Vymaže sa cache frameworku a dát, a ak je to potrebné, sa vykreje.

    // Príklad príkazov na vyčistenie cache
    php artisan cache:clear # Laravel
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    
  6. Symbolické odkazy a práva prístupu: Nastavia sa potrebné symbolické odkazy a práva k súborom a adresárom.

    # Príklad príkazu na nastavenie práv
    chmod -R 755 storage
    
  7. Prepnúť aktívnu verziu: Ak sa používa prístup s "nulovým časom odstávky" (napríklad vytvorením symbolického odkazu current na novú zostavu), prejde sa na novú verziu.

  8. Reštart služieb (ak je to potrebné): Ak aplikácia vyžaduje reštart webového servera alebo workerov fronty, vykoná sa príslušný príkaz.

    # Príklad príkazu na reštart PHP-FPM
    sudo systemctl reload php-fpm.service
    

Celý tento proces je zvyčajne automatizovaný pomocou skriptov alebo špecializovaných nástrojov na nasadenie (napríklad Capistrano, Deployer, GitLab CI/CD, Jenkins).