arquitecturas serverless para big data - cloud object … · definición de procesos etl genera...

43
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pedro Romera, Solutions Architect 21 Septiembre 2017 Arquitecturas Serverless para Big Data

Upload: donhu

Post on 08-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

© 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

¿Qué temperatura tienen tus datos?

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

Principales servicios Serverless

para Big Data

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

Madrid, Sept 21st

Self-Service dataset platform using server-less datalakes

Agenda

01What is

RavenPack?02 RavenPack at

AWS03 BigData

Serverless!

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

Thanks for listening!

Jose Luis Cruz: [email protected]

Patrones de Diseño Serverless

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

AWS Answers: Data Lake en AWS

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/

¡Gracias!

#AWSSummit

Síguenos en Twitter: @awscloud_es