© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pedro Romera, Solutions Architect
21 Septiembre 2017
Arquitecturas Serverless para Big Data
Agenda
Evolución de Arquitectura en la Nube – ¿Por qué Serverless?
Flujo de Datos y Analítica del Dato
Principales Servicios Serverless para Big Data
Un caso de uso real con Ravenpack
Patrones de diseño
Próximos Pasos
Evolución de Arquitectura en la Nube
Virtualizado Gestionado Serverless
Servidores
VirtualizadosPlataformas
Gestionadas
Plataformas
Serverless
No hay servidores que
provisionar o gestionar
Escalado basado en uso
Nunca pagas si no utilizas Disponibilidad y
Tolerancia a fallos
intrínsecas
Características Serverless
Flujo de Datos y Analítica del Dato
Ingesta / Recogida
AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
Orquestar / Transformar
Orquestación / Transformación
Servicios de Big Data
Batch
ETL/ELTTiempo Real
ETL/ELT
Transaccional/
CDC
Herramientas
BI
Notebooks
Datos Brutos
(Bulk Transport)
Subida de Fichero
/ Objeto
Ingesta de
Streaming
Commits Transaccional
NoSQL
Data Lake
Almacenamiento
de Streaming
Dashboards
Analíticas Batch
Consulta
Interactiva
Machine Learning/
Deep Learning
Analíticas en
Tiempo Real
…
Ingesta / Recogida
AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
Orquestación / Transformación
Servicios de Big Data de AWS = Serverless
Serverless
Managed
VirtualizedBatch
ETL/ELTTiempo Real
ETL/ELT
Transaccional
/ CDC
Herramientas
BI
Notebooks
Datos Brutos
(Bulk Transport)
Subida de Fichero
/ Objeto
Ingesta de
Streaming
Commits Transaccional
NoSQL
Data Lake
Almacenamiento
de Streaming
Dashboards
Analíticas Batch
Consulta
Interactiva
Machine Learning/
Deep Learning
Analíticas en
Tiempo Real
Ingesta / Recogida
AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
Orquestación / Transformación
Servicios de Big Data de AWS
EMR EC2
S3
RedshiftDynamoDB
AWS DMS (CDC)
AWS Lambda
Kinesis Analytics Amazon Athena
Amazon
QuickSight
AWS Glue AWS Step
Functions
Kinesis
Streams
Ingesta / Recogida
AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
AWS
Snowball
Conectores
a ISV
Kinesis
Firehose
S3 Transfer
Acceleration
= Serverless
Amazon
ElasticSearchAmazon
RDS
Almacenamiento Big Data para todos
Amazon S3
• Guarda todo
• Almacenamiento de Objeto
• Escalable
• Durabilidad 99.999999999%
• Muy bajo coste
Amazon
DynamoDB
Base de datos NoSQL Rápida y Flexible
• Base de datos NoSQL
• Escalabilidad sin límites
• Sin administración
• Latencia de menos de 10 ms
Amazon
Kinesis
Plataforma de Streaming en Tiempo Real
• Streams, Firehose, Analytics
• Procesamiento en Tiempo Real
• Alto rendimiento y Elástico
• Fácil de utilizar
• Integración con S3, EMR,
Redshift, DynamoDB
Amazon Kinesis
Streams
• Para Desarrolladores
• Construye tus propias
aplicaciones a medida
que procesan o analizan
datos de streaming
Amazon Kinesis
Firehose
• Para Desarrolladores y
Científicos de Datos
• Carga de manera fácil
grandes volúmenes de
streaming de datos en S3,
Amazon Redshift y
Amazon Elasticsearch
Amazon Kinesis
Analytics
• Para Desarrolladores y
Científicos de Datos
• Analiza de manera sencilla
streams de datos utilizando
consultas SQL estándar
Amazon Kinesis: Streaming sencillo de datos
AWS Lambda
• Ejecuta código en la nube – completamente
gestionado y con alta disponibilidad
• Activado mediante API o cambios de estado
en el entorno
• Escala automáticamente para manejar la ratio
adecuada de eventos entrantes
• Node.js (JavaScript), Python, Java, y C#
• Se factura por cada 100ms de tiempo
Computación Serverless
AWS Glue
Servicio ETL completamente Gestionado
• Cataloga orígenes de datos
• Identifica formatos de datos y
tipos de datos
• Manejo de errores
• Gestiona y escala recursos
• Genera código ETL
• Planifica, ejecuta jobs de ETL
AWS Glue: servicios
Catálogo de Datos
Repositorio de metadatos compatible con el metastore de Hive.
Navega por los orígenes de datos para inferir tabla, tipo de datos, y
formato de la partición
Ejecución de Jobs
Ejecuta jobs en contenedores Spark – escalado autómatico basado
en SLA.
Glue es serverless – paga sólo por los recursos que consumes
Definición de procesos ETL
Genera código Python para mover los datos de origen a destino
Edita con tu IDE favorito; comparte snippets de código utilizando Git.
• Rápido y nativo en la nube
• Fácil de utilizar, sin infraestructura que
gestionar
• Escala a cientos de miles de usuarios
• Cálculos rápidos con SPICE
• 1/10 del coste de software BI tradicional
Business Intelligence
Amazon
QuickSight
Amazon
Athena
Servicio Interactivo de Consultas
• Consulta directamente sobre
Amazon S3
• Utiliza ANSI SQL
• Serverless
• Múltiples Formatos de datos
• Paga por consulta
RavenPack delivers big data analytics to financial
professionals
80% of big data is unstructured
Only 29% of decisions are based on big data.
RavenPack at a
Glance
80%
29%
Hundreds of thousands of documents, every
day
+300M documents, +20 years of history, ~5.6TB raw
content
Real Time processing -> +83% of documents <
250ms
Top hedge funds and investment banks use RavenPack for trading and risk
management
RavenPack data
processing
RavenPack at AWS
Use Case: Real Time Classification
Amazon
EC2
Amazon
CloudFormation
Amazon
DynamoDB
Amazon
S3Amazon
RDS
Amazon
Elasticsearch
Service
Amazon
Redshift
Amazon
Kinesis
RT Feed
Snapshots
ClassifiersCollectors
Amazon CloudFormation to model the Stack
Amazon S3 for Unlimited, Distributed Storage
Easy redundancy, failover and backup
We now produce more data (3.27x), and produce it faster (31% *)
RavenPack at AWS
Use Case: History Classification
Amazon
EC2
Amazon
CloudFormation
Amazon
DynamoDB
Amazon
S3
Amazon
RDS
Amazon
Redshift
Availability Zone
...
Classifiers
Coordinator
Availability Zone
Servers on Demand, Distributed Storage, Auto Scaling Groups, Spot requests
Independent of RealTime System
Full archive, 100 Classifiers 600 Classifiers → from 6 weeks to 3 days! 1 day!!!
By adopting new AWS Cloud technologies: 92.1% Cost Reduction (+$12k to <$1k)
Latest AWS produced archive is 2.94x bigger than the on-premises produced one
Comfortable managing large
datasets with in-house database
team, and tools ready for Big
Data.
I Want It All
Give Me Just What I Want
BIG DATA
Want to focus on subset of Data
and avoid hassles of huge
database systems.
Over 2.3 billion records
Thousands of Sources
Hosted in the Cloud
Updated in Real-Time
Let’s go into detail
BigData Serverless
Amazon
S3
Amazon
Redshift
Amazon
EC2AWS
Lambda
Amazon
AthenaAmazon
EMR
Download a Custom “Slice” of Analytics Data
Let client specify parameters
Leverage Amazon Athena and Amazon S3
Compression and Multiple Output Formats
Data Set and Time Range
Entities and Events
Filters
Self-Service Platform
Let’s go into detail
BigData Serverless
RPA previous Data Warehouse - Amazon RedShift
Super fast (especially with analytical queries)
24x7 running cluster: Fixed cost per storage, even if not queried
Storage and Computation strictly coupled (Ok.. Spectrum now helps :) )
Excessive workload can affect other Production services
Extracting data out of the Data Warehouse is not straightforward
DataSet Server
Amazon EC2 based system
Custom web application building the query
Amazon
EC2
Amazon
Redshift
Client
Let’s go into detail
BigData Serverless
RPA new DataLake - Lambda Architecture
Speed layer: Amazon Athena + 1-minute json files on S3.
Batch layer: Amazon Athena + Amazon S3 Parquet datalake.
Serving layer: the Dataset server, with extra logic for merging
the two layers above.
Amazon
EC2
Client
Amazon
Athena
Batch layer
Parquet datalake
Speed layer
JSON datalake
Let’s go into detail
BigData Serverless
DataLake Ingestion & Consolidation
RealTime data ingestion from Kinesis
Consolidation: Amazon EMR automated cluster
Presto + Hive
Future: AWS Glue
Amazon
EMR
Amazon
Athena
Batch layer
Parquet datalake
Speed layer
JSON datalake
Amazon
Kinesis
Let’s go into detail
BigData Serverless
Data Formats - Comparing Parquet compression in Amazon Athena
Input Dataset: 27.1M rows - 7.1GB csv file
DataSet size: 679.5MB vs 1322.7MB - 51.3% of S3 storage
Analytic query - Time: 3.37 seconds vs 2.83 seconds - 19% slower, Data Scanned (Cost) 35.26MB vs 85.52MB - 58.8% of query cost
savings
Massive select query - Time: 182 seconds vs 176 seconds - 3.4% slower, Data Scanned (Cost) 423.MB vs 1.29GB - 68% of query
cost savings
Serverless DataLake vs Analytical Database (Amazon RedShift)
Same performance than Athena: Amazon RedShift cluster, 22x dc1.large nodes (~ $4000 / month)
Athena - S3 cost: $83 - Execution: up to $3917 - We could scan the whole dataset 217 times (Partitioning, compression...)
Real user queries:
Amazon RedShift 13.0 secs, Amazon Athena: 11.9 sec - $0.03637
Amazon Redshift: 0.95 sec, - Amazon Athena: 4.26 sec - $0.00063
Some metrics!
Let’s go into detail
BigData Serverless
Decoupling DB Engine from Storage. Data can grow without affecting performance
Client side applications attack a dedicated, serverless system. Scalability is managed by AWS, not by RavenPack
We bill our service in a similar way than we are billed by AWS. No surprises in cost. Known operational business
margin.
Reduction of operational fixed costs by 28% (reducing number of RedShift nodes and choosing Athena for this use
case)
Summarizing
Análitica en Tiempo Real
Productor
Apache
Kafka
KCL
AWS
Lambda
Spark
Streaming
Apache
Storm
Amazon
SNS
Notificaciones
Amazon
ElastiCache
Amazon
DynamoDB
Amazon
RDS
Amazon
ES
Alerta
Salida
Analítica KPI
Serverless
Gestionado
DynamoDB
Streams
Kinesis
Streams
Virtualizado
Kinesis
Analytics
Ingesta / Recogida AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
Apache
FlinkSQS
Consultas Interactivas
Ingesta / Recogida AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
Productor Amazon S3
Amazon
Redshift
Amazon EMR
Presto
Impala
Spark
Amazon
Athena
Serverless
Gestionado
Virtualizado
QuickSight
ETL Serverless
Almacenamiento Transformación AlmacenamientoAnálisis /
ProcesamientoVisualización /
Consumo
Amazon S3
Apache
Kafka
Kinesis
Streams Amazon EMR
Spark
Flink
AWS Glue
AWS Lambda
ISV
Amazon S3
Apache
Kafka
Redshift
Kinesis
Streams
Catálogo de
DatosAWS Glue
DynamoDB
Streams
DynamoDB Hive M/D
Catalog & SearchAccess and search metadata
Access & User InterfaceGive your users easy and secure access
DynamoDB Elasticsearch API Gateway Identity & Access
ManagementCognito
QuickSight Amazon AI EMR Redshift
Athena Kinesis RDS
Central StorageSecure, cost-effective
Storage in Amazon S3
S3
Snowball Database Migration Service
Kinesis Firehose Direct Connect
Data IngestionGet your data into S3
Quickly and securely
Protect and SecureUse entitlements to ensure data is secure and users’ identities are verified
Processing & AnalyticsUse of predictive and prescriptive
analytics to gain better understanding
Security Token Service
CloudWatch CloudTrail Key Management
Service
Arquitectura de Referencia de Data Lake
= Serverless
Amazon S3
Data Lake
Amazon Kinesis
Streams & Firehose
Hadoop / Spark
Herramientas de Analíticas de Streaming
Amazon Redshift
Data Warehouse
Amazon DynamoDB
Base de datos NoSQL
AWS Lambda
Spark Streaming
en EMR
Amazon
Elasticsearch Service
Base de Datos
Relacional
Amazon EMR
Amazon Aurora
Amazon Machine Learning
Análisis Predictivo
Any Open Source Tool
of Choice on EC2
Sandbox de Data
Science
Visualización /
Informes
Apache Storm
en EMR
Apache Flink
en EMR
Amazon Kinesis
Analytics
Serving Tier
Consulta SQL sin
clúster
Amazon Athena
Orí
ígenes
de D
ato
sD
ato
sT
ransaccio
nale
s
Amazon Glue
ETL sin clúster
Amazon ElastiCache
Redis
Data Lake y
Analítica en
Tiempo Real
Amazon
Quicksight
Serverless encaja perfectamente en las
plataformas de big data
• Servicios de Big Data Serverless de AWS
• Complementa los servicios de big data existentes
• Permite mantener el foco en la analítica y no en la
infraestructura o los servidores
• Permite no preocuparse del escalado o la disponibilidad
• Paga únicamente por lo que usas
• Prueba de manera sencilla diferentes herramientas,
analíticas y soluciones
Siguientes pasos
• Big Data on AWS: https://aws.amazon.com/big-data/
• Serverless on AWS: https://aws.amazon.com/serverless/
• Big Data Blog: https://aws.amazon.com/blogs/big-data/
• Big Data – AWS Answers – Data Lake:
https://aws.amazon.com/answers/big-data/