Sobes.tech
Middle

Como realiza o deployment de aplicações?

sobes.tech IA

Resposta da IA

O processo de implantação depende da escala do projeto e da infraestrutura utilizada, mas em geral sigo os seguintes passos:

  1. Construção do projeto: Uso empacotadores como Webpack, Rollup ou Vite para transpilar o código, minificar, otimizar recursos.
  2. Testes: Realizo testes automatizados (unitários, de integração, end-to-end) para verificar a funcionalidade.
  3. Versionamento: Crio uma etiqueta git ou um commit para fixar a versão do lançamento.
  4. Implantação em staging (opcional): Implantação em um servidor de teste para uma revisão final pela equipe.
  5. Implantação em produção:
    • Carregar os arquivos construídos no servidor web (Nginx, Apache) ou CDN.
    • Atualizar arquivos de configuração (se necessário).
    • Aplicar migrações (para backend, se aplicável).
    • Reiniciar o servidor web ou serviço.
  6. Verificação pós-implantação: Verifico a funcionalidade no ambiente de produção, monitoramento de métricas.

Utilizo ferramentas CI/CD (GitHub Actions, GitLab CI, Jenkins) para automatizar a maioria desses passos, garantindo consistência e reduzindo a probabilidade de erros.

Exemplo de pipeline CI/CD simples para implantação em hospedagem estática:

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

on:
  push:
    branches:
      - main # Disparador ao fazer push na branch main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # Sistema operacional utilizado

    steps:
    - name: Checkout do código
      uses: actions/checkout@v2 # Obtenção do código do repositório

    - name: Configurar Node.js
      uses: actions/setup-node@v2 # Configuração do Node.js
      with:
        node-version: '16' # Versão específica do Node.js

    - name: Instalar dependências
      run: npm ci # Instalação das dependências

    - name: Construir projeto
      run: npm run build # Executar script de build do package.json

    - name: Deploy para GitHub Pages
      uses: peaceiris/actions-gh-pages@v3 # Ação para deploy no GitHub Pages
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Token de acesso
        publish_dir: ./dist # Pasta do projeto construído (depende da configuração do empacotador)