Sobes.tech
Middle

როგორ მიმდინარეობს პროგრამის განთავსების (დეპლოი) პროცესი?

sobes.tech AI

პასუხი AI-სგან

ავტომატიზებული განთავსების პროცესი მოიცავს შემდეგ ეტაპებს:

  1. მიმდინარე კოდის ვერსიის მიღება: ჩვეულებრივ გამოიყენება ვერსიების კონტროლის სისტემა (მაგალითად, Git) ბოლო ცვლილებების ჩამოსატანად რეპოზიტორიდან.

    # Git ბრძანების მაგალითი ბოლო ცვლილებების მისაღებად
    git pull origin main
    
  2. მომსახურების დამოკიდებულებების ინსტალაცია: თუ პროექტი იყენებს დამოკიდებულებების მენეჯერს (მაგალითად, Composer), მაშინ იწარმოება ბრძანება ბიბლიოთეკების ინსტალაციის ან განახლებისთვის.

    // Composer ბრძანების მაგალითი
    composer install --no-dev --optimize-autoloader
    
  3. ფრონტენდის შეკრება (თუ საჭიროა): თუ გამოიყენება ფრონტენდის შეკრების ინსტრუმენტი (მაგალითად, Webpack, Gulp), მაშინ შესრულდება შეკრების ბრძანება.

    # NPM ბრძანების მაგალითი შეკრებისათვის
    npm run build
    
  4. მიგრაციები მონაცემთა ბაზაზე: სკრიპტები შეასრულება მონაცემთა ბაზის სტრუქტურის შესაბამისობაში მოყვანისთვის.

    # მიგრაციების შესრულების ბრძანების მაგალითი
    php artisan migrate --force # Laravel
    
  5. კეშის გასუფთავება და თბილი კეში: კეში ფრეიმვერკის და მონაცემების წაშლა, და საჭიროების შემთხვევაში, წინასწარ გამართვა.

    // კეშის გასუფთავების ბრძანებების მაგალითი
    php artisan cache:clear # Laravel
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    
  6. სიმვოლური ლინკები და უფლებები: საჭირო სიმვოლური ლინკების და ფაილების და დირექტორიების უფლებების დაყენება.

    # უფლებების დაყენების ბრძანების მაგალითი
    chmod -R 755 storage
    
  7. აქტიური ვერსიის გადართვა: თუ გამოიყენება "ნულოვანი დროის გაუქმების" მიდგომა (მაგალითად, ახალი კოლექციის სიმვოლური ლინკის შექმნით current), განხორციელდება გადართვა.

  8. სერვისების გადატვირთვა (თუ საჭიროა): თუ აპლიკაცია საჭიროებს ვებ სერვერის ან რიგის მუშაკების გადატვირთვას, შესრულდება შესაბამისი ბრძანება.

    # PHP-FPM-ის გადატვირთვის მაგალითი
    sudo systemctl reload php-fpm.service
    

ამ პროცესს ჩვეულებრივ ავტომატიზირებენ სკრიპტებით ან სპეციალიზებული ინსტრუმენტებით (მაგალითად, Capistrano, Deployer, GitLab CI/CD, Jenkins).