Las soluciones de Big Data se suelen describir en torno al desafío de la administración y operación del dato, que debido al incremento en el volumen, velocidad y variedad de los datos, no pueden ser resueltos sobre bases de datos y aproximaciones tradicionales. En los últimos años han surgido diferentes compañías que aportan un set de soluciones en cloud con las cuales se pueden desarrollar y afrontar problemas en el desarrollo e implantación de una solución Big Data:
- Amazon
- IBM
- Microsoft
Todas
ellas aportan soluciones con diferentes enfoques en sus clouds,vamos a centrarnos en la solución propuesta por Amazon sobre su cloud Amazon
Web Services. Proporciona una cartera amplia y totalmente integrada de
servicios en la nube que permiten desarrollar e implantar soluciones de Big
Data sin necesidad del aprovisionamiento de hardware, en referencia a su
mantenimiento y la escalabilidad de infraestructura, focalizando los proyectos
en el descubrimiento de nueva información. Además nos vamos a beneficiar de la
incorporación de nuevas tecnologías sin que requiera una inversión a largo
plazo.
Disponibilidad inmediata
La mayoría de las tecnologías de Big
Data requieren clústeres de servidores de gran tamaño, lo que requiere largos
ciclos de configuración y aprovisionamiento. Con AWS se puede implementar la
infraestructura en tiempo reducidos. Se incrementa la productividad de los
equipos reduciendo los ciclos de implantación de los proyectos.
Capacidades amplias y profundas
Las cargas de trabajo de Big Data
son tan diversas como los recursos de datos que analizan. Por medio de una plataforma
amplia se puede crear aplicaciones diversas con independencia de las "tres
V". Desde AWS se proporcionan cada año nuevos servicios que pueden ser
integrados en nuevas aplicaciones o las ya existentes.
Seguridad
Los Big Data a menudo emplean
datos confidenciales, se requiere proteger los recursos y la infraestructura
sin perder agilidad. Desde AWS se proporcionan capacidades en instalaciones,
redes, software y procesos empresariales. Se realizan auditorías de los
entornos, de acuerdo con certificaciones como ISO 27001, FedRAMP, DoD SRG y PCI DSS.
Reducción
de Costes
Los Big Data tradicionales
requieren amplias capacidades hardware, mantenimiento de software, así como
coste energético. Desde AWS se proporciona, virtualización de servidores,
arquitecturas orientadas a servicios por medio de pago por uso, midiendo los
costes al segundo, con el consiguiente beneficio de no pagar siempre que no
estemos usando los servicios e infraestructura donde resida nuestra aplicación.
Arquitectura
Para la definición de una
arquitectura que podamos emplear en las soluciones de Big Data debemos
contestar a una serie de preguntas:
¿Existe una arquitectura de
referencia?
¿Qué herramientas debemos de
usar?
¿Cómo? y ¿Por qué?
Las soluciones de Big Data se
basan en cuatro fases o principios que debemos resolver:
- Ingesta de datos, se trata de una primera fase sobre la cual se procede a la captura y procesamiento de los mismos. Estos datos pueden generarse de forma dinámica o bien cargados desde otras fuentes, requiriendo un proceso de ETL, que en función de si se trata de datos estructurados o no estructurado (como pueden ser textos, imágenes, video, etc) dará como resultado un stream de información que será almacenado en nuestro data lake de información.
- Almacenamiento. Los datos serán almacenados en la nueve y en función de su temperatura podrán estar persistido por medio de diferentes servicios que nos permitan un acceso acorde a los mismos, desde un punto de vista de latencia y costes de almacenamiento.
- Análisis y procesamiento de los datos. Si queremos extraer conocimiento deberemos aplicar algoritmos sobre los datos que nos permitan su extracción. Podemos realizar un análisis descriptivo, que permiten al usuario responder a la pregunta ¿Qué ha pasado y por qué?, otro enfoque sería desarrollar un análisis predictivo, que ayuda a los usuarios a determinar probabilidades de que se produzca un evento determinado a partir de una variable, y por último podemos desarrollar recomendaciones al usuario que responden ¿Qué debería de hacer si pasa "x"?
- Consumir y visualizar datos. Consiste en obtener información procesable y valiosa a partir de los recursos de datos. Las herramientas deben permitir una visualización ágil aportando un componente de inteligencia empresarial de autoservicio que permita a los usuarios explorar el conjunto de datos de forma rápida y sencilla desde diferentes planos. En función del role del usuario podrán consumir la información como "predicciones" estadísticas (análisis predictivo) o como acciones recomendadas (análisis prescriptivo).
Los principios de arquitectura de
una solución se van a basar:
- Bus de datos desacoplado. En AWS por medio de la integración de un conjunto de servicios vamos a dar solución a los 4 principios que nos muestra la imagen previa.
- Uso de las herramientas adecuadas para cada una de las tareas, por ejemplo debemos analizar si vamos a disponer de datos en tiempo real, que latencia puede admitir nuestra solución, si vamos a disponer de datos estructurados, etc.
- Al aprovechar servicios administrados dentro de AWS vamos a disponer de una serie de características como son escalabilidad, disponibilidad, confiabilidad, seguridad.
- No tenemos por qué diseñar la arquitectura basada únicamente en servicios, podemos introducir infraestructura dentro de AWS proporcionada sobre EC2 sobre la cual podemos disponer de clúster específicos que nos aporten la solución que más convenga.
Arquitectura Serverless
Una de las primeras preguntas que
nos podemos hacer a la hora de diseñar una solución de Big Data ¿es posible
construir la sin servidores? la respuesta es sí, por medio de
arquitecturas de tipo Serverless. La
informática sin servidor (Serverless) permite crear y ejecutar aplicaciones y
servicios sin disponer de una infraestructura física que nos de apoyo. Estas
aplicaciones no requiere que se aprovisione, escale y administren servidores,
pudiendo crear cualquier aplicación de este tipo o servicios backend. Nos
centraremos en el problema a resolver, no en la infraestructura.
Para diseñas estas arquitecturas
debemos resolver 3 aspectos:
- Deben ser totalmente administradas. Sin aprovisionamiento, alta disponibilidad.
- Escalado continuo. Debe funcionar de forma automática sin que se produzca una degradación significativa en los tiempos de respuesta, además debe ser ascendente y descendente.
- Centrarnos en la productividad de los desarrollos. Lo importante es el código que soluciona los problemas a resolver, no la plataforma y sus problemas, esto reduce el tiempo de acceso de las soluciones al mercado.
Estas
arquitecturas dentro de AWS se centran en 4 ejes fundamentales:
- Computación, aportado por AWS Lambda.
- API Proxy, aportado por Amazon API GateWay, permite a los desarrolladores la creación, publicación, mantenimiento, monitorización y protección del API.
- Almacenamiento, aportado por medio de Amazon S3, permite el almacenamiento de objetos en un entorno seguro, persistente y altamente escalable.
- Base de Datos, aportado por Amazon DynamoDB, se trata de un servicio de BD NoSQL, rápido y flexible con latencias de milisegundos. Compatible con modelos de almacenamiento de clave valor y documentos. En caso de emplear bases de datos SQL podemos emplear Amazon Aurora.
Escenarios
AWS proporciona un conjunto de servicios
que permiten crear e implementar aplicaciones de Big Data de forma rápida y
sencilla, permitiendo una escalabilidad desde diferentes planos: almacenamiento
de datos, análisis de flujos en tiempo real, procesos de ETL y procesamiento de
IoT. A lo largo de este post hemos hablado de un conjunto de servicios
presentes en la plataforma que nos permiten dar respuesta a la construcción de estas soluciones.
Una de las posibilidades más interesantes es la construcción de una solución siguiendo arquitecturas de tipo Serverless (Sin servidor) que nos ofrecen un conjunto de ventajas:
Se pueden plantear soluciones tipo con el conjunto de servicios en AWS:
En la primera solución podemos partir de un conjunto de Data Stores, que podrán ser de diferentes tipos, incluido Amazon S3, que por medio de AWS Glue Data Catalog podremos componer los metadatos necesarios para que podamos trabajar con Athena comenzando el análisis de los datos.
En el siguiente ejemplo, la
arquitectura es más compleja. Dispondremos de dos puntos de entrada una
aplicación web que por medio de un API REST almacenará información relevante
dentro de una base de datos NoSQL, en nuestro caso DynamoBD (aunque podríamos
haber partido de Aurora) y por medio de un flujo de información junto con su
función de proceso AWS Lambda asociada va a recoger por medio de Kinesis
Firehose información relevante dentro de un Bucket determinado en Amazon S3.
Otro flujo de entrada sería desde dispositivos IoT (podrían también ser
aplicaciones móviles) que por medio de Kinesis Firehose y Kinesis Analytics
permitirían almacenar la información procesada en su Bucket correspondiente
(podríamos tener formatos estructurados como en este caso, ficheros JSON o bien
CSV) que posteriormente van a ser procesados desde QuickSight.
Otra posibilidad es el desarrollo de una arquitectura por medio de Amazon EMR, que en caso de disponer ya de una infraestructura Big Data, por ejemplo, disponemos ya de un conjunto de algoritmos desarrollados sobre una plataforma de tipo Spark. Nos va a permitir integrar estas piezas de software, añadiendo nuevas funcionalidades. En la imagen siguiente vemos algunas de las posibilidades de integración de Amazon EMR, por medio de conectores, sobre herramientas que hemos mencionado en puntos anteriores, accediendo a Amazon S3 directamente o manejando flujos de información procedentes de Kinesis o Kafka.
La escalabilidad de las soluciones queda de manifiesto en los ejemplos propuestos. Además debemos tener en cuenta que se ha planteado un conjunto mínimo de los servicios presentes en la plataforma. Como vemos las posibilidades son significativas, además no hemos mencionado en ningún momento como integrar Machine Learning dentro de nuestras soluciones, aún cuando ya las tendremos disponibles, por medio de Spark y su librería MLLib, sobre Amazon EMR, AWS está comenzando a desplegar servicios como Amazon Lex, Amazon Rekognition que deben ser tenidos en cuenta dentro de este ámbito.
En próximos post vamos a plantear el análisis de algunos de los servicios propuestos, en cualquier caso la mejor fuente de información será la web de Amazon.
https://aws.amazon.com/es/
Una de las posibilidades más interesantes es la construcción de una solución siguiendo arquitecturas de tipo Serverless (Sin servidor) que nos ofrecen un conjunto de ventajas:
- No hay que administrar servidores, recudiendo sensiblemente los costes de inversión, mantenimiento y administración de los mismos.
- Escalado flexible. La aplicación escala de forma automática en función de sus necesidades, por ejemplo incremento de memoria. etc.
- Alta disponibilidad. Las aplicaciones disponen de disponibilidad y tolerancia a errores integradas, no se requiere diseñar el software teniendo en cuenta estas necesidades.
- Reducción de costes. Se paga por el consumo real, no se requiere aprovisionar previamente ni en exceso la capacidad de los elementos como por ejemplo computo y almacenamiento.
- Tiempos de desarrollo y despliegues muy cortos. Nos centramos en la resolución del problema, no en la infraestructura de soporte y sus procesos de despliegue.
Se pueden plantear soluciones tipo con el conjunto de servicios en AWS:
- Una solución básica, si partimos de la base de que en nuestra organización no hemos desarrollado ningún proyecto Big Data, sería construir la misma a partir de Amazon S3 y Athena, de esta forma podríamos de forma rápida empezar a trabajar sobre nuestros datos.
- Una solución compleja introduciría no sólo datos, también flujos de información procedentes de otras fuentes de información, junto con un procesamiento de la misma, situando a QuickSight como herramienta para consumir la información.
En la primera solución podemos partir de un conjunto de Data Stores, que podrán ser de diferentes tipos, incluido Amazon S3, que por medio de AWS Glue Data Catalog podremos componer los metadatos necesarios para que podamos trabajar con Athena comenzando el análisis de los datos.
Otra posibilidad es el desarrollo de una arquitectura por medio de Amazon EMR, que en caso de disponer ya de una infraestructura Big Data, por ejemplo, disponemos ya de un conjunto de algoritmos desarrollados sobre una plataforma de tipo Spark. Nos va a permitir integrar estas piezas de software, añadiendo nuevas funcionalidades. En la imagen siguiente vemos algunas de las posibilidades de integración de Amazon EMR, por medio de conectores, sobre herramientas que hemos mencionado en puntos anteriores, accediendo a Amazon S3 directamente o manejando flujos de información procedentes de Kinesis o Kafka.
La escalabilidad de las soluciones queda de manifiesto en los ejemplos propuestos. Además debemos tener en cuenta que se ha planteado un conjunto mínimo de los servicios presentes en la plataforma. Como vemos las posibilidades son significativas, además no hemos mencionado en ningún momento como integrar Machine Learning dentro de nuestras soluciones, aún cuando ya las tendremos disponibles, por medio de Spark y su librería MLLib, sobre Amazon EMR, AWS está comenzando a desplegar servicios como Amazon Lex, Amazon Rekognition que deben ser tenidos en cuenta dentro de este ámbito.
En próximos post vamos a plantear el análisis de algunos de los servicios propuestos, en cualquier caso la mejor fuente de información será la web de Amazon.
https://aws.amazon.com/es/




Comentarios
Publicar un comentario