CAPÍTULO 1 - OBJETIVOS
1.1 | Motivación
1.2 | Objetivos Generales
1.3 | Desarrollos Propuestos
1.4 | Aporte de la Tesina
CAPÍTULO 2 - INTRODUCCIÓN
2.1 | ¿Qué significa DevOps?
2.2 | Dificultades de pruebas en entornos locales
2.3 | El costo de probar aplicaciones en la nube
2.4 | Conclusiones
CAPÍTULO 3 - TECNOLOGÍAS UTILIZADAS
3.1 | Docker
3.1.1 | Definición
3.1.2 | Docker y el despliegue de aplicaciones
3.1.3 | Docker Swarm
3.1.4 | Kubernetes
3.1.5 | Docker Compose
3.1.5.1 | Estructura de un archivo docker-compose.yml
3.1.6 | Uso de servicios en Docker
3.1.7 | Seguridad en contenedores
3.2 | Proxy Reverso
3.2.1 | ¿Qué es un Proxy Reverso?
3.2.2 | Traefik, el proxy de Crane
3.2.3 | Desventajas del uso de Traefik
3.2.4 | Comparación con NGINX
3.2.5 | Configuración de Traefik
3.3 | Python
3.3.1 | Definición y características del lenguaje
3.3.2 | Python contra otros lenguajes
3.3.3 | Frameworks para el desarrollo web
3.3.4 | Fastapi, el framework de Crane
3.3.5 | Uvicorn
3.3.6 | Python on Whales para interactuar con Docker
3.3.7 | Pydantic para la definición y control de esquemas
3.3.8 | PyYaml para la creación de archivos YAML
3.4 | Autenticación mediante JWT
3.4.1 | ¿Qué es JWT?
3.4.2 | Autenticación sin estado
3.4.3 | Ventajas y desventajas de usar JWT
3.5 | Prometheus
3.5.1 | ¿Qué es Prometheus?
3.5.2 | Arquitectura y componentes principales de Prometheus
3.5.3 | Configuración y recolección de métricas
3.6 | Alert Manager
3.6.1 | Definición y control de alertas
3.6.2 | Configuración mediante YAML
3.6.2 | Comunicación mediante Webhook
3.6.2 | Configuración de Alertmanager usando Webhooks
3.7 | Open Policy Agent
3.7.1 | Definición y evaluación de políticas
3.7.2 | RBAC mediante políticas
3.8 | SQLite
3.8.1 | Qué es SQLite y sus características principales
3.8.2 | Bases de datos ligeras basadas en archivos
3.8.2 | Integración mediante SQLAlchemy
CAPÍTULO 5 - Crane y su implementación
5.1 | Arquitectura de Crane
5.2 | Preparación del entorno de trabajo
5.2.1 | Docker Daemon
5.2.2 | Inicialización del Servicio de Reglas
5.2.3 | Configuración de Políticas RBAC
5.2.4 | Inicialización del Servicio de Monitoreo
5.2.5 | Configuración de Reglas y Targets en Prometheus
5.2.6 | Instanciación Dinámica mediante Docker Compose
5.2.7 | Configuración de Rutas
5.2.7.1 | Estructura y versionado de rutas
5.3 | Proceso de autenticación en Crane
5.3.1 | Registro de Usuarios
5.3.2 | Proceso de Login
5.3.3 | Análisis del Token y Verificación de Permisos
5.4 | Herramientas de Desarrollo y Pruebas
5.4.1 | Creación del Contenedor Whoami y Test de Carga
5.4.2 | Documentación y su generación automática en FastAPI
CAPÍTULO 6 - Análisis de seguridad automatizado
6.1 | Herramientas para el análisis de seguridad
6.2 | Instalación y uso de Trivy
CAPÍTULO 7 - Contribuciones
CAPÍTULO 8 - Conclusiones y trabajos futuros
Referencias