Cómo Netflix construyó su mapa de topología de servicios en tiempo real

Fuentes: Building Service Topology at Scale: Architecture, Challenges, and Lessons Learned

Netflix ha detallado la arquitectura y los desafíos de ingeniería detrás de su sistema de mapa de dependencias de servicios en tiempo real, una herramienta pensada para que sus ingenieros diagnostiquen incidencias con mayor rapidez y comprendan el alcance de cualquier fallo en su infraestructura distribuida.

El artículo describe una arquitectura basada en streaming, no en procesamiento por lotes, capaz de ingerir millones de registros de flujo por segundo. Para lograrlo, emplea flujos reactivos con backpressure: cuando una etapa del sistema se ralentiza, señaliza a las anteriores para que reduzcan el ritmo, evitando pérdidas de datos y caídas de instancias. Los datos en tránsito permanecen en Kafka hasta que la capacidad se recupera, lo que permite mantener actualizaciones casi en tiempo real (del orden de decenas de minutos) frente a las horas o días de los sistemas batch tradicionales.

La información se organiza en tres capas físicamente separadas: una capa de red basada en registros de flujos eBPF, una capa de comunicación entre procesos (IPC) con métricas de aplicación y una capa de trazas distribuidas almacenada en formato Parquet. Cada capa se optimiza de forma independiente y se consulta en paralelo, devolviendo respuestas en menos de un segundo. Además, el sistema reconstruye la topología en cualquier momento del pasado mediante ventanas temporales de cinco minutos y hash consistente para distribuir la carga.

Los autores también comparten las dificultades halladas en producción: consumidores de Kafka rezagados, picos de tráfico de 100x entre nodos y pausas de recolección de basura que consumían más CPU que la lógica de negocio. La pieza forma parte de una serie y precede a un tercer artículo centrado en la capa de trazas.