Arquivo 5: modulo-05-hospedagem-implantacao.md

☁️ Módulo 5: Onde Tudo Acontece - Hospedagem e Implantação

Chegou a hora de colocar sua aplicação no ar! Este módulo explora as diferentes maneiras de hospedar seu projeto, desde as mais simples até as mais robustas arquiteturas em nuvem.

🏠 Aula 1: Opções de Hospedagem

A escolha do ambiente de hospedagem depende do seu projeto, orçamento e nível de controle desejado.

🚀 Aula 2: A Revolução da Cloud Computing

A computação em nuvem (Cloud Computing) mudou o paradigma da infraestrutura, oferecendo recursos sob demanda e pagando apenas pelo que se usa.

Modelos de Serviço

flowchart TD
    subgraph "Controle e Gerenciamento"
    direction LR
    A("'<b">On-Premise (Auto-hospedagem)</b>"<br">Você gerencia tudo")
    B("'<b">IaaS (Cloud)</b>"<br">Você gerencia:<br>"- Aplicação<br">- Dados<br>"- Runtime<br">- S.O.")
    C("'<b">PaaS (Cloud)</b>"<br">Você gerencia:<br>"- Aplicação<br">- Dados")
    D("'<b">SaaS (Cloud)</b>"<br">Você não gerencia nada")
    end
    style A fill:#ffb3ba
    style B fill:#ffdfba
    style C fill:#ffffba
    style D fill:#baffc9

Principais Provedores: AWS (Amazon Web Services), Google Cloud Platform (GCP), Microsoft Azure.

🔧 Aula 3: Implantação em um VPS

Vamos ao passo a passo prático de como implantar uma aplicação em um VPS (ex: DigitalOcean, Vultr, Linode).

  1. Provisionar o VPS:

    • Crie uma conta no provedor.
    • Escolha uma distribuição Linux (Ubuntu 22.04 é uma ótima escolha).
    • Escolha o tamanho do servidor e a localização.
    • Configure uma chave SSH para acesso seguro.
  2. Acessar o Servidor via SSH:

    # Conectando ao servidor com sua chave SSH
    ssh root@SEU_ENDERECO_DE_IP
    
  3. Atualizar o Sistema e Instalar o LEMP Stack:

    • LEMP significa Linux, Engine-X (Nginx), MySQL e PHP/Python.
    # Atualizar os pacotes do sistema
    sudo apt update && sudo apt upgrade -y
    
    # Instalar Nginx
    sudo apt install nginx -y
    
    # Instalar MySQL
    sudo apt install mysql-server -y
    sudo mysql_secure_installation # Configurar a segurança do banco
    
    # Instalar PHP (ou o runtime da sua aplicação)
    sudo apt install php-fpm php-mysql -y
    
  4. Configurar o Nginx e Implantar o Código:

    • Crie um arquivo de configuração de servidor para o seu site em /etc/nginx/sites-available/.
    • Transfira os arquivos da sua aplicação para o servidor (usando git clone ou scp).
    • Reinicie o Nginx (sudo systemctl restart nginx) e pronto!

🌐 Aula 4: Primeiros Passos na Nuvem (Cloud)

A nuvem oferece um ecossistema de serviços muito mais rico que um simples VPS.