🛠️ Catálogo de Herramientas y Stack Tecnológico DevSecOps

September 18, 2026 · View on GitHub

Este documento describe formalmente todas las tecnologías, frameworks, utilidades y servicios integrados en el ciclo de vida del proyecto Pokédex (Desarrollo, CI/CD, Seguridad de la Cadena de Suministro, Infraestructura y Observabilidad).


📑 Índice

  1. Diagrama de Flujo del Ecosistema de Herramientas
  2. Matriz Exhaustiva de Herramientas del Proyecto
  3. Hoja de Ruta Tecnológica y Evoluciones Recomendadas

1. Diagrama de Flujo del Ecosistema de Herramientas

flowchart LR
    subgraph PLAN["1. Plan & Track"]
        LINEAR["📋 Linear\n(Tickets PEX-X)"]
        SLACK["💬 Slack\n(ChatOps & Alertas)"]
        LINEAR -. "Alertas automáticas" .-> SLACK
    end

    subgraph CODE["2. Code & Test"]
        TS["🟦 TypeScript 7.x\nNode.js 22 LTS"]
        ESBUILD["⚡ esbuild"]
        TASK["⚙️ Taskfile\n(go-task)"]
        TESTS["🧪 Node Test Runner\n(63 Tests + 7 Fuzz Tests)"]
    end

    subgraph SECURE_BUILD["3. Build & Supply Chain"]
        DOCKER["🐳 Docker 27+"]
        GITLEAKS["🔐 Gitleaks"]
        SEMGREP["🔍 Semgrep SAST"]
        DEP_REV["📦 Dependency Review"]
        TRIVY["🛡️ Trivy SCA"]
        SYFT["📋 Syft (SBOM)"]
        COSIGN["✍️ Cosign Keyless\n(Sigstore OIDC)"]
    end

    subgraph DEPLOY["4. GitOps & Admission"]
        GHCR["📦 GitHub Packages\n(ghcr.io)"]
        ARGO["☸️ ArgoCD"]
        HELM["⎈ Helm 3.17"]
        KYVERNO["🛡️ Kyverno Enforcer"]
        ESO["🔐 External Secrets Operator\n& Sealed Secrets"]
    end

    subgraph RUNTIME["5. Runtime & Observe"]
        K8S["☸️ K8s 1.30+ / Proxmox"]
        PGB["🛡️ PgBouncer 1.22"]
        PG["🗄️ PostgreSQL 16"]
        REDIS["⚡ Redis 7"]
        PROM["📊 Prometheus"]
        GRAFANA["📉 Grafana"]
        LOKI["📋 Grafana Loki"]
    end

    PLAN --> CODE --> SECURE_BUILD --> DEPLOY --> RUNTIME

    classDef plan fill:#3b82f6,stroke:#1d4ed8,color:#fff;
    classDef code fill:#6366f1,stroke:#4338ca,color:#fff;
    classDef sec fill:#ea580c,stroke:#c2410c,color:#fff;
    classDef dep fill:#10b981,stroke:#047857,color:#fff;
    classDef run fill:#0891b2,stroke:#0e7490,color:#fff;

    class PLAN plan;
    class CODE code;
    class SECURE_BUILD sec;
    class DEPLOY dep;
    class RUNTIME run;

2. Matriz Exhaustiva de Herramientas del Proyecto

2.1. Core, Backend & Runtime

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Node.js22 LTSRuntime del servidor de aplicaciones backendDockerfile, package.json
Express4.22+Framework HTTP para rutas REST, middlewares y validacionesserver.ts
TypeScript7.xLenguaje de tipado estático estricto y modelos de dominiotsconfig.json, src/types.ts
esbuild0.28+Empaquetador ultrarrápido a formato CommonJS para producciónpackage.json

2.2. Frontend Web

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
TypeScript + Vite / HTML5 / CSS3Vite 6 / TS 7Interfaz reactiva SPA con TypeScript, sanitización DOMPurify y filtrosapps/frontend/
Nginx1.27 AlpineServidor web proxy inverso con gzip, cabeceras CSP y digest pinnedapps/frontend/nginx.conf, apps/frontend/Dockerfile

2.3. Persistencia, Caché & Connection Pooling

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
PostgreSQL16Base de datos ACID relacional con almacenamiento JSONB indexadosrc/services/db.ts, docker-compose.yml
PgBouncer1.22.0Connection pooler transaccional mediador obligatorio en producción (digest pinned)infra/helm/pokedex/templates/pgbouncer-deployment.yaml
Redis7Caché en memoria sub-3ms, revocación de sesiones y rate limit Luasrc/services/db.ts, src/services/auth.ts

2.4. Inteligencia Artificial Generativa

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Google AI Studio (@google/genai)SDK oficialIntegración nativa con Gemini 2.5 Flash para diagramas y mockupssrc/services/ai.ts

2.5. Calidad de Código, Testing & Fuzzing

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Node Test Runner (node:test)Nativo Node 22Suite de 63 pruebas unitarias, de integración, seguridad y pentestingtests/
Fuzz Testing SuiteScript custom7 pruebas dinámicas de resistencia con payloads malformados (test:fuzz)tests/fuzz/
k6 (Grafana k6)LatestPruebas de estrés y benchmarking declarativo de endpointstests/performance/k6_stress_test.js
TypeScript Compiler (tsc)7.xQuality gate de verificación estricta de tipos (npm run lint)package.json

2.6. Seguridad & Supply Chain

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Cosign (Sigstore)2.x+Firmado criptográfico Keyless de imágenes OCI mediante OIDC de GitHub Actions.github/workflows/ci.yml
Kyverno1.12+Control de admisión en Kubernetes para exigir imágenes firmadas válidasinfra/k8s/kyverno-cosign-policy.yaml
Syft (Anchore)LatestGeneración automatizada de SBOM en estándar CycloneDX.github/workflows/ci.yml
Gitleaks8.xDetección preventiva de credenciales y tokens en commits y PRs.gitleaks.toml, .github/workflows/security-gitleaks.yml
SemgrepLatestAnálisis estático SAST bloqueante para detección de OWASP Top 10.github/workflows/ci.yml
Dependency ReviewGitHub ActionGate bloqueante en PRs para vulnerabilidades de dependencias (HIGH+).github/workflows/ci.yml
Trivy (Aqua Security)LatestEscáner de vulnerabilidades (CVEs) en filesystem y capas de contenedores.github/workflows/security-trivy.yml
External Secrets Operatorv1beta1Sincronización automática de secretos desde Vault / AWS / GCP Secretsinfra/helm/pokedex/templates/externalsecret.yaml
Bitnami Sealed SecretsLatestCifrado asimétrico de secretos en Git para clústeres on-premisescripts/seal_secret.py, scripts/seal_secret.sh

2.7. Contenedores, Orquestación & GitOps

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Docker & Buildx27+Compilación multi-stage en Alpine con usuario no-root UID 1001Dockerfile
Docker Composev2Orquestación local multicontenedor (Web, API, Postgres, Redis)docker-compose.yml
Helm3.17Empaquetado y parametrización de despliegue en Kubernetesinfra/helm/pokedex/
Argo CDLatestMotor GitOps para sincronización declarativa continua en clústergitops/apps/

2.8. Infraestructura como Código (IaC) & Virtualización

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
OpenTofu1.8+Aprovisionamiento declarativo de infraestructura híbrida (Proxmox + AWS)infra/opentofu/
CheckovLatestAnálisis estático de seguridad para IaC, Helm y OpenTofu.github/workflows/infra.yml, .github/workflows/ci.yml
Proxmox VE8.xVirtualización on-premise bi-modal (LXC Pre-Prod / VM Prod) gestionada por OpenTofuinfra/opentofu/environments/proxmox/
Ansible2.16+Automatización de configuración de OS/nodos, dependencias de runtime y hardening de firewall UFWinfra/ansible/

2.9. Observabilidad & Monitoreo

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Grafana CloudSaaSPlataforma central de observabilidad SaaS (Métricas, Logs, Trazas eBPF)infra/monitoring/grafana-cloud-values.yaml
Grafana Alloyv1.xAgente unificado DaemonSet para recolección de métricas, OTLP y logsinfra/monitoring/deploy-grafana-cloud.ps1
Grafana Beylav1.xAuto-instrumentación de trazas y métricas L7 mediante eBPFinfra/monitoring/grafana-cloud-values.yaml
Tableros Grafanav10/11Dashboards canónicos para Pokédex API y salud del clústerinfra/monitoring/dashboards/
Reglas de AlertasPrometheus/AlloyDefinición unificada de alertas (infraestructura, base de datos y API)infra/monitoring/alerts.yml
docker_monitoreoLocalStack legado opcional para emulación local con Docker ComposeRepositorio hermano (opcional)

Matriz de Responsabilidad de Señales de Telemetría (Prevención de Solapamiento)

Para evitar duplicidad y clarificar el origen de cada señal hacia Grafana Cloud:

Señal / DominioComponente EmisorMecanismoDestino en Grafana Cloud
Métricas de Aplicación (RED & Negocio)pokemon-apiEndpoint HTTP /metrics (prom-client nativo)Prometheus / Metrics
Métricas de Host & Sistema Operativonode-exporterDaemonSet recolector de CPU, RAM, disco y red físicaPrometheus / Metrics
Métricas de Contenedores y Podskube-state-metrics / cAdvisorMétricas de estado de objetos K8s y límites de PodsPrometheus / Metrics
Trazas Distribuidas L7 (eBPF)grafana-beylaAuto-instrumentación en espacio de kernel Linux (HTTP/gRPC)Tempo / Traces
Logs de Aplicación y Contenedoresgrafana-alloy (DaemonSet)Lector directo de logs del sistema de archivos (/var/log/pods)Loki / Logs
Agregación y Forwarding OTLPgrafana-alloyReceptor OTLP en :4317 hacia endpoint SaaSGrafana Cloud Fleet Management

2.10. Automatización & Experiencia de Desarrollo (DX)

HerramientaVersiónRol ArquitectónicoArchivo / Configuración
Taskfile (go-task)3.xAutomatizador de comandos multiplataforma (task dev, task audit)Taskfile.yml
Linear—Gestión ágil de proyectos con convención estricta de ramas y linkbacks.github/pull_request_template.md
Renovate BotLatestGestión unificada de dependencias multi-gestor, cooldown de 7 días, ventanas semanales y auto-merge restringido a npm patchrenovate.json
Grafana CloudSaaSTelemetría Kubernetes cloud-native vía Grafana Alloy, Beyla eBPF, Node Exporter y Kube-State-Metricsinfra/monitoring/grafana-cloud-values.yaml
Grafana MCP ServerLatestIntegración Model Context Protocol (mcp-grafana) para interacción con dashboards, métricas y alertas desde el IDE.vscode/mcp.json

3. Hoja de Ruta Tecnológica y Evoluciones Recomendadas

Tomando como base las características identificadas en el repositorio, se establecen las herramientas, mejoras a nivel de lenguaje y evoluciones de arquitectura recomendadas para subsanar riesgos remanentes y elevar la madurez operacional de la plataforma Pokédex:

3.1. Nuevas Herramientas y Librerías

Gestión de Base de Datos y Ciclo de Vida del Esquema

  • Drizzle ORM / Prisma: La inicialización actual con init.sql y seed.ts carece de versionado atómico. La adopción de un ORM o Query Builder moderno provee tipado estricto extremo a extremo (type-safe SQL), parametrización garantizada contra SQLi y migraciones declarativas reproducibles ejecutables desde el seed-job.yaml de Kubernetes.
  • Atlas / Flyway: Gestión declarativa del control de versiones del esquema relacional de PostgreSQL integrada directamente en la tubería de CI/CD previo al despliegue productivo.

Resiliencia y Manejo de Integraciones Externas

  • Cockatiel / Opossum: Librerías especializadas para la gestión avanzada de políticas de reintento con backoff exponencial, fallbacks y Circuit Breaker en services/ai.ts, previniendo el agotamiento de sockets de Node.js ante degradaciones de red del proveedor de IA.
  • BullMQ: Desacoplamiento de tareas asíncronas pesadas (inferencia multimodal, generación de mockups y reportes masivos) mediante colas de trabajo respaldadas por la instancia existente de Redis (redis-deployment.yaml).

Observabilidad y Telemetría

  • OpenTelemetry SDK para Node.js: Complementa los scrapers de Prometheus (infra/monitoring/alerts.yml) inyectando instrumentación distribuida de traces con propagación de traceId desde el Ingress de Nginx hasta las consultas de PostgreSQL y Redis.
  • Pino: Reemplazo de logs estándar de consola por registros JSON estructurados con niveles jerárquicos y correlación de contexto por petición HTTP.

Herramientas de Monorepo y Build

  • Turborepo / Nx: Orquestación eficiente de los espacios de trabajo apps/backend y apps/frontend, habilitando compilación en paralelo, verificación de tipos y caché distribuida de tareas en CI.
  • Vite: Empaquetador ultrarrápido para modernizar la capa de presentación web, habilitando minificación, módulos ES nativos, tree-shaking y sustitución de scripts directos en el DOM.

3.2. Mejoras en el Lenguaje y Tipado (TypeScript & JavaScript)

Frontend Type-Safe y Contratos Compartidos

  • Migración a TypeScript Estricto en Frontend: Conversión de pokedex.js, backoffice.js y theme.js a TypeScript bajo "strict": true, eliminando errores de acceso a propiedades no definidas (undefined / null) en tiempo de ejecución.
  • Paquete Compartido de Contratos (@pokedex/contracts): Extracción de interfaces y tipos de datos desde apps/backend/src/types.ts hacia un módulo interno reutilizable por frontend y backend, garantizando sincronización exacta de modelos de datos.

Validación Universal de Esquemas en Runtime

  • Zod / Valibot: Reemplazo de las validaciones ad-hoc en apps/backend/src/validation/pokemon.ts por esquemas Zod con inferencia automática (type Pokemon = z.infer<typeof PokemonSchema>), filtrado estricto de campos no declarados (strip unknown) y reutilización bidireccional en formularios web y API.

Manejo de Errores con Tipos Algebraicos

  • neverthrow (Patrón Result / Either): Sustitución de try/catch no estructurados en services/db.ts y services/auth.ts por tipos Result<T, AppError>, forzando en tiempo de compilación el manejo exhaustivo de fallos (entidad no encontrada, credencial inválida, timeout).

3.3. Evoluciones en la Arquitectura del Sistema

Arquitectura Hexagonal / Clean Architecture en Backend

  • Desacoplamiento Estricto en Capas:
    • Capa de Infraestructura: Adaptadores para PostgreSQL, Redis, HTTP Express y cliente Gemini AI.
    • Capa de Dominio: Entidades puras de negocio y reglas de validación de Pokémon, independientes de librerías externas.
    • Capa de Aplicación / Casos de Uso: Casos de uso atómicos (registro de criaturas, autenticación, cálculo de estadísticas y generación de arte).
  • Beneficio: Testabilidad unitaria completa mediante mocks en memoria sin dependencia forzada de bases de datos en tests locales.

Modernización de la Capa Frontend (UI Reactiva y Componentizada)

  • Adopción de Componentes Reactivos (Lit / Preact / React): Sustitución de mutaciones imperativas del DOM (innerHTML) por un árbol declarativo de componentes. Erradica estructuralmente el riesgo de inyección XSS al delegar la sanitización y escape en el motor de renderizado.

Seguridad y Caché Semántica en la Capa de IA

  • Guardrails y Delimitación Estricta: Aislamiento total del contexto del sistema frente a datos ingresados por usuarios en services/ai.ts mediante delimitadores XML (<user_prompt>) y filtrado semántico previo.
  • Caché Semántica con Redis: Almacenamiento con TTL de respuestas generativas recurrentes para reducir latencia a menos de 5 ms y abatir costos operativos de API.

Endurecimiento de la Gestión de Estado de Infraestructura (IaC)

  • Backend Remoto Cifrado para OpenTofu: Configuración de backend centralizado (S3 / MinIO con cifrado en reposo SSE y bloqueo de concurrencia) en infra/opentofu/environments/, evitando la retención de secretos de infraestructura en archivos .tfstate locales.
  • Inyección Efímera de Secretos: Retiro de scripts Bash imperativos en favor de Ansible con infra/ansible/deploy_excludes.txt y External Secrets Operator / Sealed Secrets en Kubernetes para consumir credenciales únicamente vía variables de entorno efímeras y vaults centralizados.