Está en la página 1de 8

Implementación de

Arquitectura Distribuida Lambda


Herramientas en una arquitectura Lambda

La arquitectura Lambda logra reducir la latencia al indexar datos recientes en la capa de velocidad. Esto hace posible que los datos
críticos se entreguen a tiempo cuando sea necesario. Es altamente escalable porque no dicta las tecnologías y herramientas que se
puede utilizar.

Lo bueno de esta arquitectura es que si la capa por lotes falla, la capa de velocidad procesará los datos recientes mientras vuelve a
ejecutarse la capa por lotes.

El principal problema de la arquitectura Lambda es que requiere dos fuentes de código, uno para la batch layer y otro para la stream
layer. Esto solo agrega más complejidad al diseño e implementación de la aplicación. Además, las bases de código complejas son
difíciles de mantener y depurar.

A continuación podemos ver una lista de herramientas que pueden usarse en las diferentes fases de una arquitectura Lambda:

Apache Hadoop se utiliza para almacenar datos y crear clústeres distribuidos.


Apache Kafka se utiliza para la transmisión de datos en la capa de velocidad (Speed Layer).
El sistema de archivos distribuidos de Hadoop (HDFS) se utiliza para administrar datos inmutables en la capa por lotes (Batch Layer).
Apache Spark se utiliza para la transmisión de datos, el procesamiento de gráficos y el proceso por lotes de datos.
Apache Cassandra se utiliza para almacenar vistas en tiempo real.
Apache Storm se utiliza para las tareas de la capa de velocidad (Speed Layer).
Apache HBASE se utiliza para las tareas de la capa de servicio (Serving Layer).
AWS & LAMBDA
El esquema de abajo proporciona una descripción general de los diversos servicios de AWS que forman los
componentes básicos para las capas de lote, servicio y velocidad de la arquitectura lambda en caso de que se
decida construir tal arquitectura en la nube de AWS.
AWS & LAMBDA
Cada una de las capas de la arquitectura Lambda se puede construir usando varios servicios de análisis, streaming, y almacenamiento
disponibles en la plataforma AWS.

La capa por lotes consiste en el repositorio Amazon S3 para almacenar todos los datos (p. ej., flujo de clics, sensores, registros de dispositivos,
etc.) que se envían desde una o más fuentes de datos. Los datos sin procesar en S3 se pueden extraer y transformar en una vista por lotes
para análisis utilizando AWS Glue, un servicio ETL completamente administrado en la plataforma de AWS. El análisis de datos es realizado
utilizando servicios como Amazon Athena, un servicio de consulta interactivo, o un marco de Hadoop administrado utilizando Amazon EMR.
Con Amazon QuickSight, los clientes también pueden realizar
visualización y análisis de una sola vez.

La capa de velocidad se puede construir usando las siguientes tres opciones disponibles a través del servicio Amazon Kinesis:
• Kinesis Data Streams y Kinesis Client Library (KCL): los datos del origen se pueden capturar y transmitir continuamente casi en tiempo rea
con Kinesis Data Streams.

• Kinesis Data Firehose: a medida que los datos se incorporan en tiempo real, los clientes pueden usar Kinesis Data Firehose para agrupar y
comprimir fácilmente los datos para generar vistas incrementales. Kinesis Data Firehose también permite que el cliente ejecute su
transformación personalizada usando AWS Lambda antes de entregar la vista incremental a Amazon S3.

• Kinesis Data Analytics: este servicio proporciona la forma más sencilla de procesar los datos que se están transmitiendo a través de Kinesis
Data Stream o Kinesis Data Firehose mediante SQL. Este permite a los clientes obtener información procesable casi en tiempo real a partir de
la información incremental transmitida antes de almacenarla en Amazon S3.
AWS & LAMBDA
Finalmente, la capa de servicio se puede implementar con Spark SQL en Amazon EMR para procesar los datos en el depósito de Amazon S3
desde la capa por lotes y Spark Streaming en un Amazon EMR clúster, que consume datos directamente de los flujos de Amazon Kinesis para
crear una vista del conjunto de datos completa que se puede agregar, fusionar o unir. El conjunto de datos fusionados se puede mandar
a Amazon S3 para una mayor visualización.
AZURE & LAMBDA
Hay muchas opciones para aumentar, sustituir y ampliar esta arquitectura. El objetivo aquí es brindar una referencia de lo que
probablemente necesitaríamos en nuestro ecosistema para admitir lambda si optamos por los servicios nativos de Azure.
AZURE & LAMBDA
A continuación, se muestra una implementación con preferencia a los servicios de HDInsight:

También podría gustarte