O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Patrones de Arquitectura para Big Data en AWS

1.268 visualizações

Publicada em

Obtenga las instrucciones necesarias sobre arquitectura para crear sus aplicaciones de big data y aproveche al máximo la infraestructura de nube de AWS.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Patrones de Arquitectura para Big Data en AWS

  1. 1. Alejandro Flores, Arquitecto de soluciones de AWS Abril 2017 Patrones de Arquitectura para Big Data en AWS © 2016, Amazon Web Services, Inc. o sus empresas afiliadas. Todos los derechos reservados.
  2. 2. Agenda Desafíos de Big Data Simplificación del procesamiento de Big Data ¿Qué tecnologías se deben usar? • ¿Por qué? • ¿Cómo? Arquitectura de referencia Patrones de diseño
  3. 3. Aumento constante de Big Data
  4. 4. Evolución de Big Data Por lotes En tiempo real Predicción
  5. 5. Innumerables herramientas Amazon Glacier S3 DynamoDB RDS EMR Amazon Redshift Data Pipeline Amazon Kinesis CloudSearch Apl. habilitada para Kinesis Lambda ML SQS ElastiCache DynamoDB Streams
  6. 6. ¿Existe una arquitectura de referencia? ¿Qué herramientas debo usar? ¿Cómo? ¿Por qué?
  7. 7. Principios arquitectónicos “Bus de datos” desacoplado • Datos → Almacenamiento → Procesamiento → Respuestas Uso de la herramienta adecuada para cada tarea • Estructura de datos, latencia, rendimiento, patrones de acceso Aprovechamiento de los servicios administrados de AWS • Sin intervención del administrador o muy poca, escalable/elástico,disponible,confiable,seguro Big Data ≠ costo elevado
  8. 8. Simplificación del procesamiento de Big Data adquirir/recopilar almacenar procesar/ analizar consumir/visualizar Tiempo de respuesta (latencia) Rendimiento Costo
  9. 9. Adquirir/ recopilar
  10. 10. Tipos de datos Transaccionales • Lecturas y escrituras de base de datos (OLTP) • Caché De búsqueda • Registros • Flujos De archivos • Archivos de registro (/var/log) • Recopiladores y marcos de trabajo de registros De streaming • Registros • Sensores y datos de Internet de las cosas (IoT) Base de datos Almace- namiento de archivos Almace- namiento en streaming A iOS Android Aplicaciones web Logstash RegistroIoTAplicaciones Datos transaccionales Datos de archivos Datos de streaming Aplica- ciones móviles Datos de búsqueda Búsqueda Recopilar Almacenar RegistroIoT
  11. 11. ¿Cuál es la temperatura de sus datos y del acceso?
  12. 12. Calientes Templados Fríos Volumen MB–GB GB–TB PB Tamaño de elemento B–KB KB–MB KB–TB Latencia ms ms, s min, h Durabilidad Baja–alta Alta Muy alta Velocidad de solicitudes Muy alta Alta Baja Costo/GB $$-$ $-¢¢ ¢ Datos calientes Datos templados Datos fríos Características de los datos y el acceso: calientes, templados, fríos
  13. 13. Almacenar
  14. 14. Almacenamiento en streaming A iOS Android Aplicaciones web Logstash Amazon RDS Amazon DynamoDB Amazon ES Amazon S3 Apache Kafka Amazon Glacier Amazon Kinesis Amazon DynamoDB Amazon ElastiCache BúsquedaSQLNoSQLCachéAlmacenamiento enstreaming Almacenamie ntode archivos Datos transaccionales Datos de archivos Datos de streaming Aplica- ciones móviles Datos de búsqueda Recopilar Almacenar RegistroIoTAplicaciones 
  15. 15. Opciones de almacenamiento en streaming Servicios administrados de AWS • Amazon Kinesis → flujos • DynamoDB Streams → tabla + flujos • Amazon SQS → cola • Amazon SNS → Pub/Sub No administrados • Apache Kafka → streaming
  16. 16. Motivos para usar el software en streaming Desacoplamiento de productores y consumidores Búfer persistente Recopilación de varios flujos Conservación de orden en cliente MapReduce en streaming Consumo en paralelo 4 4 3 3 2 2 1 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 4 3 3 2 2 1 1 Fragmento 1/partición 1 Fragmento 2/partición 2 Consumidor 1 Recuento de rojos = 4 Recuento de violetas = 4 Consumidor 2 Recuento de azules = 4 Recuento de verdes = 4 Flujo de DynamoDB Flujo de Kinesis Tema de Kafka
  17. 17. ¿Qué almacenamiento en streaming debo usar? Amazon Kinesis DynamoDB Streams Amazon SQS Amazon SNS Kafka Administrado Sí Sí Sí No Orden Sí Sí No Sí Entrega al menos una vez exactamente una vez al menos una vez al menos una vez Período de retención 7 días 24 horas 14 días Configurable Replicación 3 AZ 3 AZ 3 AZ Configurable Rendimiento Sin límite Sin límite Sin límite Nodos aprox. Clientes en paralelo Sí Sí No (SQS) Sí MapReduce Sí Sí No Sí Tamaño de registro 1 MB 400 KB 256 KB Configurable Costo Bajo Mayor (costo de tabla) Bajo-medio Bajo (+ admin.)
  18. 18. Almacenamiento de archivos A iOS Android Aplicaciones web Logstash Amazon RDS Amazon DynamoDB Amazon ES Amazon S3 Apache Kafka Amazon Glacier Amazon Kinesis Amazon DynamoDB Amazon ElastiCache BúsquedaSQLNoSQL Caché Almacenamiento enstreaming Almacenamiento dearchivos Datos transaccionales Datos de archivos Datos de streaming Aplica- ciones móviles Datos de búsqueda Recopilar Almacenar RegistroIoTAplicaciones 
  19. 19. ¿Por qué Amazon S3 es idóneo para Big Data? • Es compatible de forma nativa con flujos de Big Data (Spark, Hive, Presto, etc.). • No requiere ejecutar clústers informáticos para el almacenamiento (al contrario que HDFS). • Permite ejecutar clústers de Hadoop transitorios e instancias de subasta de Amazon EC2. • Distintos clústers (Spark, Hive, Presto) pueden usar los mismos datos. • Admite un número ilimitado de objetos. • Presenta un ancho de banda muy alto, sin límite de rendimiento total. • Ofrece alta disponibilidad con tolerancia a errores entre diferentes AZ. • Se ha diseñado para una durabilidad del 99,999999999%. • Usa almacenamiento por capas (Standard, IA, Amazon Glacier) mediante política de ciclo de vida. • Es seguro: cifrado SSL en reposo en los lados de cliente y servidor. • Tiene un costo bajo.
  20. 20. Aplicaciones de HDFS y Amazon Glacier • Use HDFS para los datos a los que se accede con mucha frecuencia (calientes). • Use Amazon S3 Standard para los datos a los que se accede con frecuencia. • Use Amazon S3 Standard – IA para los datos a los que se accede con poca frecuencia. • Use Amazon Glacier para archivar datos inactivos (fríos).
  21. 21. Base de datos y búsqueda A iOS Android Aplicaciones web Logstash Amazon RDS Amazon DynamoDB Amazon ES Amazon S3 Apache Kafka Amazon Glacier Amazon Kinesis Amazon DynamoDB Amazon ElastiCache BúsquedaSQLNoSQLCachéAlmacenamientoenstreamingAlmacenamientodearchivos Datos transaccionales Datos de archivos Datos de streaming Aplica- ciones móviles Datos de búsqueda Recopilar Almacenar 
  22. 22. Prácticas de uso no recomendadas de la capa de base de datos y búsqueda Capa de base de datos y búsqueda
  23. 23. Práctica recomendada: uso de la herramienta adecuada para cada tarea Capa de datos Búsqueda Amazon Elasticsearch Service Amazon CloudSearch Caché Redis Memcached SQL Amazon Aurora MySQL PostgreSQL Oracle SQL Server NoSQL Cassandra Amazon DynamoDB HBase MongoDB Capa de base de datos y búsqueda
  24. 24. Vistas materializadas Amazon ES
  25. 25. ¿Qué almacenamiento de datos debo usar? Estructura de datos → Esquema fijo, JSON, llave-valor Patrones de acceso → Almacene los datos en el formato bajo el cuál de vaya a accesar a ellos. Características de los datos y el acceso → Calientes, templados, fríos Costo → Costo adecuado
  26. 26. Patrones de estructura y acceso de los datos Patrones de acceso ¿Qué se usa? Put/Get (clave, valor) Caché, NoSQL Relaciones simples → 1:N, M:N NoSQL Uniones de tablas cruzadas, transacciones, SQL SQL Facetas, búsqueda Búsqueda Estructura de datos ¿Qué se usa? Esquema fijo SQL, NoSQL Sin esquema (JSON) NoSQL, búsqueda (Clave, valor) Caché, NoSQL
  27. 27. Caché SQL Velocidad de solicitudes Alta Baja Costo/GB Alto Bajo Latencia Baja Alta Volumen de datos Bajo Alto Glacier Estructura NoSQL Datos calientes Datos templados Datos fríos Baja Alta Búsqueda
  28. 28. Amazon ElastiCache Amazon DynamoDB Amazon Aurora Amazon Elasticsearch Amazon EMR (HDFS) Amazon S3 Amazon Glacier Latencia media ms ms ms, s ms, s s, min, h ms, s, min (tamaño aprox.) h Volumen de datos GB GB–TB (sin límite) GB–TB (64 TB máx.) GB–TB GB–PB (nodos aprox.) MB–PB (sin límite) GB–PB (sin límite) Tamaño de elemento B-KB KB (400 KB máx.) KB (64 KB) KB (1 MB máx.) MB-GB KB-GB (5 TB máx.) GB (40 TB máx.) Velocidad de solicitudes Alta - muy alta Muy alta (sin límite) Alta Alta Baja – muy alta Baja – muy alta (sin límite) Muy baja Costo de almacenamiento GB/mes $$ ¢¢ ¢¢ ¢¢ ¢ ¢ ¢/10 Durabilidad Baja - moderada Muy alta Muy alta Alta Alta Muy alta Muy alta Datos calientes Datos templados Datos fríos Datos calientes Datos templados Datos fríos ¿Qué almacenamiento de datos debo usar?
  29. 29. Diseño con control de costos Ejemplo: ¿Debo usar Amazon S3 o Amazon DynamoDB? “En este momento estoy determinando el alcance de un proyecto que aumentará de forma drástica el uso de Amazon S3 por parte de mi equipo. Espero que me puedan resolver algunas dudas. La iteración actual del diseño requiere muchos archivos pequeños, con un posible máximo aproximado de mil millones en hora punta. El tamaño total se situaría en torno a 1,5 TB al mes…” Velocidad de solicitudes (escrituras/s) Tamaño de objeto (bytes) Tamaño total (GB/mes) Objetos al mes 300 2 048 1 483 777 600 000
  30. 30. Diseño con control de costos Ejemplo: ¿Debo usar Amazon S3 o Amazon DynamoDB? https://calculator.s3.amazonaws.com/index.html Simple Monthly Calculator
  31. 31. Velocidad de solicitudes (escrituras/s) Tamaño de objeto (bytes) Tamaño total (GB/mes) Objetos al mes 300 2 048 1 483 777 600 000 ¿Amazon S3 o Amazon DynamoDB?
  32. 32. Velocidad de solicitudes (escrituras/s) Tamaño de objeto (bytes) Tamaño total (GB/mes) Objetos al mes Escenario 1 300 2 048 1 483 777 600 000 Escenario 2 300 32 768 23 730 777 600 000 Amazon S3 Amazon DynamoDB usar usar
  33. 33. Procesar/ analizar
  34. 34. Analizar A iOS Android Aplicaciones web Logstash Amazon RDS Amazon DynamoDB Amazon ES Amazon S3 Apache Kafka Amazon Glacier Amazon Kinesis Amazon DynamoDB Amazon Redshift Impala Pig Amazon ML Amazon Kinesis AWS Lambda AmazonElasticMapReduce Amazon ElastiCache BúsquedaSQLNoSQLCaché Procesamientode streaming Por lotes Interactivo Registro Almacenamientoen streaming IoTAplicaciones Almacenamientode archivos Caliente s Fríos Templado s Caliente s Caliente s ML Datos transaccionales Datos de archivos Datos de streaming Aplica- ciones móviles Datos de búsqueda Recopilar Almacenar Analizar   Streaming
  35. 35. Procesar/analizar El análisis de datos es un proceso que consiste en inspeccionar, limpiar, transformar y modelar los datos con el objetivo de descubrir información útil, sugerir conclusiones y respaldar la toma de decisiones. Ejemplos Paneles interactivos → Análisis interactivo Informes diarios/semanales/mensuales → Análisis por lotes Alertas de facturación/fraude, métricas de 1 minuto → Análisis en tiempo real Análisis de opinión, modelos de predicción → Aprendizaje automático
  36. 36. Análisis interactivo Utiliza gran cantidad de datos (calientes/fríos) Tarda segundos en obtener respuestas Ejemplo: Paneles de autoservicio
  37. 37. Análisis por lotes Utiliza gran cantidad de datos (calientes/fríos) Tarda minutos u horas en obtener respuestas Ejemplo: Generación de informes diarios, semanales o mensuales
  38. 38. Análisis en tiempo real Utiliza una cantidad reducida de datos calientes y hace preguntas. Tarda poco tiempo (milisegundos o segundos) en obtener la respuesta. Tiempo real (evento) • Respuesta en tiempo real a eventos de los flujos de datos • Ejemplo: Alertas de facturación/fraude Casi en tiempo real (microlotes) • Operaciones casi en tiempo real con pequeños lotes de eventos de los flujos de datos • Ejemplo: Métricas de 1 minuto
  39. 39. Predicciones mediante aprendizaje automático El aprendizaje automático permite a un equipo informático aprender sin haberlo programado expresamente para ello. Algoritmos de aprendizaje automático: Aprendizaje supervisado ← programa de “enseñanza” - Clasificación ← ¿Es una transacción fraudulenta? (sí/no) - Regresión ← ¿Cuál es su valor en la vida útil del cliente? Aprendizaje no supervisado ← La máquina aprende por sí misma - Agrupación de clústeres ← Segmentación de mercado
  40. 40. Herramientas y marcos de trabajo de análisis Aprendizaje automático (AA) • Mahout, Spark ML, Amazon ML Análisis interactivo • Amazon Redshift, Presto, Impala, Spark Procesamiento de lotes • MapReduce, Hive, Pig, Spark Procesamiento de streaming • Microlotes: Spark Streaming, KCL, Hive, Pig • En tiempo real: Storm, AWS Lambda, KCL Amazon Redshift Impala Pig Amazon Machine Learning Amazon Kinesis AWS Lambda AmazonElasticMapReduce Procesamientode streaming Por lotes InteractivoAA Analizar Streaming
  41. 41. ¿Qué tecnología de procesamiento de streaming debo usar? Spark Streaming Apache Storm Amazon Kinesis Client Library AWS Lambda Amazon EMR (Hive, Pig) Escala/ rendimiento Nodos aprox. Nodos aprox. Nodos aprox. Automático Nodos aprox. Por lotes o en tiempo real En tiempo real En tiempo real En tiempo real En tiempo real Por lotes Facilidad de administración Sí (Amazon EMR) Hágalo usted mismo Amazon EC2 + Auto Scaling Administrado por AWS Sí (Amazon EMR) Tolerancia a errores Una AZ Configurable Varias AZ Varias AZ Una AZ Lenguajes de programación Java, Python, Scala Cualquier lenguaje mediante Thrift Java, mediante MultiLangDaemon (.Net, Python, Ruby, Node.js) Node.js, Java, Python Hive, Pig, lenguajes de streaming Alta
  42. 42. ¿Qué tecnología de procesamiento de datos debo usar? Amazon Redshift Impala Presto Spark Hive Latencia de consultas Baja Baja Baja Baja Media (Tez) – Alta (MapReduce) Durabilidad Alta Alta Alta Alta Alta Volumen de datos 1,6 PB máx. Nodos aprox. Nodos aprox. Nodos aprox. Nodos aprox. Administrada Sí Sí (EMR) Sí (EMR) Sí (EMR) Sí (EMR) Almacenamiento Nativo HDFS/S3A* HDFS/S3 HDFS/S3 HDFS/S3 Compatibilidad con SQL Alta Media Alta Baja (SparkSQL) Media (HQL) AltaMedia
  43. 43. Consumir/ visualizar
  44. 44. Recopilar Almacenar Analizar Consumir A iOS Android Aplicaciones web Logstash Amazon RDS Amazon DynamoDB Amazon ES Amazon S3 Apache Kafka Amazon Glacier Amazon Kinesis Amazon DynamoDB Amazon Redshift Impala Pig Amazon ML Amazon Kinesis AWS Lambda AmazonElasticMapReduce Amazon ElastiCache BúsquedaSQLNoSQL Caché Procesamientode streaming Por lotes Interactivo Registro Almacenamientoen streaming IoTAplicaciones Almacenamientode archivos Análisisyvisualización Calientes Fríos Templados Caliente s Lento Calientes AA Rápid o Rápid o Datos transaccionales Datos de archivos Datos de streaming Blocsdenotas Predicciones Aplicaciones y API Aplica- ciones móviles IDE Datos de búsqueda ETL Streaming Amazon QuickSight
  45. 45. Resumen global
  46. 46. Recopilar Almacenar Analizar Consumir A iOS Android Aplicaciones web Logstash Amazon RDS Amazon DynamoDB Amazon ES Amazon S3 Apache Kafka Amazon Glacier Amazon Kinesis Amazon DynamoDB Amazon Redshift Impala Pig Amazon ML Amazon Kinesis AWS Lambda AmazonElasticMapReduce Amazon ElastiCache BúsquedaSQLNoSQLCaché ProcesamientodestreamingPor lotes Interactivo Registro Almacenamientoen streaming IoTAplicaciones Almacenamientode archivos Análisisyvisualización Caliente s Fríos Templados Caliente s Lento Calientes AA Rápido Rápido Datos transaccionales Datos de archivos Datos de streaming Blocsdenotas Predicciones Aplicaciones y API Aplica- ciones móviles IDE Datos de búsqueda ETL Arquitectura de referencia Streaming Amazon QuickSight
  47. 47. Patrones de diseño
  48. 48. “Bus de datos” desacoplado de varias fases Varias fases Almacenamiento desacoplado del procesamiento Almacenar Procesar Almacenar Procesar procesar almacenar
  49. 49. Varias aplicaciones de procesamiento (o conectores) pueden leer o escribir en varios almacenes de datos Amazon Kinesis AWS Lambda Amazon DynamoDB Conector de Amazon Kinesis - S3 procesar almacenar Amazon S3
  50. 50. Marcos de trabajo de procesamiento (KCL, Storm, Hive, Spark, etc.) que pueden leer varios almacenes de datos Amazon Kinesis AWS Lambda Amazon S3 Amazon DynamoDB Hive SparkStorm Conector de Amazon Kinesis - S3 procesar almacenar
  51. 51. Análisis en tiempo real Productor Apache Kafka KCL AWS Lambda Spark Streaming Apache Storm Amazon SNS Amazon ML Notificaciones Amazon ElastiCache (Redis) Amazon DynamoDB Amazon RDS Amazon ES Alerta Estado de apl. Predicción en tiempo real KPI procesar almacenar DynamoDB Streams Amazon Kinesis
  52. 52. Análisis interactivo y por lotes Productor Amazon S3 Amazon EMR Hive Pig Spark Amazon ML procesar almacenar Consumir Amazon Redshift Amazon EMR Presto Impala Spark Por lotes Interactivo Predicción por lotes Predicción en tiempo real
  53. 53. ¡Gracias! Encontrará guías de introducción, tutoriales y laboratorios en: aws.amazon.com/big-data

×