Skip to content

Repository files navigation

🏗️ Infra Artiles Studio

License Docker Terraform

Infraestructura completa del ecosistema Artiles Studio - Una solución integral de Infrastructure as Code (IaC) para el despliegue y gestión de aplicaciones empresariales.

📋 Descripción del Proyecto

Este repositorio contiene toda la infraestructura necesaria para desplegar y gestionar el ecosistema completo de Artiles Studio, que incluye:

  • Frontend: Aplicación React moderna con interfaz de usuario responsive
  • Backend: API REST robusta desarrollada en Spring Boot
  • Base de Datos: Sistema de persistencia optimizado
  • Infraestructura: Contenedores Docker orquestados y configuración de infraestructura automatizada

🏗️ Arquitectura del Ecosistema

Componentes Principales

graph TB
 subgraph "Infraestructura"
  A[Docker Compose] --> B[Frontend Container]
  A --> C[Backend Container]
  A --> D[Database Container]
  E[Terraform] --> F[Cloud Resources]
  G[Nginx] --> B
 end
 
 subgraph "Aplicaciones"
  B --> H[React App]
  C --> I[Spring Boot API]
  D --> J[PostgreSQL/MySQL]
 end
 
 subgraph "Repositorios del Ecosistema"
  K[Frontend-Artiles-Studio]
  L[Backend-Artiles-Studio]
  M[Database-Artiles-Studio]
 end
Loading

🔗 Repositorios Relacionados

Componente Repositorio Tecnología Estado
Frontend Frontend-Artiles-Studio React 18, TypeScript, Tailwind CSS ✅ Activo
Backend Backend-Artiles-Studio Spring Boot 3, Java 17, Maven ✅ Activo
Database Database-Artiles-Studio PostgreSQL, Scripts SQL, Migraciones ✅ Activo
Infraestructura Este repositorio Docker, Terraform, Nginx ✅ Activo

🚀 Guía de Inicio Rápido

Prerrequisitos

  • Docker >= 20.10
  • Docker Compose >= 2.0
  • Terraform >= 1.0 (opcional, para despliegue en cloud)
  • Git >= 2.30
  • Make (opcional, para comandos automatizados)

Instalación Completa

  1. Clonar el repositorio principal

    git clone https://github.com/AntRed1/Infra-Artiles-Studio.git
    cd Infra-Artiles-Studio
  2. Clonar todos los sub-repositorios

    # Opción 1: Script automatizado
    ./scripts/clone-all.sh
    
    # Opción 2: Manual
    git clone https://github.com/AntRed1/Frontend-Artiles-Studio.git frontend
    git clone https://github.com/AntRed1/Backend-Artiles-Studio.git backend
    git clone https://github.com/AntRed1/Database-Artiles-Studio.git database
  3. Configurar variables de entorno

    cp .env.example .env
    # Editar .env con tus configuraciones específicas
  4. Construir y ejecutar toda la infraestructura

    # Construir todas las imágenes
    docker-compose build
    
    # Iniciar todos los servicios
    docker-compose up -d
    
    # Verificar estado de los servicios
    docker-compose ps

Acceso a Servicios

Una vez desplegado, los servicios estarán disponibles en:

📁 Estructura del Proyecto

Infra-Artiles-Studio/
├── 📁 docker/
│   ├── Dockerfile.frontend
│   ├── Dockerfile.backend
│   ├── Dockerfile.database
│   └── nginx/
│       └── nginx.conf
├── 📁 terraform/
│   ├── main.tf
│   ├── variables.tf
│   ├── outputs.tf
│   └── modules/
├── 📁 kubernetes/
│   ├── deployments/
│   ├── services/
│   └── configmaps/
├── 📁 scripts/
│   ├── clone-all.sh
│   ├── deploy.sh
│   └── cleanup.sh
├── 📁 monitoring/
│   ├── prometheus/
│   └── grafana/
├── docker-compose.yml
├── docker-compose.prod.yml
├── .env.example
├── Makefile
└── README.md

🛠️ Comandos Disponibles

Docker Compose

# Desarrollo
docker-compose up -d                    # Iniciar todos los servicios
docker-compose down                     # Detener todos los servicios
docker-compose logs -f [servicio]       # Ver logs en tiempo real
docker-compose restart [servicio]       # Reiniciar servicio específico

# Producción
docker-compose -f docker-compose.prod.yml up -d

Scripts de Automatización

# Despliegue completo
./scripts/deploy.sh [ambiente]

# Limpieza de recursos
./scripts/cleanup.sh

# Backup de base de datos
./scripts/backup-db.sh

# Restaurar base de datos
./scripts/restore-db.sh [archivo-backup]

Makefile (si está disponible)

make install                # Instalación completa
make dev                    # Entorno de desarrollo
make prod                   # Entorno de producción
make test                   # Ejecutar tests
make clean                  # Limpiar recursos
make logs                   # Ver logs de todos los servicios

🌐 Despliegue en la Nube

AWS con Terraform

cd terraform/aws
terraform init
terraform plan
terraform apply

Azure con Terraform

cd terraform/azure
terraform init
terraform plan
terraform apply

Google Cloud Platform

cd terraform/gcp
terraform init
terraform plan
terraform apply

🔧 Configuración

Variables de Entorno Principales

# Base de datos
DB_HOST=database
DB_PORT=5432
DB_NAME=artiles_studio
DB_USER=artiles_user
DB_PASSWORD=secure_password

# Backend
SPRING_PROFILES_ACTIVE=docker
SERVER_PORT=8080
JWT_SECRET=your_jwt_secret

# Frontend
REACT_APP_API_URL=http://localhost:8080
REACT_APP_ENV=production

# Infraestructura
COMPOSE_PROJECT_NAME=artiles-studio
NGINX_PORT=80
MONITORING_ENABLED=true

Configuración por Ambiente

Desarrollo

  • Hot reload habilitado
  • Debug mode activo
  • Base de datos local
  • Logs detallados

Producción

  • Optimizaciones de performance
  • SSL/HTTPS habilitado
  • Base de datos externa
  • Monitoring activo
  • Backup automatizado

📊 Monitoreo y Logs

Prometheus & Grafana

# Acceder a Prometheus
http://localhost:9090

# Acceder a Grafana
http://localhost:3001
# Usuario: admin / Password: admin

Métricas Disponibles

  • Aplicación: Response time, throughput, errores
  • Infraestructura: CPU, memoria, disco, red
  • Base de Datos: Conexiones, queries, performance
  • Contenedores: Estado, recursos, logs

🧪 Testing

Tests de Integración

# Ejecutar tests completos del ecosistema
docker-compose -f docker-compose.test.yml up --abort-on-container-exit

# Tests específicos por servicio
docker-compose exec backend npm run test
docker-compose exec frontend npm run test

Health Checks

# Verificar estado de todos los servicios
curl http://localhost:8080/actuator/health
curl http://localhost:3000/health

🔐 Seguridad

Certificados SSL

# Generar certificados para desarrollo
./scripts/generate-certs.sh

# Configurar Let's Encrypt para producción
./scripts/setup-letsencrypt.sh

Secrets Management

  • Variables sensibles en archivos .env
  • Secrets de Kubernetes para producción
  • Vault integration disponible

📈 Escalabilidad

Horizontal Scaling

# docker-compose.prod.yml
services:
  backend:
 deploy:
   replicas: 3
  frontend:
 deploy:
   replicas: 2

Load Balancing

  • Nginx como proxy reverso
  • Health checks automáticos
  • Session stickiness configurable

🚨 Troubleshooting

Problemas Comunes

Puerto ya en uso

# Verificar puertos ocupados
netstat -tlnp | grep :3000
# Cambiar puerto en .env o detener proceso

Problemas de conectividad entre servicios

# Verificar red de Docker
docker network ls
docker network inspect infra-artiles-studio_default

Base de datos no conecta

# Verificar logs de la base de datos
docker-compose logs database
# Verificar credenciales en .env

Logs Útiles

# Logs de todos los servicios
docker-compose logs -f

# Logs específicos con timestamps
docker-compose logs -f --timestamps backend

# Filtrar logs por nivel
docker-compose logs | grep ERROR

🤝 Contribución

Workflow de Desarrollo

  1. Fork del repositorio principal
  2. Crear branch para feature: git checkout -b feature/nueva-funcionalidad
  3. Realizar cambios en infraestructura
  4. Probar localmente con docker-compose up
  5. Commit y push: git push origin feature/nueva-funcionalidad
  6. Crear Pull Request

Estándares de Código

  • Docker: Usar imágenes oficiales y ligeras
  • Terraform: Seguir buenas prácticas de IaC
  • Documentación: Actualizar README para nuevas funcionalidades
  • Testing: Incluir tests de infraestructura

📞 Soporte y Contacto

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

🗂️ Recursos Adicionales

Documentación de Componentes

Guías Adicionales


Desarrollado con ❤️ por el equipo de Artiles Studio

Última actualización: Agosto 2025

About

Infraestructura del Proyecto Artiles Studio

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages