Notas de ingeniería
Platform Engineering · notas
Análisis originales sobre plataformas, Kubernetes, nube, SRE, seguridad y FinOps.
-
Despliegue atómico de un sitio estático donde no hay ni git ni transacciones
Despliegue atómico de un sitio estático sin git en el servidor: el extremo receptor solo ofrece scp y ssh. Con eso no se construye una transacción, pero sí un despliegue que sobrevive a un corte y se repite sin consecuencias.
-
Crossplane frente a Terraform: control plane en vez de fichero de estado
Terraform guarda una instantánea del estado en un fichero y la reconcilia bajo demanda; Crossplane convierte la API de Kubernetes en un control plane y reconcilia de forma continua. Qué cambió la versión dos, dónde gana la reconciliación continua y qué se paga a cambio.
-
Argo Rollouts: canary y blue-green con auto-rollback por métricas
Un RollingUpdate estándar declara el éxito cuando los pods pasan la readiness probe. Argo Rollouts convierte el release en una hipótesis verificable: canary por pasos, blue-green con preview, AnalysisTemplates con PromQL y el burn rate del SLO como rollback automático.
-
Multi-cluster ArgoCD: hub-and-spoke frente a per-cluster y dónde ambos necesitan pull-mode
Hub-and-spoke es el default, pero se rompe contra blast radius, red inbound y compliance. Cuándo elegir per-cluster local, cuándo pull-mode, y cómo es un híbrido sin ideología.
-
Policy as Code en la era del código IA: la paradoja de velocidad y control
La velocidad del código de producción supera al review humano. Sin guardrails deterministas en CI y admission, un agente IA se convierte en amplificador de errores — no de throughput.
-
El golden path como producto: por qué la plataforma viable más delgada gana al desarrollo de cinco años
Construye la plataforma delgada — un camino a la vez — y estandariza el proceso antes de automatizarlo. De lo contrario, entregas un monumento que nadie usa.
-
Internal Developer Platform: seis capas y tres impulsores de adopción
Una IDP no es «un portal más», sino un producto para desarrolladores. Por qué la platform engineering despegó ahora, de qué seis capas se compone una plataforma funcional sobre Kubernetes y cuáles son los cuatro errores que matan un portal en medio año.
-
Dockerfile de producción: distroless, caché de compilación y secretos
Una checklist de una decena de líneas: qué viaja a producción y qué se queda en la etapa builder. Bases medidas, montajes de caché de BuildKit, secretos que no llegan a ninguna capa y atestaciones que llegan solas.
-
Istio Ambient Mesh: sidecarless y el fin del doble salto
Ambient sacó a Envoy de cada pod. Dónde elimina el doble salto y la sobrecarga — y dónde el sidecar sigue justificándose.
-
Cilium y eBPF: reemplazar kube-proxy y quitar iptables de la red de Kubernetes
Todos ven eBPF como una mejora de velocidad, pero el valor real es una regla de decisión: dónde compensa reemplazar kube-proxy y dónde iptables aún gana.
-
Ingress NGINX llega al EOL: migrar a Gateway API sin pánico
Por qué el fin de kubernetes/ingress-nginx es una cuestión de riesgo, no de roadmap, y cómo pasar a Gateway API por fases.
-
OOMKilled: análisis forense de pmap a cgroups memory.stat
El exit code 137 no deja ni stack trace ni última línea de log, mientras el dashboard jura que la memoria sobraba. Las herramientas que responden «adónde se fue la memoria» — mientras el pod sigue vivo.
-
Kubernetes 1.36 (Haru): qué cambia de verdad en producción
Los mutating webhooks empiezan a morir, Ingress NGINX está retired, HPA scale-to-zero sigue en alpha. Triaje pragmático de 1.36 para el equipo de plataforma — sin hype.
-
Un agente de depuración de Kubernetes: ¿plantillas o scripts?
Zinchenko entrega al LLM plantillas de MetricsQL; mi skill de VM alimenta al agente con un agregado terminado. Disecciono el eje flexibilidad frente a reproducibilidad y por qué read-only por lista negra es más débil.
-
Drift detection en 2026: de la alerta al remediation as code
Plan dice «no changes» mientras un security group sigue abierto a internet. Los cuatro puntos ciegos de la detección de una sola capa y dónde parar la corrección automática.
-
OpenTofu vs Terraform en 2026: cuándo el fork ya compensa
La pregunta ya no es si el fork es seguro, sino cuándo supera al original. Funciones, lock-in y coste de migración en 2026.
-
OIDC → AWS STS: CI/CD sin claves de larga duración
La identidad federada sustituye AWS_ACCESS_KEY_ID en CI/CD: un patrón para GitHub, GitLab y Atlantis — sin rotación y con atribución real en CloudTrail.
-
HTTP/2 en el tráfico interno: una clase conocida de trampas
Una conexión para todas las peticiones, una ventana de flow control compartida y un pool que nunca expulsa lo muerto: por qué los servicios HTTP/2 se cuelgan «sin errores» y qué hicieron Go y gRPC.
-
Observability 2.0: eBPF, OpenTelemetry e IA que encuentra la causa raíz
La instrumentación bajó al kernel, la telemetría al estándar OTel y la causa raíz migra hacia la máquina. Tres desplazamientos y el orden en que se amortizan.
-
Un incidente cerrado dos veces: severity, ICS y tres gates
Por qué «recovered» es la palabra más cara de un incidente y las tres comprobaciones que deben pasar antes.
-
Cuatro señales doradas: qué capturan de verdad y por qué el stack es VictoriaMetrics + Loki
Qué captura cada una de las cuatro señales y tres trampas donde «tenemos monitoring» acaba siendo marcas verdes sobre un servicio roto.
-
Error budget como botón de parada: SLO sin pánico
El error budget convierte la fiabilidad en un recurso que puedes gastar — y las alertas multi-burn-rate en un aviso que de verdad merece despertarte.
-
CSP tras la barrera de consentimiento: una cabecera verde no prueba nada
El evaluador señaló dos errores y ambos resultaron ser entradas muertas. El defecto real apareció solo cuando la comprobación se hizo contra el comportamiento del navegador.
-
External Secrets Operator + Workload Identity: acceso a secretos sin una sola clave de larga vida
Un store externo resuelve dónde viven los secretos — y crea un secreto nuevo: la credencial de acceso al propio store. Cómo ESO y workload identity cierran el círculo sin claves de larga vida.
-
Cyber Resilience Act: por qué necesitas un SBOM para septiembre de 2026, no 2027
Todos miran a diciembre de 2027, pero la notificación de vulnerabilidades empieza un año antes — y no se puede notificar lo que el inventario no enumera.
-
SLSA L0–L3 y provenance: una cadena de confianza desde el commit hasta admission
Un SBOM dice «qué hay dentro», una firma «quién firmó». Entre ambos está provenance — «cómo se construyó». Desde SolarWinds es la pregunta que admission tiene que hacer.
-
DevSecOps en cinco etapas: del secret-scan a la admission policy
Cinco etapas en CI con exit-code 1 más un gate de admission en el cluster — el único patrón bajo el cual DevSecOps bloquea producción de verdad en vez de funcionar como un ritual de palomitas verdes.
-
OpenCost: asignación de costes de Kubernetes por namespace y pod
La factura de la nube conoce el precio de la instancia, no el del servicio. OpenCost (CNCF Incubating) reparte el gasto del clúster por namespace y pod: el motor y sus trampas, la comparación con Kubecost y AWS SCAD, el idle cost y el camino hacia la unit economics.
-
Tres palancas contra el sobrecoste de Kubernetes: idle, scale-to-zero, right-sizing
Un clúster medio funciona al 20–30% de utilización. El resto lo pagas en balde. Tres palancas que recuperan el dinero sin reescribir la arquitectura.
-
FinOps es racionalidad, no recorte de costes
El sobregasto en la nube no es negligencia, sino la suma de decisiones localmente racionales. Cambia el entorno de información, no a las personas.
-
Tokens nativos frente a normalizados: por qué tu cálculo de coste no cuadra con la factura de OpenRouter
Tres sistemas mostraron tres cifras para la misma ventana. Solo una era una medición independiente, y los tokens de la respuesta no eran los tokens de la factura.
-
El bucle del agente bajo un orquestador durable: dónde está la frontera
El grafo de agentes y el motor de durable execution son ambos orquestadores. Un mes en el banco mostró dónde trazar la frontera y cuánto cuesta.
-
Un staff engineer hecho de subagentes: qué adopto y qué descarto
El patrón Senior Staff Engineer para Claude Code, leído por un ingeniero con sus propios equipos de subagentes de cuatro roles: aislamiento de contexto y verification gate — sí; la regla del 1% y la Delete Rule — no.
-
MCP para DevOps: empieza con un agente de solo lectura en el clúster
A inicios de 2026 hay más de 10 000 servidores MCP. El primero que dar a un agente en el clúster es de solo lectura: qué aporta y cómo conceder el acceso.
-
La IA reescribe DevOps: de la sintaxis al juicio
Qué hace ya la IA mejor que un ingeniero, dónde queda el valor de la persona y cómo se desplaza el rol de senior DevOps hacia 2026.
-
Una LLM local para programar: no «cuál», sino «dónde»
Una reseña del método práctico para elegir un modelo local de código por hardware — y dónde tienen los modelos locales un nicho real mientras solo la nube sostiene la precisión.
-
El stack de terminal 2026 con ojos de usuario de Linux: qué es portable y qué es óptica de MacBook
La guía del «stack definitivo 2026» está escrita para macOS. La reviso desde la silla Linux/Wayland: Ghostty frente a Konsole, un backend sólido y los huecos por cubrir.
-
Seguridad de agentes: portar patrones empresariales a un harness en solitario
La arquitectura de Biswas resuelve bien la capa de identidad con OAuth y token exchange — pero el peligro real vive en la capa de intención, que el artículo nunca alcanza.
-
Ahorrar tokens en agentes: qué acierta la revisión y qué sobrevende
Un mapa de cuatro técnicas de coste en tokens: caché, herramientas perezosas, enrutamiento, compactación. Entierra la consecuencia real de la caché en una nota al pie, mientras dos hechos contraintuitivos valen todo el mapa.
-
El archivo de memoria corto se derrumba a escala: tokens frente a precedencia de reglas
Mantener diminuto el archivo de memoria es correcto para un repositorio en solitario. Pero las reglas de cumplimiento de varias organizaciones no se fijan a rutas — hay que enrutarlas.
-
Un segundo cerebro en Obsidian es una capa, no toda la memoria del agente
El wiki por zonas de Monteiro es el mecanismo correcto, pero la memoria del agente es una taxonomía de capas; y cualquier capa que ingiere el mundo exterior debe escanearse contra inyección antes de sintetizar.
-
CLAUDE.md: ¿contrato o capas? Dónde acierta el archivo viral y dónde se detiene
El CLAUDE.md viral acierta para la mediana: empieza plano. Pero el cumplimiento no se pide — se mecaniza. Sobre qué escribir en el archivo y qué llevar al arnés.
-
El harness es la parte barata: notas sobre reconstruir Claude Code
Un comentario sobre la reconstrucción de Claude Code desde cero de Fareed Khan — y por qué conviene invertir su conclusión central.
-
Claude Code es una habilidad: notas sobre el argumento de Leo Godin
De acuerdo con la tesis «los LLM son una habilidad» y añadiendo la experiencia que el original dejó fuera.
-
¿Vale la pena aprender a programar en 2026 — notas a Marina Wyss?
Un comentario a su texto en Medium: dónde tiene razón, dónde simplifica y qué añadiría yo.