big data y las apis (big data spain)

47
El mundo Big Data y las APIs Marco Antonio Sanz

Upload: meetup

Post on 04-Aug-2015

261 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: Big data y las apis (big data spain)

El mundo Big Data y las APIs

Marco Antonio Sanz

Page 2: Big data y las apis (big data spain)

Índice

❏ ¿Quienes somos?❏ ¿Por qué unir Big Data y las Apis?❏ ¿Qué es Big Data?❏ Las 4 Vs❏ Bases de datos noSQL❏ Datawarehouses Big Data❏ Arquitectura Lambda❏ Arquitectura de Apis❏ Ejemplos❏ Mashups

Page 3: Big data y las apis (big data spain)

¿Quienes somos?

Grupo de meetuphttp://www.meetup.com/API-Addicts/

Meetups realizados❏ MADA. Metodología ágil de

definición de APIs❏ Taller de definición de APIs❏ Desarrolla tu primera API❏ Seguridad en las APIs❏ Las Apis como modelo de negocio❏ El Mundo Cloud y las APis

Marco Antonio Sanz:http://es.linkedin.com/pub/marco-antonio-sanz-molina-prados/18/335/97/

Page 4: Big data y las apis (big data spain)

Patrocinadores

www.cloudappi.net¿qué nos ofrece?➢ know - how de apis➢ ejemplos de arquitecturas

PRÓXIMAMENTE

Page 5: Big data y las apis (big data spain)

➢ Del internet de las cosas...

¿Cómo se van a conectar?

Internet de las APIs

¿Por qué unir Big Data y las Apis?

Page 6: Big data y las apis (big data spain)

¿Qué se hacía antes del Big Data?

¿Qué es Big Data?

➢ Clusters➢ Optimización de servidores de aplicaciones

(cacheo, …)➢ Optimización de servidores de base de datos

(vistas, vistas materializadas..)➢ Data Warehouses (OBI, Mondrian…)➢ ETLs (OBI, Kettle…)

Page 7: Big data y las apis (big data spain)

¿Qué es Big Data?

¿Qué es Big Data?

➢ Conjunto de tecnologías que permiten la acumulación masiva de datos.

Page 8: Big data y las apis (big data spain)

Convirtiendo Big Data en Valor

The Four V’s

http://www.slideshare.net/BernardMarr/140228-big-data-slide-share

Page 9: Big data y las apis (big data spain)

CAP

● Consistencia fuerte (la C en ACID y CAP). ● Disponibilidad o Availability (la A de CAP

pero no en ACID). ● Tolerancia a fallos (la P en CAP, en inglés

Partition Tolerance).

Bases de datos noSQL

https://eamodeorubio.wordpress.com/2010/05/17/nosql-2-no-necesitas-acid/

Page 11: Big data y las apis (big data spain)

Arquitecturas

Bases de datos noSQL

Page 12: Big data y las apis (big data spain)

Llave / Valor

Bases de datos noSQL

La arquitectura Llave/Valor consta en una llave como “Colonia” que se asocia con un valor “Centro”. Estas estructuras pueden ser utilizadas como colecciones, diccionarios, arreglos asociados o caches. Las búsquedas realizadas en este tipo de estructuras son rápidas ya que funcionan bajo el concepto de tablas hash. Considerando la ausencia de índices, este tipo de estructuras no son útiles para realizar operaciones complejas con los datos, solo soportan sentencias simples de creación, lectura, actualización y eliminación.

Page 13: Big data y las apis (big data spain)

Llave / Valor - Cassandra

Bases de datos noSQL

Apache Cassandra es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java.

Permite grandes volúmenes de datos en forma distribuida. Por ejemplo, lo usa Twitter para su plataforma.

Su objetivo principal es la escalabilidad lineal y la disponibilidad. La arquitectura distribuida de Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo P2P con lo que la redundancia es máxima.

Cassandra está desarrollada por Apache Software Foundation.

Page 14: Big data y las apis (big data spain)

Llave / Valor - Redis

Bases de datos noSQL

Redis es Open Source, con licencia BSD, que permite el almacenamiento clave valor tanto en memoria como en disco.

Las claves pueden contener texto, hashes, listas, conjuntos, bitmaps o hyperlogs.

Permite suscribirse a la información, por lo que n clientes pueden recibir la información al momento.

Page 15: Big data y las apis (big data spain)

Orientadas a Documentos

Bases de datos noSQL

La arquitectura basada en documentos utiliza una estructura compleja de datos denominada documento para almacenar los campos de cada registro. Se pueden generar arreglos de registros o anidamientos de documentos. Estas estructuras de datos son del tipo JavaScript Object Notation (JSON), XML o BSON o del tipo binario como PDF

Page 16: Big data y las apis (big data spain)

MongoDB

Bases de datos noSQL

Sistema de base de datosNoSQL orientado a documentos, desarrollado bajo el concepto de código abierto.

MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.

Posee algunas características de las bases de datos tradicionales, como transaccionalidad a nivel de documento, índices…

Además, permite un escalamiento horizontal.

Page 17: Big data y las apis (big data spain)

Columnar

Bases de datos noSQL

El modelo de columnar utiliza el esquema de llave/valor para almacenar la información pero introduce un patrón de jerarquías y un semi-esquema para ordenar y almacena los datos, generando las columnas por la que es llamada esta arquitectura. Las filas contenidas en esta base de datos pueden variar, es decir pueden contener un número diferente de campos ya que es una propiedad de los registros llave/valor. Las tablas de estas bases de datos deben ser declaradas, lo cual amarra a este tipo de bases a la presencia de esquemas definidos para trabajar los datos.

Page 18: Big data y las apis (big data spain)

Columnar - DynamoDB

Bases de datos noSQL

Amazon DynamoDB es un servicio de base de datos NoSQL rápido y flexible para todas las aplicaciones que requieren latencias de milisegundos de un solo dígito constantes a cualquier escala. Se trata de una base de datos totalmente gestionada compatible con modelos de datos de valor de clave y de documentos. Su modelo de datos flexible y su rendimiento fiable la convierten en una herramienta ideal para móviles, web, juegos, tecnología publicitaria, Internet de las cosas (IoT) y muchas otras aplicaciones.

Page 19: Big data y las apis (big data spain)

Grafos

Bases de datos noSQL

Las bases de datos de grafos reconocen entidades en un negocio o dominio, y explícitamente siguen las relaciones entre estas. Las entidades reciben el nombre de nodos y las relaciones el nombre de aristas. Nuevas aristas pueden ser agregadas en cualquier momento, permitiendo relaciones uno a muchos o muchos a muchos de una manera sencilla, evitando el uso de tablas intermedias para la representación de esta unión, como será en el caso en una base de datos relacional. Estas bases de datos se enfocan más en las relaciones de los datos, más que en las características de sus valores.

Page 20: Big data y las apis (big data spain)

Grafos - neo4j

Bases de datos noSQL

Neo4j es altamente escalable, robusta base de datos orientada a grafos (full ACID) . Es utilizada por miles de startups, compañías y gobiernos. Sus características principales son las siguiente:

➢ Alto rendimiento para datos altamente conectados.

➢ Alta disponibilidad en Clúster.

➢ Cypher, un lenguaje de queries para grafos.

➢ ETL, fácil importar a través de un CSV

➢ Backups en caliente y monitorización avanzada.

Page 21: Big data y las apis (big data spain)

Big Query

➢ Big Query permite que los datos puedan ser consumidos y utilizados utilizando SQL - like queries que utilizan la infraestructura de Google para realizar computación paralela.

DWS Big Data

https://cloud.google.com/bigquery/what-is-bigquery

Page 22: Big data y las apis (big data spain)

Amazon Redshift

➢ Amazon Redshift es una solución rápida y totalmente gestionada de almacén de datos a escala de petabytes que permite analizar todos los datos empleando de forma sencilla y rentable las herramientas de inteligencia empresarial de que ya disponga.

DWS Big Data

http://aws.amazon.com/es/redshift/

Page 23: Big data y las apis (big data spain)

Hadoop

➢ Es una framework que permite la computación de dataset con gran cantidad de datos usando modelos de programación simple.

➢ Está diseñado para escalar hasta ciento de máquinas.

➢ La arquitectura está diseñada para detectar y manejar fallos en la capa de aplicación.

Procesando los datos

http://hadoop.apache.org/

Page 24: Big data y las apis (big data spain)

AWS Elastic Map Reduce

➢ Es un web service que hace más fácil el proceso de ingentes cantidades de datos. Amazon EMR usas Hadoop, para distribuir los datos a través del clúster formado por Amazon EC2.

➢ También puede ejecutar otros frameworks como Spark y Presto.

Procesando batch

http://aws.amazon.com/elasticmapreduce/

Page 25: Big data y las apis (big data spain)

Storm

Es una tecnología open source que permite el procesamiento en tiempo real de datos.El funcionamiento es simple, va procesando millones de tuplas por segundo, en una arquitectura escalable, orientada a fallos que garantiza que tus datos van a ser procesados

Procesamiento online

https://storm.apache.org/

Page 26: Big data y las apis (big data spain)

Storm

Procesamiento online

https://storm.apache.org/

Page 27: Big data y las apis (big data spain)

Descripción

Es un conjunto de principios para una arquitectura de sistemas Big Data en Tiempo Real.

Tres capas:

❏ Batch layer

❏ Serving layer

❏ Speed layer

Arquitectura Lambda

https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en-tiempo-real/

Page 28: Big data y las apis (big data spain)

Batch Layer

Almacena en HDFS el dataset maestro que es inmutable y constantemente creceCrear vistas arbitrarias desde este

dataset vía MapReduce (Hive, Pig,…).

Arquitectura Lambda

https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en-tiempo-real/

Page 29: Big data y las apis (big data spain)

Serving Layer

Se encarga de indexar y exponer las vistas para que puedan ser consultadas.Como las Vistas Batch son estáticas esta Capa sólo necesita proveer lecturas y para eso puede usar Impala, Stinger,…

Arquitectura Lambda

https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en-tiempo-real/

Page 30: Big data y las apis (big data spain)

Speed Layer

Computa Vistas cuando llegan los datos.Esta Capa sirve para compensar la alta latencia de la Capa Batch generando vistas en tiempo real usando pj Storm

Arquitectura Lambda

https://unpocodejava.wordpress.com/2013/09/07/arquitectura-lambda-principios-de-arquitectura-para-sistemas-big-data-en-tiempo-real/

Page 31: Big data y las apis (big data spain)

Al desarrollar una API

➢ Selección de la base de datos noSQL según el teorema CAP. Pueden coexistir bases de datos noSQL con SQL.

➢ Utilizar el mundo cloud como base.➢ Utilizar las tecnologías que mejor se ajusten a tu negocio (tener

en cuenta arquitectura Lambda).➢ Usar formato ligeros de datos (por ejemplo, peticiones rest).➢ No utilizar sesión en las peticiones.➢ Al invocar servicios de terceros se deben realizar siempre de

forma asíncrona

Arquitectura de Apis

Page 32: Big data y las apis (big data spain)

Ejemplos: Twitter

Arquitectura de Apis

➢ Red social que permite dejar mensajes de 140 caracteres.

source:http://www.slideshare.net/raffikrikorian/qcon-nyc-2012-twitters-real-time-architecture

Page 33: Big data y las apis (big data spain)

Ejemplos: Twitter

Arquitectura de Apis

Page 34: Big data y las apis (big data spain)

Ejemplos: NetFlix

Arquitectura de Apis

➢ Empresa que proporciona contenidos digitales

➢ Cerró su API en Marzo 2013

Page 35: Big data y las apis (big data spain)

Ejemplos: NetFlix

Arquitectura de Apis

Page 36: Big data y las apis (big data spain)

Ejemplos: QuickBlox

Arquitectura de Apis

➢ Es una solución PaaS diseñada para simplificar el desarrollo de aplicaciones móviles.

Page 37: Big data y las apis (big data spain)

Ejemplos: QuickBlox

Arquitectura de Apis

Page 38: Big data y las apis (big data spain)

Ejemplos: Linkedin

Arquitectura de Apis

➢ Obtener distancia entre usuarios

Source: https://engineering.linkedin.com/real-time-distributed-graph/using-set-cover-algorithm-optimize-query-latency-large-scale-distributed

Page 39: Big data y las apis (big data spain)

Ejemplos: Smartvel

Arquitectura de Apis

➢ Obtiene eventos en destino

Source: http://www.smartvel.com/

Page 40: Big data y las apis (big data spain)

Ejemplos: Mobdala

Arquitectura de Apis

➢ Permite realizar tracking de tu aplicación y enviar mensajes geolocalizados

Source: http://www.mobdala.com/

Page 41: Big data y las apis (big data spain)

¿qué son?

➢ Aplicación web que usa contenido de más de una fuente y que generalmente

➢ Su principal característica es combinación, visualización y agregación

source: http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29

Mashups

Page 42: Big data y las apis (big data spain)

Directorios de Apis

source: https://developers.bbva.com/

➢ Directorio de Apis Públicas○ ProgramableWeb○ apis.io○ http://api500.com/ (api rating

agency)○ Google :-)

Mashups

Page 43: Big data y las apis (big data spain)

Principales categorías de Apis

source: http://www.slideshare.net/fullscreen/programmableweb/fastest-growing-web-api-categories-last-6-months/2

Mashups

Page 45: Big data y las apis (big data spain)

Ruegos y preguntas

Page 46: Big data y las apis (big data spain)

Contacta en:

Email: [email protected]

Web:

http://www.meetup.com/APIAddicts

Siguenos en:

Linkedin:ApiAddicts

Twitter: @apiaddicts

Facebook: APIAddicts

Meetup: APIAddicts

Contacta

Page 47: Big data y las apis (big data spain)