Servidores e Deploy
Este capítulo explica como um programa sai do seu computador e passa a funcionar para qualquer pessoa na internet.
Esse processo envolve dois conceitos fundamentais:
- Servidor
- Deploy
🌍 O que é um servidor?
Um servidor é um computador que fica ligado 24 horas por dia, conectado à internet, esperando requisições de outros computadores.
Enquanto seu notebook:
- Liga
- Desliga
- Dorme
- Muda de rede
Um servidor:
- Fica sempre disponível
- Tem IP fixo ou controlado
- Possui conexão estável
- Está preparado para receber milhares de acessos
🧠 Analogia simples
Imagine um restaurante.
- Seu computador → sua cozinha em casa
- Servidor → restaurante aberto ao público
Você pode cozinhar em casa, mas ninguém vem até lá comprar comida.
Para atender pessoas, você precisa colocar seu serviço em um local público e acessível.
Esse local é o servidor.
🌐 O que é deploy?
Deploy é o processo de:
Publicar seu sistema em um servidor para que ele fique acessível pela internet.
Em termos práticos, deploy significa:
- Enviar o código para um servidor
- Instalar dependências
- Configurar ambiente
- Iniciar o sistema
- Manter tudo rodando continuamente
🔁 Fluxo clássico de deploy
- Desenvolver localmente
- Testar localmente
- Subir o código para o GitHub
- Conectar o servidor ao repositório
- Executar deploy automático
🏗️ Tipos de servidores
1. Servidor físico
Um computador real dedicado.
- Alto custo
- Manutenção própria
- Controle total
2. Servidor virtual (VPS / Cloud)
Um computador virtual rodando em data centers.
- Custo menor
- Escala automática
- Alta disponibilidade
👉 É o modelo mais usado atualmente.
☁️ Plataformas modernas de deploy
Algumas plataformas que simplificam o deploy:
- Render
- Railway
- Vercel
- Fly.io
- DigitalOcean
- AWS
- Google Cloud
No Chizu utilizamos:
👉 Render
🧩 O papel do Render no Chizu
O Render:
- Recebe o código do GitHub
- Instala automaticamente as dependências
- Cria o ambiente Python
- Inicia o servidor FastAPI
- Mantém o serviço ativo 24/7
Tudo isso sem necessidade de configurar servidores manualmente.
⚙️ Como funciona o deploy do Chizu
Fluxo real do projeto: VS Code → Git → GitHub → Render → Internet
Passo a passo:
- Você altera o código localmente
- Executa: git add . git commit -m "mensagem" git push
- O GitHub recebe o novo código
- O Render detecta automaticamente a mudança
- Um novo deploy é feito
- O Chizu entra no ar atualizado
🧪 Teste local x produção
Durante o desenvolvimento: uvicorn web:app --reload
Durante produção (Render):
- O Render executa o servidor automaticamente
- Usa configurações próprias de performance e segurança
🔐 Segurança básica em deploy
Alguns cuidados importantes:
- Nunca subir chaves secretas no GitHub
- Usar variáveis de ambiente
- Controlar permissões de acesso
- Monitorar logs do servidor
🌎 GitHub Pages — Servidor da documentação
Além do backend, o projeto possui documentação pública hospedada em:
👉 GitHub Pages
Ele funciona como:
- Um servidor de arquivos HTML
- Hospedagem estática
- Ideal para documentação
Fluxo: Markdown → Pandoc → HTML → GitHub Pages → Navegador
🧠 Conceito-chave
Deploy é o ritual que transforma um projeto pessoal em um serviço público.
É o momento em que o sistema deixa de ser apenas código e passa a existir no mundo real.
📌 No Chizu
O uso de Render + GitHub Pages permite:
- Backend sempre online
- Documentação pública clara
- Atualizações automáticas
- Pipeline profissional real
Isso transforma o Chizu em um projeto completo de engenharia de software, não apenas um experimento local.