Conferencia QCon San Francisco: Surabhi Diwan en acción

Conferencia QCon San Francisco: Surabhi Diwan en acción

Netflix presentó durante el primer día de QCon San Francisco 2023 una presentación sobre la gestión de sus 238 millones de suscripciones. En esta charla, analizamos la arquitectura y la ingeniería de la membresía en Netflix.

Ingeniería de membresía en Netflix

El equipo de ingeniería de membresías de Netflix es responsable de los precios de las suscripciones, la gestión del ciclo de vida de las membresías y la fuente veraz de todas las membresías. Desempeña un papel crucial en el proceso de registro y transmisión en la plataforma.

En su presentación, el ingeniero senior Surabhi Diwan explicó las decisiones técnicas tomadas para la arquitectura de membresía y cómo las implementaron con éxito. En particular, presentó el proceso para registrar un nuevo suscriptor y detalló los elementos clave de esta arquitectura:

  • Una arquitectura de sistema distribuido optimizada para reproducción de alto rendimiento, con más de 12 microservicios que utilizan gPRC (llamadas a procedimientos remotos) a nivel HTTP.
  • Usando Java y Kotlin en el código fuente, además de Netflix Spring Boot para unirlo todo.
  • Uso de Kafka para todos los intercambios de mensajes.
  • Uso de Spark y Flink para realizar conciliaciones sin conexión en grandes volúmenes de datos.

Como parte de las operaciones, el equipo implementa transacciones ligeras y repetidos intentos de evitar brechas en los sistemas en línea. También realiza periódicamente trabajos de conciliación en toda la base de miembros para detectar anomalías y realizar reparaciones automáticas. Utiliza más de 100 alertas de datos para detectar inconsistencias y estados no válidos. Finalmente, cada grabación es verificada por personal calificado para asegurar su validez.

En términos de seguimiento, el equipo utiliza un amplio registro de errores y solicitudes/respuestas en las rutas de escritura, utilizando herramientas como Kibana y Elasticsearch. También utiliza un sistema de seguimiento distribuido para acelerar e identificar problemas con mayor precisión. Finalmente, se configuran alertas de producción basadas en métricas de observabilidad para monitorear diferentes aplicaciones, servicios y puntos finales.

Casos de uso pasados

A continuación, Diwan presentó tres casos de uso anteriores que ayudaron a dar forma a la arquitectura de membresía en Netflix.

El primer caso de uso se centró en cambiar los precios en Netflix. Inicialmente, Netflix ofrecía un plan limitado en algunas regiones geográficas, con una biblioteca compacta que era fácil de descargar y editar rápidamente. Sin embargo, con la expansión global de Netflix, esta biblioteca se ha ampliado para incluir aspectos como calidad de servicio, dispositivos compatibles, acceso a descargas, etc. Como resultado, un número cada vez mayor de aplicaciones tuvieron que integrar esta biblioteca en constante evolución, lo que llevó a la creación de una nueva arquitectura de precios que se convirtió en la fuente de verdad para todos los miembros de Netflix.

El segundo caso de uso fue para la gestión del historial de miembros. Netflix enfrentó desafíos relacionados con la complejidad de manejar eventos de aplicaciones que no coincidían con los registros de datos operativos, carecían de persistencia y no se conciliaban fácilmente entre sistemas. El equipo de ingeniería de membresía propuso una solución al capturar cambios directos de fuentes de datos operativos, lo que facilitó el seguimiento del estado histórico de la membresía. Esta solución se implementó utilizando un modelo de captura de datos modificados que creó un registro de solo adiciones para todos los cambios de suscripción, lo que proporciona una mejor visibilidad y trazabilidad.

El caso de uso final discutido por Diwan fue la evolución del ecosistema de suscripción de miembros. La arquitectura inicial se basó en gRPC a nivel de aplicación, utilizó Cassandra como base de datos para lectura de alto rendimiento y adoptó una arquitectura de microservicios distribuidos, escalable y de alto rendimiento. Sin embargo, esta arquitectura no permitió una rápida conciliación de estados, un acceso rápido a conjuntos de datos para posibles nuevos casos de uso o una eliminación eficiente de datos.

Es por eso que la arquitectura de membresía se actualizó para admitir capacidades de procesamiento de big data, utilizando Spark para conciliar datos fuera de línea con membresías, además de implementar alertas avanzadas para detectar anomalías y escribir errores en el sistema distribuido. También se ha creado un canal de eliminación dedicado para mantener el tamaño de los datos bajo control.

Conclusión

En conclusión, Diwan resumió las lecciones aprendidas de los casos de uso:

  • Permanecer atentos a las opciones tecnológicas para garantizar la sostenibilidad.
  • Tenga el coraje de invertir en apuestas tecnológicas que puedan generar grandes beneficios con el tiempo.
  • La gestión de membresías y suscripciones es un proceso continuo y en evolución.

Para ilustrar estas palabras, Diwan concluyó su presentación con una cita inspiradora.

Fuente: www.infoq.com

Foto del avatar

Sylvain Métral

J'adore les séries télévisées et les films. Fan de séries des années 80 au départ et toujours accroc aux séries modernes, ce site est un rêve devenu réalité pour partager ma passion avec les autres. Je travaille sur ce site pour en faire la meilleure ressource de séries télévisées sur le web. Si vous souhaitez contribuer, veuillez me contacter et nous pourrons discuter de la manière dont vous pouvez aider.