Sobes.tech
Middle

Como é o processo de implantação (deploy) da aplicação?

sobes.tech IA

Resposta da IA

O processo automatizado de implantação inclui as seguintes etapas:

  1. Obtenção da versão atual do código: Normalmente, é utilizado um sistema de controlo de versões (por exemplo, Git) para obter as últimas alterações do repositório.

    # Exemplo de comando Git para obter as últimas alterações
    git pull origin main
    
  2. Instalação de dependências: Se o projeto usar um gestor de dependências (por exemplo, Composer), é executado um comando para instalar ou atualizar as bibliotecas.

    // Exemplo de comando Composer
    composer install --no-dev --optimize-autoloader
    
  3. Construção do frontend (se aplicável): Se for usado um empacotador de frontend (por exemplo, Webpack, Gulp), é executado um comando para construir os recursos estáticos.

    # Exemplo de comando NPM para construir
    npm run build
    
  4. Migração da base de dados: São executados scripts para ajustar a estrutura da base de dados à versão atual da aplicação.

    # Exemplo de comando para executar migrações
    php artisan migrate --force # Laravel
    
  5. Limpeza e cache em quente: O cache do framework e dos dados é limpo, e pré-carregado se necessário.

    // Exemplo de comandos para limpar cache
    php artisan cache:clear # Laravel
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    
  6. Links simbólicos e permissões de acesso: São configurados os links simbólicos necessários e as permissões de acesso a ficheiros e diretórios.

    # Exemplo de comando para configurar permissões
    chmod -R 755 storage
    
  7. Alterar a versão ativa: Se for usado um método de "tempo de inatividade zero" (por exemplo, criando um link simbólico current para a nova build), é feito o switch.

  8. Reinício de serviços (se necessário): Se a aplicação requer reiniciar o servidor web ou os workers de fila, executa-se o comando correspondente.

    # Exemplo de comando para reiniciar PHP-FPM
    sudo systemctl reload php-fpm.service
    

Este processo geralmente é automatizado através de scripts ou ferramentas especializadas de deploy (por exemplo, Capistrano, Deployer, GitLab CI/CD, Jenkins).