¿La ‘arquitectura lambda’ sigue siendo la mejor manera de construir canalizaciones de datos a gran escala (en 2017) o ha sido reemplazada por otras arquitecturas?

No podría decirte si es la MEJOR manera, pero el uso de combinaciones de métodos de procesamiento por lotes y flujo sigue siendo bastante común. Es inusual en mi experiencia verlos restringidos a los mismos modelos, o procesar los mismos datos de la misma manera, como parece ser considerado por algunos como una parte necesaria de la arquitectura lambda.

Típicamente, las arquitecturas con las que he trabajado incluyen procesadores de flujo cuyo trabajo era crear conjuntos de datos por lotes y subdividir los datos entrantes en procesadores posteriores (en tiempo real o NRT). Los procesadores realizarían funciones en tiempo real, los procesadores de lotes se manejarían de manera programada o de bloqueo, y luego los resultados del lote y la secuencia de procesamiento se almacenarían, mostrarían o integrarían.

La triste realidad es que esto suena mucho más fácil de lo que es, teníamos formas para que las personas solicitaran conjuntos de datos personalizados, manejadores de datos prioritarios, mezcladores que mezclarían conjuntos de datos y “aprenderían” cosas interesantes sobre ellos, analizadores de series de tiempo y todo otros tipos de locura. Manejar esa complejidad era en realidad una tarea muy interesante, y no para los débiles de corazón. Se trabajó mucho para homogeneizar los datos de manera que pudiéramos usar el mismo tipo de pantallas para mostrarlos, procesadores para procesarlos, observadores para observarlos, etc., sin manipular los datos en sí mismos o hacer que cambien de formas no deseadas.

Tengo entendido que las razones por las que muchas instituciones no usan esta arquitectura son porque:

  1. es horriblemente complicado, horriblemente costoso y horriblemente cargado por adelantado en el costo.
  2. los beneficios son marginales y a largo plazo, y los beneficios solo importan a escala.

Siempre escuchará a las personas hablar sobre cómo “tener un billón de usuarios es un gran problema” y eso es cierto, hasta que se dé cuenta de que si no lo planeó hace 999 millones de usuarios, está profundamente jodido Y con años de retraso .

Para abordar la parte de la pregunta “reemplazada por otras arquitecturas”, a menudo encontrará este enfoque utilizado en concierto con un microservicio, orientado al servicio o arquitectura basada en bus de servicio empresarial, pero es muy común encontrar múltiples arquitecturas mezcladas en una aplicación en esta escala

¡Espero que esto ayude!