AWS Summit Bogotá Track Avanzado: Arquitecturas y mejores practicas de big data en AWS

Post on 31-Jul-2015

215 views 0 download

Transcript of AWS Summit Bogotá Track Avanzado: Arquitecturas y mejores practicas de big data en AWS

Bogotá

Big Data en AWS

Damian Traverso - Solutions Architect

18/06/2015 | Bogotá

Agenda

• Desafíos de un proyecto de Big Data• Visión simplificada del procesamiento Big Data• ¿Cuáles tecnologías debo utilizar? • Arquitectura de Referencia• Patrones de Diseño

Desafíos de un proyecto de Big Data

Big Data: El volumen crece continuamente

De PB para ZB

GBTB

PB

ZB

EB

1990 2000 2010 2020

Big DataReal-time Big Data

Big Data: Necesita responder más rápido

Una gran variedad de soluciones y componentes

Glacier

S3 DynamoDB

RDS

EMR

Redshift

Data PipelineKinesis

Cassandra CloudSearch

AML

Simplificando el procesamiento de Big Data

Simplificando el procesamiento de Big Data

Ingestión Persistencia / Storage Procesamiento Visualización

Dat

os

Res

pues

tas

Tiempo

¿Cuáles tecnologías debo utilizar?

GlacierS3

DynamoDB

RDS

Kinesis Spark

Streaming

EMR

Ingestión Persistencia Proceso/Análisis Visualización

Data Pipeline

Storm

Kafka

Redshift

Cassandra

CloudSearch

Kinesis Connector

Kinesis enabled app

App Server

Web Server

Devices

AML

Ingestiónde

datos

Tipos de datos para ingestión

• Transaccionales– RDBMS

lectura/escritura

• Archivos– Click-stream logs– Texto libre

• Stream– IoT devices– Tweets

Database

Cloud Storage

StreamStorage

Stream Storage

Database

Cloud Storage

¿Por qué un Stream Storage?

• Convierte múltiples streams en unos pocos, persistentes y ordenados secuencialmente

• Desconecta productores y consumidores de datos

• Actúa como un buffer o una cola

• Streams en secuencia son más faciles de procesar

• Preserva el orden para los consumidores

• Streaming MapReduce• El consumidor puede

realizar un replay y reprocesar

¿Cuál Stream Store debo utilizar?

• Amazon Kinesis y Apache Kafka tienen muchas similitudes– Múltiples consumidores– Orden de los registros– MapReduce de Streaming– Baja latencia– Alta durabilidad, disponibilidad y escalabilidad

• Diferencias– Un registro dura 24 horas en Kinesis, en Kafka es configurable– Tamaño de 50 Kb en Kinesis, en Kafka es configurable– Kinesis es un servicio totalmente gestionado – fácil de provisionar, monitorear y

escalar. Kafka exige un trabajo de administración de disponibilidad y escalamiento como un proceso on-premise

Cloud Database & Storage

Cloud Database and Storage Tier Anti-pattern

App/Web Tier

Client Tier

RDBMS

Database & Storage Tier

Database y Storage en la nube - Las herramientas correctas

App/Web Tier

Client Tier

Data Tier

Database & Storage Tier

Search

Hadoop/HDFS

Cache

Blob Store

SQL NoSQL

App/Web Tier

Client Tier

Data Tier

Database & Storage Tier

Amazon RDSAmazon DynamoDB

Amazon ElastiCache

Amazon S3

Amazon Glacier

Amazon CloudSearch

HDFS on Amazon EMR

Database y Storage en la nube - Las herramientas correctas

¿Que Storage debo utilizar?

• Nivel de estructuración de los datos• Complejidad de las consultas

Grado de estructuración / complejidad de las queries VS.

Storage

Structured – Simple QueryNoSQL

Amazon DynamoDBCache

Amazon ElastiCache

Structured – Complex QuerySQL

Amazon RDS Search

Amazon CloudSearch

Unstructured – No QueryCloud Storage

Amazon S3Amazon Glacier

Unstructured – Custom QueryHadoop/HDFS

Elastic MapReduce

Gra

do d

e es

truc

tura

ción

Grado de complejidad de las queries

¿Cuál es la temperatura de sus datos?

Temperatura de los datos: Calientes, Tibios o Fríos

Caliente Tibio Frío

Volumen MB–GB GB–TB PBTamaño del registro B–KB KB–MB KB–TBLatencia ms ms, seg min, horasDurabilidad Baja - Alta Alta Muy AltaFrecuencia de requests Muy Alta Alta BajaCosto/GB $$-$ $-¢¢ ¢

AmazonRDS

Amazon S3

Frecuencia de Requestsalta baja

Costo/GBalta baja

Latenciabaja alta

Volumenbaja alta

AmazonGlacier

AmazonCloudSearch

Est

ruct

urac

ión

baja

alta

AmazonDynamoDB

AmazonElastiCache

EMR/HDFS

Procesamiento

✔ ✔

AML

Procesamiento

• Análisis Descriptivo: BI, OLAP, SQL/data warehouse• Análisis Predictivo: sistemas de recomendación,

previsión de page-views, subasta de anuncios on-line • Clasificación: análisis de sentimiento, fraude, anti

spam, clustering de clientes para crear perfiles de consumo

• Correlación: comparar lo que se sabe sobre el negocio (BI) con las oscilaciones del mercado, tiempo y temperatura, reputación en las redes sociales

Frameworks de procesamiento

Normalmente existen dos tipos:

• Batch– Procesamiento regular (ex: ETL)– Análisis exploratorio (ex:data science)

• Stream– IoT, click-stream, social monitoring,

crawlers, etc

Procesamiento Batch

• Accede a un gran volumen de datos fríos para interactuar en búsqueda de correlaciones

• Generalmente necesita minutos o horas para obtener una respuesta

Por ejemplo: Generar reportes por horas, días o meses

Caso de uso: Procesamiento Batch para ETL

Application

AWS Data Pipeline

AmazonEMR

AmazonS3

AmazonGlacier

AmazonRedshift

Procesamiento de Stream

• Analisa datos en pequeños grupos – CEP – Complex Event Processor (if/then/else)– Machine Learning (fraude, recomendaciones, etc.)

• Responde en corto lapso de tiempo– Real-time o Near Real-time dependiendo de cada

aplicación

Por ejemplo: análisis de 1min de operaciones

Herramientas

• Batch processing/analytic– Amazon Redshift– Amazon EMR

• Hive, Pig, Spark, Impala, Presto, …

• Stream processing– Apache Spark streaming– Apache Storm (+ Trident)– Amazon Kinesis client and

connector libraryAML

¿Cuál herramienta de procesamiento batch debo usar? Redshift Impala Presto Spark Hive

Latencia de las queries

Baja Baja Baja Baja - Media Media - Alta

Durabilidad Alta Alta Alta Alta Alta

volumen 1.6PB Max ~Nodos ~Nodos ~Nodos ~Nodos

Managed Si EMR bootstrap

EMRbootstrap

EMR bootstrap

Si (EMR)

Storage Nativo HDFS HDFS/S3 HDFS/S3 HDFS/S3

# of BI Tools Alta Media Alta Baja Alta

Latencia de lasqueries Baja Alta

Spark Streaming Apache Storm + Trident

Kinesis Client Library

Escalabilidad/Throughput

~ Nodos ~ Nodos ~ Nodos

volumen ~ Nodos ~ Nodos ~ Nodos

Administración Si (EMR bootstrap) Hágalo usted mismo

EC2 + Auto Scaling

Tolerencia a fallas Built-in Built-in KCL Check pointing

Lenguages de programación / API

Java, Python, Scala Java, Scala, Clojure

Java, Python

¿Cuál herramienta de procesamiento de Stream debo usar?

✔ ✔ ✔

AML

Colocando todo junto

Arquitectura desconectada

• Múltiples etapas• Storage desconectado del procesamiento

Procesar Almacenar Procesar AlmacenarDatos Respuestas

Aplicaciones de Procesamiento (o conectores) pueden escribir en múltiples Data Stores

Amazon Kinesis

Amazon Kinesis

Connectors

Amazon S3

Datos Amazon DynamoDB

Lambda Architecture

AnálisisReal Time

AnálisisExploratório

Frameworks de Procesamiento (Storm, Hive, Spark, etc) pueden leer de múltiples Data Stores

Amazon Kinesis

Amazon Kinesis

Connectors

Amazon S3

Datos Amazon DynamoDB

Hive Spark

Respuestas

Storm

Respuestas

Patrones de diseño

Spark Streaming,

Apache Storm

Amazon Redshift

Spark, Impala, Presto

Hive

AmazonRedshift

Hive

Spark, Presto

Amazon Kinesis/Kafka

Amazon DynamoDB

Amazon S3Datos

Caliente FríoTemperatura de los datos

Lat

enci

a d

e la

s q

uer

ies

Baja

AltaRespuesstas

HDFS

Hive

Native Client

Temperatura de los dados X Latencia de las queries

Spark Streaming

Amazon Kinesis / KafkaDatos

Apache Storm Native Client

Procesamiento Real-time

Amazon DynamoDB

Native Client

Respuestas

AmazonRedshift

Hive

Spark, Presto

Amazon Kinesis/Kafka

Amazon S3Datos

Respuestas

Processamento en Batch

Spark, Impala, Presto Redshift

Spark, Presto

Kinesis/Kafka

S3Datos HDFS

Análisis interactivos

Respuestas

AML

Resumen

• Etapas de procesamiento Big Data: ingestión, almacenamiento, procesamiento y visualización

• Usar las herramientas correctas de acuerdo con el trabajo a ser realizado– Ingestión: Dados transaccionales, archivos, stream– Almacenamiento: nivel de estructuración, complejidad de las

queries, datos calientes VS fríos, etc.– Procesamiento: Latencia de las queries

• Arquitectura de referencia en Big Data y patrones de diseño

¡Muchas Gracias!