La infraestructura de software del Departamento Audiovisual está diseñada para soportar todo el ciclo de vida de los contenidos audiovisuales, desde la ingesta y catalogación hasta el archivado a largo plazo, con el Sistema ARCO como elemento central integrador. La arquitectura se basa en microservicios desplegados sobre contenedores Docker, con un enfoque en la escalabilidad, alta disponibilidad y facilidad de mantenimiento.
- Tipo: Aplicación distribuida basada en microservicios
- Versión actual: 3.2.4 (release: mayo 2025)
- Lenguajes principales: Python 3.10 (backend), TypeScript (frontend)
- Frameworks principales: FastAPI (backend), Vue.js 3 (frontend)
- Orquestación: Docker Swarm
- Infraestructura como código: Docker Compose, Ansible
-
ARCO API (arco-api)
- Descripción: API REST principal que expone toda la funcionalidad del sistema
- Tecnología: FastAPI + Pydantic
- Autenticación: OAuth 2.0 vía Keycloak
- Endpoints principales: /assets, /catalog, /workflow, /storage, /users
- Documentación: OpenAPI (accesible en /docs)
-
ARCO Frontend (arco-frontend)
- Descripción: Interfaz web principal para gestión del sistema
- Tecnología: Vue.js 3 + Vuetify 3
- Características: Responsive, PWA, soporte offline parcial
- Módulos: Ingesta, Catalogación, Búsqueda, Workflow, Administración
-
ARCO Media Processing (arco-media)
- Descripción: Servicio para procesamiento de medios (transcodificación, análisis, proxies)
- Tecnología: Python + FFmpeg + ML libraries
- Características: Procesamiento paralelo, cola de trabajos distribuida
- Integración: Videoflow, OpenCV, TensorFlow
-
ARCO Metadata (arco-metadata)
- Descripción: Servicio de gestión de metadatos técnicos y descriptivos
- Tecnología: Python + Elasticsearch
- Estándares soportados: Dublin Core, PBCore, IPTC, EBUCore
- Features: Extracción automática, validación, normalización
-
ARCO Storage (arco-storage)
- Descripción: Gestor de almacenamiento jerárquico
- Tecnología: Python + API propietaria
- Características: Gestión de ciclo de vida, migración automática
- Integración: QNAP, Quantum StorNext, LTO
-
ARCO Workflow (arco-workflow)
- Descripción: Motor de flujos de trabajo personalizables
- Tecnología: Python + Temporal.io
- Características: Flujos configurables, monitorización, alertas
- Integraciones: Email, Teams, Webhook
- DB Principal: PostgreSQL 16.0 (HA con replicación)
- Búsqueda: Elasticsearch 8.10.4 (cluster de 3 nodos)
- Caché: Redis 7.2.3 (cluster de 3 nodos)
- Mensajería: RabbitMQ 3.12.6
- Almacenamiento de Objetos: MinIO (compatible S3)
- Series Temporales: InfluxDB 2.7 (telemetría)
- IAM: Keycloak 22.0.4
- Secrets: HashiCorp Vault 1.15
- WAF: ModSecurity + reglas OWASP
- Certificados: Let's Encrypt con renovación automática
- Análisis de Vulnerabilidades: Trivy, OWASP ZAP
- Plataforma de Contenedores: Docker Engine 24.0.5
- Orquestación: Docker Swarm (6 nodos)
- Registry: Harbor 2.9.0
- Monitorización de Contenedores: Portainer 2.18.3
- API Gateway: Traefik 2.10.4
- Service Mesh: Consul 1.16.2
- DNS Interno: CoreDNS 1.10.1
- Monitorización: Prometheus 2.45.0 + Grafana 10.1.2
- Logging: ELK Stack 8.10.4 (Elasticsearch, Logstash, Kibana)
- Tracing: Jaeger 1.47.0
- Alertas: Alertmanager con integración PagerDuty y Teams
- Backup de Datos: Restic 0.15.2
- Backup de Configuración: GitOps (repositorio Git + CI/CD)
- Backup de Contenedores: Velero 1.12.0
- Programación: Cron + Systemd Timers
-
Edición No Lineal:
- Adobe Premiere Pro 2025 (CC)
- DaVinci Resolve Studio 19.0
- Avid Media Composer Ultimate 2025.5
-
Composición y VFX:
- Adobe After Effects 2025 (CC)
- Foundry Nuke Studio 15.0
- Autodesk Flame 2025
- SideFX Houdini 20.5
-
Audio:
- Adobe Audition 2025 (CC)
- Avid Pro Tools Ultimate 2025
- iZotope RX 11
-
Corrección de Color:
- DaVinci Resolve Studio 19.0
- FilmLight Baselight Editions
-
Análisis Técnico:
- Telestream Aurora 2024
- Interra Baton 9.2
- Venera Pulsar 5.0
-
Monitorización:
- Telestream GLIM 3.0
- Leader LV5600 Waveform Software
- RTM Loudness Control 4.1
-
Transcodificación:
- Elemental MediaConvert (custom instances)
- FFmpeg 6.0 (en cluster dedicado)
- Imagine Communications Selenio Flex
-
Distribución:
- Aspera FASP 4.5
- Signiant Media Shuttle
- MASV 4.0
-
OpenProject:
- Propósito: Gestión de proyectos y recursos
- Tipo de integración: Bidireccional vía API REST
- Datos compartidos: Proyectos, tareas, asignaciones, tiempos
- Frecuencia de sincronización: Tiempo real (webhooks)
-
Microsoft 365:
- Propósito: Comunicación y documentación corporativa
- Tipo de integración: Microsoft Graph API
- Integraciones específicas:
- Teams para notificaciones
- SharePoint para documentación asociada
- Exchange para avisos y alertas
- OneDrive para transferencia de archivos pequeños
-
Sistema de Gestión Contable:
- Propósito: Facturación y control de costes
- Tipo de integración: API REST (readonly)
- Datos compartidos: Costos por proyecto, facturación
-
Proveedor de Transcripción Automática:
- Servicio: AssemblyAI
- Propósito: Generación automática de subtítulos y transcripciones
- Tipo de integración: API REST
- Características: Multiidioma, detección de hablantes
-
Servicios Cloud Media:
- Servicios: AWS Media Services
- Propósito: Procesamiento intensivo y distribución
- Componentes integrados:
- MediaConvert para transcodificación de alta demanda
- MediaPackage para empaquetado
- CloudFront para distribución
- S3 Glacier para archivado profundo
-
Análisis de Contenido con IA:
- Servicios: Azure Video Indexer, Google Video Intelligence
- Propósito: Análisis de contenido, detección de objetos, reconocimiento facial
- Tipo de integración: APIs REST
- Salud general: Buena (uptime >99.95% en últimos 6 meses)
- Rendimiento: Óptimo en condiciones normales, degradación menor en picos
- Seguridad: Sin incidentes en últimos 12 meses, todas las actualizaciones aplicadas
- Deuda técnica: Moderada, principalmente en servicios legacy
-
Escalabilidad del Servicio de Transcodificación:
- Durante picos de ingesta masiva (>50TB/día) se producen cuellos de botella.
- La cola de trabajos de transcodificación puede retrasarse hasta 24h.
- Afecta principalmente a la generación de proxies de alta resolución.
-
Integración con Almacenamiento Jerárquico:
- La API de integración con Quantum StorNext muestra fallos intermitentes.
- Ocasionalmente se requiere intervención manual para restauraciones desde cinta.
- La implementación actual no aprovecha todas las capacidades de StorNext 7.
-
Rendimiento Frontend en Búsquedas Complejas:
- Consultas con múltiples filtros y facetas superan timeout de 5s.
- Afecta principalmente a usuarios catalogadores con búsquedas especializadas.
- El cache de resultados no se está utilizando eficientemente.
-
Sincronización Metadata:
- Ocasionales inconsistencias entre PostgreSQL y Elasticsearch.
- El reindexado completo requiere 4h y causa degradación de rendimiento.
-
Monitorización Incompleta:
- Faltan métricas detalladas para algunos servicios específicos.
- Alertas generan falsos positivos (~15% de los tickets).
-
Manejo de Permisos Granulares:
- El modelo actual de RBAC no permite permisos a nivel de proyecto.
- La integración Keycloak-OpenProject requiere mejoras.
-
Documentación Técnica:
- Documentación desactualizada para algunos componentes.
- Falta documentación de procedimientos operativos.
-
Herramientas de Desarrollador:
- Entorno de desarrollo local complejo de configurar.
- CI/CD requiere optimización para builds más rápidos.
-
Optimización del Servicio de Transcodificación:
- Implementación de auto-scaling basado en tamaño de cola
- Migración a arquitectura basada en GPU para codecs complejos
- Optimización de parámetros FFmpeg para mejor eficiencia
- Implementación: 3 semanas, impacto en tiempo de interrupción: <4h
-
Mejora de Integración StorNext:
- Actualización a la API más reciente de StorNext
- Implementación de mecanismo de retry más robusto
- Desarrollo de dashboard específico de monitorización
- Implementación: 4 semanas, impacto en tiempo de interrupción: 8h
-
Optimización de Búsquedas:
- Revisión y optimización de índices Elasticsearch
- Implementación de cache Redis para búsquedas comunes
- Mejora de UI para búsquedas complejas
- Implementación: 2 semanas, impacto en tiempo de interrupción: 0h
-
Reingeniería del Sistema de Metadatos:
- Migración a arquitectura Event Sourcing para metadatos
- Implementación de Change Data Capture (CDC) para sincronización
- Desarrollo de API GraphQL para consultas complejas
- Implementación: 12 semanas, impacto en tiempo de interrupción: 8h
-
Mejora de Sistema de Monitorización:
- Implementación de OpenTelemetry en todos los servicios
- Desarrollo de dashboards especializados por departamento
- Integración de análisis predictivo para alertas
- Implementación: 8 semanas, impacto en tiempo de interrupción: 0h
-
Actualización del Modelo de Permisos:
- Implementación de OPA (Open Policy Agent)
- Desarrollo de UI para gestión granular de permisos
- Integración mejorada con Keycloak
- Implementación: 6 semanas, impacto en tiempo de interrupción: 4h
-
Migración a Arquitectura Cloud-Hybrid:
- Desarrollo de estrategia de bursting para cargas variables
- Implementación de Kubernetes para orquestación
- Desarrollo de estrategia multi-cloud para resiliencia
- Implementación: 24 semanas, impacto en tiempo de interrupción: 16h (escalonado)
-
Implementación de ML/IA Avanzada:
- Desarrollo de pipeline de reconocimiento de contenido on-premise
- Implementación de indexación semántica de metadatos
- Integración de recomendación de metadatos basada en contenido
- Implementación: 20 semanas, impacto en tiempo de interrupción: 0h
-
Revisión Completa de Frontend:
- Migración a arquitectura basada en Micro-Frontends
- Implementación de interfaces especializadas por rol
- Desarrollo de aplicaciones móviles nativas
- Implementación: 28 semanas, impacto en tiempo de interrupción: 0h (despliegue progresivo)
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Frontend y Clientes ARCO │
│ │
│ ┌──────────────┐ ┌────────────────┐ ┌────────────┐ ┌───────────────┐ │
│ │ │ │ │ │ │ │ │ │
│ │ Web Frontend │ │ Desktop Client │ │ Panel QC │ │ Mobile Apps │ │
│ │ │ │ │ │ │ │ │ │
│ └──────┬───────┘ └────────┬───────┘ └─────┬──────┘ └───────┬───────┘ │
│ │ │ │ │ │
└─────────┼───────────────────┼─────────────────┼─────────────────┼──────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ API Gateway (Traefik) │
│ │
└───────────────────────────────────┬─────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Servicios Core ARCO │
│ │
│ ┌──────────────┐ ┌────────────────┐ ┌────────────┐ ┌───────────────┐ │
│ │ │ │ │ │ │ │ │ │
│ │ ARCO API │ │ Media Service │ │ Metadata │ │ Workflow │ │
│ │ │ │ │ │ │ │ │ │
│ └──────┬───────┘ └────────┬───────┘ └─────┬──────┘ └───────┬───────┘ │
│ │ │ │ │ │
└─────────┼───────────────────┼─────────────────┼─────────────────┼──────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ Bases de Datos y Almacenamiento │
│ │
│ ┌──────────────┐ ┌────────────────┐ ┌────────────┐ ┌───────────────┐ │
│ │ │ │ │ │ │ │ │ │
│ │ PostgreSQL │ │ Elasticsearch │ │ Redis │ │ MinIO │ │
│ │ │ │ │ │ │ │ │ │
│ └──────────────┘ └────────────────┘ └────────────┘ └───────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ Sistemas de Almacenamiento │
│ │
│ ┌──────────────┐ ┌────────────────┐ ┌────────────────────────────────┐ │
│ │ │ │ │ │ │ │
│ │ QNAP Primary │ │ Quantum │ │ LTO Library │ │
│ │ │ │ │ │ │ │
│ └──────────────┘ └────────────────┘ └────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
-
Ingesta de Material:
- Inicio: Llegada de material físico o transferencia digital
- Servicios involucrados: arco-ingest, arco-metadata, arco-storage, arco-media
- Procesamiento:
- Análisis técnico automático
- Extracción de metadatos técnicos
- Generación de proxies (baja y alta resolución)
- Detección automática de idioma y transcripción
- Indexación en sistema de búsqueda
- Tiempo medio de procesamiento: 1.5x duración del material
-
Gestión de Metadatos:
- Inicio: Material ingestado o actualización manual
- Servicios involucrados: arco-metadata, arco-api, arco-frontend
- Procesamiento:
- Validación según esquema predefinido
- Enriquecimiento con fuentes externas
- Generación de relaciones automáticas
- Indexación en Elasticsearch
- Propagación de cambios a sistemas integrados
- Tiempo medio de procesamiento: <2s para actualizaciones
-
Búsqueda y Recuperación:
- Inicio: Consulta desde cualquier cliente
- Servicios involucrados: arco-api, arco-storage, arco-media
- Procesamiento:
- Ejecución de búsqueda en Elasticsearch
- Verificación de permisos de acceso
- Comprobación de disponibilidad de medios
- Solicitud de restauración si es necesario
- Generación de URLs presigned para descarga
- Tiempo medio de procesamiento: <0.5s para búsquedas, variable para recuperación
- Mejoras a Corto Plazo: 35.000€ - 45.000€
- Mejoras a Medio Plazo: 80.000€ - 100.000€
- Mejoras a Largo Plazo: 180.000€ - 220.000€
- Arquitecto de Software: [Nombre del Arquitecto]
- DevOps Lead: [Nombre del Responsable DevOps]
- Desarrollador Principal: [Nombre del Desarrollador Principal]
- QA Lead: [Nombre del Responsable QA]
Última actualización: 15 de mayo de 2025
Autor: Departamento Audiovisual - Madrid Destino