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

48
Bogotá

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

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

Bogotá

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

Big Data en AWS

Damian Traverso - Solutions Architect

18/06/2015 | Bogotá

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

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

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

Desafíos de un proyecto de Big Data

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

Big Data: El volumen crece continuamente

De PB para ZB

GBTB

PB

ZB

EB

1990 2000 2010 2020

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

Big DataReal-time Big Data

Big Data: Necesita responder más rápido

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

Una gran variedad de soluciones y componentes

Glacier

S3 DynamoDB

RDS

EMR

Redshift

Data PipelineKinesis

Cassandra CloudSearch

AML

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

Simplificando el procesamiento de Big Data

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

Simplificando el procesamiento de Big Data

Ingestión Persistencia / Storage Procesamiento Visualización

Dat

os

Res

pues

tas

Tiempo

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

¿Cuáles tecnologías debo utilizar?

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

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

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

Ingestiónde

datos

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

Tipos de datos para ingestión

• Transaccionales– RDBMS

lectura/escritura

• Archivos– Click-stream logs– Texto libre

• Stream– IoT devices– Tweets

Database

Cloud Storage

StreamStorage

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

Stream Storage

Database

Cloud Storage

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

¿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

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

¿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

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

Cloud Database & Storage

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

Cloud Database and Storage Tier Anti-pattern

App/Web Tier

Client Tier

RDBMS

Database & Storage Tier

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

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

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

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

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

¿Que Storage debo utilizar?

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

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

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

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

¿Cuál es la temperatura de sus datos?

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

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 $$-$ $-¢¢ ¢

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

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

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

Procesamiento

✔ ✔

AML

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

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

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

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

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

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

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

Caso de uso: Procesamiento Batch para ETL

Application

AWS Data Pipeline

AmazonEMR

AmazonS3

AmazonGlacier

AmazonRedshift

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

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

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

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

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

¿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

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

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?

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

✔ ✔ ✔

AML

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

Colocando todo junto

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

Arquitectura desconectada

• Múltiples etapas• Storage desconectado del procesamiento

Procesar Almacenar Procesar AlmacenarDatos Respuestas

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

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

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

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

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

Patrones de diseño

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

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

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

Spark Streaming

Amazon Kinesis / KafkaDatos

Apache Storm Native Client

Procesamiento Real-time

Amazon DynamoDB

Native Client

Respuestas

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

AmazonRedshift

Hive

Spark, Presto

Amazon Kinesis/Kafka

Amazon S3Datos

Respuestas

Processamento en Batch

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

Spark, Impala, Presto Redshift

Spark, Presto

Kinesis/Kafka

S3Datos HDFS

Análisis interactivos

Respuestas

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

AML

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

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

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

¡Muchas Gracias!