Saltar al contenido
Servicios / Plataforma e infraestructura

El entorno de ejecución de debajo, reconstruible desde el código fuente.

Aprovisionamiento, contenedores, pipelines y el camino de un commit a un servicio en marcha. Construido para que un entorno pueda recrearse desde el repositorio y no reconstruirse de la memoria de una persona, y para que una mala versión pueda deshacerse.

01: Para quién es

Las situaciones que encajan.

Suele llegar como un síntoma y no como una petición: los despliegues dan miedo, o nadie sabe reconstruir el entorno de preproducción.

  • Una infraestructura montada a mano una vez y que ahora entiende exactamente una persona.
  • Un proceso de despliegue tan intimidante que las versiones se agrupan, lo que hace cada una más arriesgada que la anterior.
  • Un entorno que no se puede recrear, de modo que preproducción y producción han divergido en silencio.
  • Un producto que pronto va a necesitar más que una sola máquina, donde el siguiente paso debería decidirse y no improvisarse.
  • Un historial de incidentes cuyo tema recurrente es que nada salió a la luz hasta que lo comunicó un usuario.
02: Qué resuelve

Dónde fallan los entornos de ejecución.

La infraestructura se deteriora en silencio. Un cambio hecho en la consola durante un incidente nunca vuelve a la configuración, y la distancia entre lo que está escrito y lo que se ejecuta crece hasta que la versión escrita es ficción. El momento que importa es aquel en que necesitas reconstruir y descubres que no puedes.

El segundo problema es que la reversión suele ser teórica. Un camino de despliegue en el que todos confían casi siempre se ha probado hacia delante y nunca hacia atrás, así que el primer intento real de deshacer una versión ocurre bajo presión, en el peor momento, a cargo de alguien que lee una documentación que nunca ha usado.

El tercero es una observabilidad que informa de la salud y no de la verdad. Paneles que muestran que el proceso está en marcha mientras la cola que hay detrás creció en silencio durante seis horas. Lo que merece instrumentarse es lo que fallaría primero, y eso exige saber cómo falla el sistema, no solo que está en pie.

03: La forma

La pila, y dónde encaja esta categoría.

Esta categoría empieza por debajo del producto y va hacia abajo. Lo que queda por encima también se nombra aquí, para que el límite se vea y no se dé por supuesto.

Una arquitectura de referencia, es decir, la forma sobre la que se diseña el trabajo y no un registro de sistemas entregados. Nombra capas y responsabilidades, nunca productos: lo que se ejecuta en una capa determinada es una decisión que se toma contigo durante el alcance, no aquí por adelantado.

la escalera compartida, marcada para plataforma e infraestructura
reconstruible desde el código fuente
  • L5

    Superficie de producto

    Cobertura: Fuera de alcance

    La superficie de producto se construye en ingeniería de producto. Esta categoría empieza por debajo.

  • L4

    Servicios y APIs

    Cobertura: Parcial

    Cómo se empaquetan, arrancan, limitan y publican los servicios, y no lo que hacen.

  • L3

    Datos y estado

    Cobertura: Parcial

    Dónde vive el estado, y si un entorno que lo contiene puede recrearse desde el repositorio en lugar de reconstruirse de la memoria de una persona.

  • L2

    Modelos y agentes

    Cobertura: Fuera de alcance

    El trabajo de modelos y agentes es IA y automatización. Nada aquí da por supuesto que un producto los tenga.

  • L1

    Ejecución e infraestructura

    Cobertura: A cargo

    Aprovisionamiento como código, configuración de contenedores y del entorno de ejecución, pipelines y el camino del commit al servicio en marcha con una reversión ejercitada. Esto construye la plataforma y la entrega; no es un contrato de soporte.

  • L0

    La capa de debajo

    Cobertura: Parcial

    Comportamiento de los procesos, límites de recursos y modos de fallo leídos donde se deciden, para que el entorno de ejecución se ajuste a los fallos que el producto tiene de verdad y no a los que se esperan.

Qué significan las marcas

A cargo
Esta categoría es responsable de la capa. Se diseña, se construye y se entrega dentro del encargo.
Parcial
El trabajo llega a la capa hasta donde lo necesita el desarrollo, y la profundidad aquí corresponde a una de las otras categorías.
Fuera de alcance
Deliberadamente fuera de esta categoría. La nota del peldaño dice adónde va el trabajo en su lugar.
04: Qué se entrega

Lo que produce el encargo.

La infraestructura como un artefacto que te quedas, no como una configuración que alguien recuerda.

  • Aprovisionamiento como código, para que un entorno se defina en el repositorio y no en una consola.
  • Configuración de contenedores y del entorno de ejecución, con los límites de recursos y el comportamiento ante fallos hechos explícitos.
  • Pipelines de CI/CD: qué se ejecuta en cada commit, qué condiciona una versión y qué la detiene.
  • Un camino de despliegue y reversión, con la reversión ejercitada y no supuesta.
  • Registros, métricas y observabilidad dirigidos a los fallos que este sistema tiene de verdad.
  • Una lista de verificación de despliegue y reversión, para que el procedimiento sobreviva a la persona que lo escribió.
05: Riesgo que se elimina

A qué ya no estás expuesto.

Cada elemento es un fallo con nombre porque es común.

  • Un entorno que nadie puede reconstruir, donde la única copia de la configuración es el sistema en ejecución.
  • Descubrir durante un incidente que la vía de reversión era teórica.
  • Un proceso de publicación tan arriesgado que las versiones se agrupan, agravando el riesgo que quería evitar.
  • El fallo silencioso: un sistema que informa de que está sano mientras el trabajo detrás se acumula.
  • Infraestructura que vive en la cuenta de un proveedor y no en la tuya, de modo que el acceso es algo que tienes que pedir.
06: Lo que esto no es

Trabajo que rechazamos.

Las peticiones de infraestructura que suelen tener la forma equivocada.

  • Guardias 24/7 permanentes o un acuerdo de servicio gestionado. Esto construye la plataforma y la entrega; no es un contrato de soporte.
  • Una migración a la nube elegida por sí misma, sin un problema que resolver. Se define primero como una decisión, y a menudo la respuesta es no mudarse.
  • Kubernetes porque se espera. El entorno de ejecución debe ajustarse a los modos de fallo que el producto tiene de verdad, y con frecuencia lo correcto es algo más pequeño.
  • Un proyecto de reducción de costes donde la cifra objetivo se fija antes de que nadie haya mirado lo que está en marcha.
  • Trabajo de infraestructura en una cuenta a la que no se nos puede dar un acceso correctamente acotado. Las credenciales amplias y permanentes no son un atajo.
07: Entrega

Con qué te quedas.

La infraestructura es lo más fácil de dejar en un estado que solo entiende su autor, así que aquí es donde más importa la entrega.

  1. Todo en tus cuentas

    La infraestructura se ejecuta desde el principio en cuentas que son tuyas. Nada se aloja de nuestro lado para migrarse luego, así que no hay corte ni dependencia de que sigamos existiendo.

  2. La configuración en el repositorio

    Aprovisionar como código significa que el entorno tiene una definición que tu equipo puede leer, revisar y cambiar. Reconstruir es ejecutar el código, no reconstruir un recuerdo.

  3. Un procedimiento de publicación que se ha ejecutado

    El camino del commit a producción, los controles que lo jalonan y los pasos exactos para revertir una versión, ejercitados durante el proyecto en lugar de documentados y esperados.

  4. Las condiciones que disparan una reversión

    No solo cómo deshacer una versión sino cuándo hacerlo: qué vigilar tras un despliegue y qué lectura significa parar. Criterio escrito mientras está fresco.

09: Siguiente paso

Empieza por la restricción.

Describe lo que funciona hoy y lo que ahora mismo no puedes reconstruir. Suele bastar para definir la primera etapa.