Skip to content

Liquenson/docker-devops-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐳 Docker DevOps Platform

Plataforma backend containerizada con Docker, PostgreSQL y CI/CD automatizado con GitHub Actions

CI Docker Python FastAPI

Backend moderno listo para producción ejecutándose en contenedores Docker con FastAPI y PostgreSQL, incluyendo pipeline CI automatizado para validación de builds y healthchecks.

En resumen: Base sólida DevOps para construir, testear y escalar aplicaciones containerizadas.


⚡ Arquitectura

Cliente → FastAPI (Docker) → PostgreSQL (Docker)

Componentes principales:

  • FastAPI backend en Python (API REST)
  • PostgreSQL 15 base de datos persistente
  • Docker Compose orquestación multi-servicio
  • GitHub Actions pipeline CI automatizado
  • Healthcheck validación automática de servicio

🚀 Inicio Rápido

Requisitos

- Docker 24.x+
- Docker Compose
- Git

Ejecución en 3 pasos

# 1. Clonar repositorio
git clone https://github.com/Liquenson/docker-devops-platform.git
cd docker-devops-platform

# 2. Levantar entorno
docker compose -f docker/docker-compose.dev.yml up --build -d

# 3. Verificar
curl http://localhost:8000/health

📊 Stack Tecnológico

Backend

Componente Versión Uso
Python 3.12 Lenguaje
FastAPI 0.115 API REST
Uvicorn 0.30 Servidor ASGI

Infraestructura

Componente Uso
Docker Contenedorización
Docker Compose Orquestación
PostgreSQL Base de datos

DevOps

Herramienta Uso
GitHub Actions CI Pipeline
Docker Build Build automático
Healthcheck Validación

🏗️ Estructura del Proyecto

docker-devops-platform/
├── app/                    # Aplicación FastAPI
│   ├── Dockerfile         # Imagen multi-stage
│   ├── requirements.txt
│   └── src/
│       └── main.py        # API (healthcheck incluido)
│
├── docker/                # Orquestación
│   └── docker-compose.dev.yml
│
├── nginx/                 # Reverse proxy (fase futura)
│   ├── Dockerfile
│   └── nginx.conf
│
├── .github/workflows/
│   └── ci.yml             # Pipeline CI
│
├── .env.example
└── README.md

🔄 Pipeline CI

Cada push a main ejecuta automáticamente:

GitHub Push ↓ ┌─────────────────────────────┐ │ 1. Build Docker │ │ 2. Run Container │ │ 3. Health Check (/health) │ │ 4. Stop Container │ └─────────────────────────────┘

Validaciones:

  • ✅ Build exitoso
  • ✅ Contenedor funcional
  • ✅ Endpoint /health responde
  • ❌ Fallo automático si algo no funciona

📡 API Endpoints

Endpoint Método Descripción
/ GET Mensaje de estado
/health GET Verificación de API + DB

Ejemplo de respuesta

{
  "status": "ok",
  "db": "connected"
}

🔒 Buenas Prácticas Implementadas

Aplicación

  • ✅ FastAPI con estructura limpia
  • ✅ Healthcheck integrado
  • ✅ Manejo de errores en DB
  • ✅ Retry automático de conexión

Docker

  • ✅ Multi-stage build
  • ✅ Usuario no-root
  • ✅ Imagen optimizada
  • ✅ Separación de servicios

DevOps

  • ✅ CI automatizado
  • ✅ Testing real (no mock)
  • ✅ Versionado de dependencias
  • ✅ Arquitectura reproducible

📈 Estado del Proyecto

v1.0.0 (Actual)

  • ✅ Backend funcional
  • ✅ Base de datos conectada
  • ✅ Docker multi-servicio
  • ✅ Pipeline CI activo

🚀 Roadmap

Próximas fases

  • 🚧 Reverse proxy (NGINX)
  • 🚧 Docker Registry (Docker Hub / GHCR)
  • 🚧 CI/CD completo (build + push)
  • 🚧 Despliegue en Kubernetes
  • 🚧 Observabilidad (Prometheus + Grafana)

🎯 Casos de Uso

Para DevOps Engineers

# Crear entorno reproducible con Docker
# Implementar CI con GitHub Actions
# Validar aplicaciones automáticamente

Para Backend Developers

# API lista para producción
# Base de datos integrada
# Entorno consistente

Para aprendizaje DevOps

# Docker desde cero
# CI/CD real
# Arquitectura moderna

👨‍💻 Autor

Liquenson Ruben Alexis DevOps Engineer | Docker | Kubernetes | AWS


📄 Licencia

MIT License


🔗 Proyectos Relacionados


Si te aporta valor, dale una estrella al repo


About

Plataforma backend containerizada con Docker, basada en FastAPI y PostgreSQL, con pipeline CI/CD automatizado mediante GitHub Actions para validación de builds y ejecución de tests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors