Parte 10 — Calidad, rendimiento y operación#
Lo que separa un proyecto que funciona en tu máquina de uno que funciona en producción.
Clases 124 a 137 · 14 en total · 0 construidas · 9 tecnologías en juego.
🧭 De qué va esta parte#
Catorce clases sobre lo que separa un proyecto que funciona en tu máquina de un sistema que alguien puede operar a las tres de la mañana.
Primero las pruebas: no como obligación moral sino como decisión de coste — qué se prueba rápido y aislado, qué exige una base real, y qué solo se puede comprobar de extremo a extremo. Después la observabilidad, que son tres cosas distintas y no una: registros, métricas y trazas responden a preguntas diferentes.
Y al final lo que decide si el sistema se puede desplegar sin miedo: configuración fuera del artefacto, salud y preparación bien distinguidas, arranque en frío medido, y la regla que ahorra más trabajo inútil que ninguna otra — medir antes de optimizar.
🎒 Qué da por sabido#
- Las partes 1 a 5. Se prueba y se opera lo que ya existe.
- Que habrá más de un entorno y que la configuración no puede estar en el código.
🎯 Qué sabrás hacer al terminarla#
- Escribir una prueba que falle por la razón correcta, y reconocer cuando pasa por la equivocada.
- Repartir el esfuerzo entre los tres niveles de prueba con un criterio de coste.
- Sustituir una dependencia por un doble sin que la prueba deje de significar algo.
- Emitir registros estructurados, métricas y trazas, y decir qué pregunta contesta cada uno.
- Distinguir salud de preparación, y explicar qué rompe confundirlas.
- Empaquetar una vez y desplegar en varios entornos cambiando solo la configuración.
- Medir antes de optimizar, y presentar la medición por percentiles en lugar de por media.
🧵 Por qué en este orden#
Las seis primeras son las pruebas, de la más pequeña a la más cara: primera prueba, pirámide, dobles, integración con base real, extremo a extremo y contrato.
Las tres siguientes son la observabilidad: registros, métricas y trazas.
Las cinco últimas son la operación: salud, configuración, empaquetado, arranque en frío y medición.
📚 Las clases#
| # | Clase | Qué resuelve | Nivel | Estado |
|---|---|---|---|---|
| 124 | La primera prueba | Escribir una prueba que falle por la razón correcta. | 🟢 introductorio | 🚧 Esqueleto |
| 125 | La pirámide de pruebas | Repartir el esfuerzo entre niveles según lo que cada uno detecta. | 🟡 intermedio | 🚧 Esqueleto |
| 126 | Dobles de prueba | Elegir entre falso, sustituto y simulacro sabiendo qué acopla cada uno. | 🟡 intermedio | 🚧 Esqueleto |
| 127 | Integración con base real | Probar contra el motor de verdad sin depender de una máquina concreta. | 🟡 intermedio | 🚧 Esqueleto |
| 128 | Pruebas de extremo a extremo | Probar el recorrido completo sin que sea inestable. | 🔴 avanzado | 🚧 Esqueleto |
| 129 | Pruebas de contrato | Verificar que cliente y servidor siguen entendiéndose. | 🔴 avanzado | 🚧 Esqueleto |
| 130 | Registro estructurado | Emitir registros que una máquina pueda consultar. | 🟡 intermedio | 🚧 Esqueleto |
| 131 | Métricas | Medir lo que importa: tasa, error y latencia. | 🟡 intermedio | 🚧 Esqueleto |
| 132 | Trazas | Seguir una petición a través de varios procesos. | 🔴 avanzado | 🚧 Esqueleto |
| 133 | Salud y preparación | Distinguir estar vivo de estar listo para recibir tráfico. | 🟡 intermedio | 🚧 Esqueleto |
| 134 | Configuración por entorno | Un artefacto, varios entornos. | 🟡 intermedio | 🚧 Esqueleto |
| 135 | Empaquetado y despliegue | Producir un artefacto reproducible. | 🟡 intermedio | 🚧 Esqueleto |
| 136 | Arranque en frío | Medir lo que tarda en estar listo y por qué. | 🔴 avanzado | 🚧 Esqueleto |
| 137 | Medir antes de optimizar | Encontrar el cuello real en lugar del sospechoso habitual. | 🔴 avanzado | 🚧 Esqueleto |
🎬 Las tecnologías que aparecen#
Entre paréntesis, en cuántas clases de esta parte interviene cada una. Estar aquí no es una recomendación: es que el problema de esa clase existe de verdad para esa tecnología.
| Ecosistema | Tecnologías |
|---|---|
| JavaScript/TypeScript | React (1), SolidJS (1), Svelte (1), Vue (1) |
| JVM | Spring Boot (13), Quarkus (1) |
| .NET | ASP.NET Core (13) |
| Node.js | Express (13) |
| Python | FastAPI (13) |
📖 Las palabras que esta parte define#
Pirámide de pruebas · Doble de prueba · Prueba de contrato · Registro estructurado · Métrica · Traza · Salud y preparación · Empaquetado · Arranque en frío · Medir antes de optimizar
Todas, con su definición, en el glosario.
✅ Cómo se ejecuta una clase de esta parte#
node scripts/run-class.mjs 124El verificador arranca cada implementación, la somete a su contrato.json y declara cuáles omitió por no encontrar su cadena de herramientas. Si te faltan cadenas, node scripts/doctor.mjs dice cuáles y cómo se instalan.
➡️ Y después#
La parte 11 es la última y la más difícil: sistemas que ya existen, migraciones que no pueden parar y decisiones que hay que defender.