Este projeto foi desenvolvido durante a Imersão DevOps promovida pela Alura em parceria com o Google Cloud. O objetivo foi aplicar práticas modernas de DevOps com foco em containers, integração contínua e deploy em cloud utilizando o Google Cloud Run.
API desenvolvida com FastAPI para gerenciar alunos, cursos e matrículas em uma instituição de ensino.
A aplicação consiste em uma API RESTful simples, containerizada com Docker, automatizada com CI/CD, e implantada na nuvem via Google Cloud Run.
Durante a imersão, foram abordados:
- Docker e conceitos de containerização
- Criação de pipelines de CI/CD
- Deploy automático usando Google Cloud Run
- Monitoramento e boas práticas de DevOps
-
Faça o download do repositório: Clique aqui para realizar o download
-
Crie um ambiente virtual:
python3 -m venv ./venv
-
Ative o ambiente virtual:
- No Linux/Mac:
source venv/bin/activate - No Windows:
venv\Scripts\activate
- No Linux/Mac:
-
Instale as dependências:
pip install -r requirements.txt
-
Execute a aplicação:
uvicorn app:app --reload
-
Acesse a documentação interativa:
Abra o navegador e acesse:
http://127.0.0.1:8000/docsAqui você pode testar todos os endpoints da API de forma interativa.
gcloud auth login
gcloud config set project PROJECT_ID
gcloud run deploy --port=8000
A aplicação está em produção e a documentação interativa (gerada via Swagger UI) pode ser acessada abaixo:
Use essa interface para explorar os endpoints da API, testar requisições e entender a estrutura dos dados.
- Python (FastAPI)
- Docker
- GitHub Actions (CI/CD)
- Google Cloud Run
- Swagger UI (OpenAPI)
- Git
-
Clone o repositório:
git clone https://github.com/laurofrancisco/imersao-devops-main.git cd imersao-devops-main -
Execute com Docker:
docker build -t imersao-api . docker run -p 8000:8000 imersao-api -
Acesse localmente em: http://localhost:8000/docs
app.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.dbna primeira execução. - Para reiniciar o banco, basta apagar o arquivo
escola.db(isso apagará todos os dados).
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais informações.