Este projeto é uma API desenvolvida com FastAPI para gerenciar alunos, cursos e matrículas em uma instituição de ensino.
- Clone o repositório:
git clone https://github.com/givgramacho/devops-alura-google.git cd devops-alura-google - Crie e ative o ambiente virtual:
python3 -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows
- Instale as dependências:
pip install -r requirements.txt
- Execute a aplicação:
uvicorn app:app --reload
- Acesse a documentação interativa em http://127.0.0.1:8000/docs
- Construa a imagem:
docker build -t fastapi-app . - Rode o container:
docker run -p 8000:8000 fastapi-app
- Acesse: http://localhost:8000/docs
- Construa e suba os containers:
docker-compose up --build
- Acesse: http://localhost:8000/docs
- Inicialize o repositório Git no diretório do projeto:
git init
- Adicione todos os arquivos do projeto ao controle de versão:
git add . - Faça o primeiro commit:
git commit -m "Primeiro commit do projeto FastAPI" - Crie um repositório no GitHub:
- Acesse https://github.com/new e crie um novo repositório (por exemplo,
imersao-devops).
- Acesse https://github.com/new e crie um novo repositório (por exemplo,
- Adicione o repositório remoto ao seu projeto local:
Substitua
git remote add origin https://github.com/SEU_USUARIO/imersao-devops.git
SEU_USUARIOpelo seu nome de usuário do GitHub. - Envie o código para o GitHub:
git branch -M main git push -u origin main
Este projeto é uma API desenvolvida com FastAPI para gerenciar alunos, cursos e matrículas em uma instituição de ensino.
gcloud auth login
## Crie o projeto antes no Google Cloud para obter o Project_ID, mais detalhes na sessão abaixo ## Autenticação no Google Cloud Avançada.
gcloud config set project PROJECT_ID
gcloud run deploy --port=8000app.py: Arquivo principal da aplicação FastAPI.models.py: Modelos do banco de dados (SQLAlchemy).schemas.py: Schemas de validação (Pydantic).database.py: Configuração do banco de dados SQLite.routers/: Diretório com os arquivos de rotas (alunos, cursos, matrículas).requirements.txt: Lista de dependências do projeto.
O banco de dados SQLite será criado automaticamente como escola.db na primeira execução. Para reiniciar o banco, basta apagar o arquivo escola.db (isso apagará todos os dados).
Para utilizar recursos do Google Cloud (como Cloud Run, Cloud SQL, Storage, etc.), é necessário autenticar sua conta localmente. Siga os passos abaixo:
- Instale o Google Cloud SDK: https://cloud.google.com/sdk/docs/install
- Faça login na sua conta Google:
gcloud auth login
- Selecione o projeto desejado:
gcloud config set project SEU_ID_DO_PROJETO - (Opcional) Defina a região padrão:
gcloud config set compute/region southamerica-east1 - (Opcional) Defina a zona padrão:
gcloud config set compute/zone southamerica-east1-a - Verifique se está autenticado:
gcloud auth list
- (Opcional) Autentique para uso em containers/Docker:
gcloud auth configure-docker
- Faça o build e push da imagem para o Google Container Registry ou Artifact Registry:
docker build -t gcr.io/SEU_ID_DO_PROJETO/fastapi-app:latest . docker push gcr.io/SEU_ID_DO_PROJETO/fastapi-app:latest - Faça o deploy no Cloud Run:
gcloud run deploy fastapi-app \ --image gcr.io/SEU_ID_DO_PROJETO/fastapi-app:latest \ --platform managed \ --region southamerica-east1 \ --port 8000 \ --allow-unauthenticated
- O parâmetro
--port 8000garante que o serviço será exposto na porta 8000. - Altere a região se necessário.
- O parâmetro
- Acesse a URL gerada pelo Cloud Run para testar sua API.
O tutorial completo de DevOps (incluindo exemplo com Flask, Dockerfile detalhado, push para Artifact Registry, dicas para WSL, etc.) foi movido para o arquivo TUTORIAL_DEVOPS.md. Lá você encontra um passo a passo para iniciantes, cobrindo desde a criação de uma aplicação simples até o deploy na Google Cloud Platform.
Se encontrar algum erro ou tiver sugestões, abra uma issue ou envie um pull request!