Cloud, serverless y Big Data, protagonistas en AWS Summit 2016

Este año el AWS Summit Madrid 2016 nos dejó a todo el equipo de Sistemas de Paradigma un muy buen sabor de boca. Como ya hemos contado, el evento se dividió en tres bloques de charlas paralelas, por lo que tuvimos que ingeniárnoslas para no perdernos ninguna. Después de contar en el blog de qué se habló en las conferencias Innovación en el mundo Enterprise y Go! Build!, cerramos el ciclo hablando de Agilidad en Cloud.

AWS-Agilidad-Cloud

Cómo elegir y ejecutar con éxito su estrategia de gestión de la información en el AWS Cloud

El título de la primera charla ya prometía. Que un miembro de AWS te explique cómo trabajar la estrategia de gestión de información en AWS Cloud es, como poco, interesante. Abrió la charla Antonio Álvarez, Business Development Manager en AWS, ante un buen número de asistentes expectantes. Comenzó hablándonos de las ventajas que proporciona AWS frente a tener la información en nuestro propio datacenter:

  • Mejora del rendimiento.
  • AWS asume las tareas de mantenimiento, parcheo, etc., que normalmente suponen un 70% de nuestro tiempo, de modo que podemos invertir ese tiempo en tareas de negocio.
  • Menor precio, ya que no tenemos que pagar licencias, pagaremos sólo por el almacenamiento que necesitemos, sin necesidad de hacer un gran desembolso inicial.
  • Flexibilidad: poder subir, aumentar, decrecer, añadir espacio, etc.

En principio nada nuevo, pero nunca viene mal recordar todas las ventajas, o al menos las más importantes, de tener nuestro propio centro de datos. Algo obvio, pero que todavía muchas empresas ignoran. Posteriormente enumeró distintos servicios que proporciona AWS para la gestión de la información:

  • RDS: BBDD transaccionales. Está enfocado para aplicaciones legacy y operaciones transaccionales.
  • DynamoDB: Indicado para aplicaciones que necesiten respuesta en milisegundos y proporciona escalado inmediato. Como ejemplos de uso son la aplicación Shazam y multitud juegos.
  • ElasticCache: Servicio de caché en memoria, con respuestas muy rápidas y que permite integrarse con otros servicios como RDS.
  • RedShift: Se utiliza para realizar analíticas. Se utiliza en BI (Business Intelligence y Data Warehouse). Es capaz de manejar volúmenes de información de Petabytes. Sus principales características son:
    • Columnar
    • Compresión avanzada
    • Procesamiento paralelo de forma masiva (MPP).
  • EMR (Elastic Map Reduce): Facilita el procesado de la información (proceso en paralelo y en tiempo real). Está enfocado a Hadoop y Spark y también tiene la ventaja de que es altamente escalable.

Dentro del marco del tratamiento de la información, Antonio Álvarez nos habló también de un nuevo servicio y de varias herramientas muy interesantes a la hora de querer migrar a AWS:

Database Migration Service (DMS)

Se trata de un servicio que nos permitirá migrar nuestra BD, tabla o esquema a AWS, cambiando incluso el motor de la BD para utilizar cualquiera de los que nos permite AWS como servicio. Una característica muy importante de este servicio es que se realiza sin pérdida de servicio. Podremos realizar una migración inicial y posteriormente ir haciendo sincronizaciones hasta que finalmente decidamos utilizar la BD que tenemos en AWS. Lo único que necesitamos hacer es conectar nuestro datacenter con AWS, lanzar la herramienta y mantenerlo sincronizado.

AWS Schema Conversion Tool

Se trata de una herramienta gratuita que nos permite migrar de nuestra BD Oracle o SQLServer a MySQL, Aurora, MariaDB o PostgreSQL en AWS. La herramienta realizará un análisis de nuestra BD y nos indicará el porcentaje que puede enviarse al destino. También proporciona una buenas prácticas para la migración.

Amazon QuickSight

Se trata de una herramienta de BI (Business Intelligence) en memoria optimizada para analítica, muy rápida y que permite compilar visualizaciones, realizar análisis personalizados y obtener perspectivas empresariales a partir de nuestros datos. Está abierta a herramientas de terceros como Tableau.

 

Después de la parte teórica, del caso de uso se encargó David Muñoz, CTO de Wallapop, una startup española que ha logrado un asombroso éxito en muy poco tiempo. David Muñoz explicó que tenían todo el entorno de producción de Wallapop en AWS y que, gracias a la flexibilidad que proporciona, pudieron corregir los fallos que habían cometido en un principio y solventarlos. Para terminar, hizo un resumen de las tecnologías que ellos utilizaban:

  • CloudFormation: crear la infraestructura gracias a plantillas.
  • Memcached: propósito general
  • Redis: caché más específicas
  • S3: guardar imágenes, eventos y logs
  • Redshift: análisis de Big data con EMR (Hadoop y spark)
  • Como BD utilizan RDS.

Fue muy enriquecedor escuchar de primera mano un caso de uso tan interesante como el de Wallapop, sin duda, toda la una referencia de startup que trabaja íntegramente con tecnologías basadas en Cloud.

Primeros pasos con arquitecturas serverless

La siguiente charla la impartió Miguel Rojo, AWS Solutions Architect, que comenzó con la siguiente y rotunda afirmación: “Las aplicaciones monolíticas son del pasado”, una frase con la que explicaba que van perdiendo agilidad y la consecuencia es que cada vez se van haciendo menos despliegues.

Debido a esto surgen las arquitecturas orientadas a servicios (SOA), que se comunicaran vía API o los microservicios, centrados en su propia “burbuja”, realizando su propia tarea y proporcionando así una mayor agilidad.

Todo ello nos lleva a tecnologías Serverless, que proporcionan mayor tiempo para la lógica de negocio y permiten el escalado por definición. Para hacer uso en AWS de este tipo de tecnologías tenemos:

Lambda

AWS Lambda es un servicio de computación sin servidores que ejecuta el código como respuesta a eventos y administra automáticamente los recursos de computación subyacentes.

Podemos crear funciones Lambda en Java, NodeJS y Python. Además, la manera de subir el código será mediante la consola de AWS y se escala automáticamente. También puede interactuar con otros servicios de AWS y se integra con CloudWatch.

Para la securización se recurre a IAM roles. Otra de sus características es que los recursos para las funciones Lambda se harán en bloques de 64 MB de memoria, y la CPU, red y E/S de disco se asignará en función de dicha memoria. Esto hace que el tiempo máximo de ejecución sea de 5 minutos.

Además, por defecto tendrá acceso a Internet, pero tendremos que personalizar los Security Groups e integrarla con un Internet Gateway para dicha salida a Internet. Podemos facturar por el número de invocaciones a la función y el tiempo en milisegundos de respuesta, en bloques de 100 milisegundos (Amazon ofrece el primer millón de invocaciones a la función sin coste). Hay que tener en cuenta que tiene una comunidad de desarrolladores muy grande respaldándola.

agilidadcloud1

Ejemplo: PlayOn! Sports – Streaming de video para eventos deportivos

API Gateway

Siguiendo con el uso de microservicios, en la charla no pudo faltar la mención a Amazon API Gateway, que se integra a la perfección con Lambda haciendo de “puerta delantera” para microservicios o aplicaciones. Su uso nos permitirá:

  • Diseñar API Rest
  • Importar/exportar de Swagger (framework de diseño de APIs)
  • Configurar la API: podremos utilizar Lambda como caché de hasta 135 GB. Está integrado con CloudFormation.
  • Publicar: en diferentes entornos. Podemos utilizar Mocks.
  • Mantenimiento: es una de las principales ventajas que nos brinda es el escalado. Cabe destacar que se factura por invocaciones y la cantidad de datos transferidas (1,5 millones de invocaciones cuestan aproximadamente 3,5 $). Las llamadas se realizan mediante API Key.
  • Monitorización: mediante CloudWatch.
  • Protección: control de la seguridad mediante AWS IAM y Cognito (servicio que proporciona el registro, inicio de sesión, federación de identidades y sincronización de datos entre aplicaciones).

Como consejo o “best practices” hicieron mucho hincapié en limitar las funciones. Un ejemplo de diseño para un servicio web sería:

  • Almacenar los estáticos en S3.
  • Mediante API Gateway invocaremos a Lambda.
  • Lambda consultará los datos de Dynamo.

agilidadcloud2

Mejores prácticas Big Data AWS

El encargado de esta última sesión fue Javier Ros, AWS Technical Account Manager, que comenzó con una reflexión de cómo los datos aumentan en variedad, velocidad y volumen. Según Ros, el tratamiento de la información en Big Data tiene las siguientes fases:

  • Ingesta: recoger la información.
  • Almacenamiento (proceso cí­clico con el proceso).
  • Proceso (proceso cíclico con el almacenamiento).
  • Consumo: visualización de los datos.

En todo este proceso, debemos tener en cuenta:

  • La latencia.
  • El throughput.
  • Tiempo de respuesta.

Para saber qué tipo de instancias de AWS debemos elegir para crear una infraestructura, debemos tener en cuenta las instancias Spot, que son los recursos de computación sobrantes de AWS, los cuales se ponen a disposición de los usuarios mediante un sistema de subasta. El precio de estos recursos fluctúa según las condiciones del mercado. Estas instancias nos permiten ahorrar hasta un 80-90% del precio final.

En esta charla, Javier Ros no quiso olvidar un concepto que está sumamente de moda y muy ligado al tratamiento de información en Big Data que es el Machine Learning. Para ello habló de la siguiente herramienta:

Amazon Machine Learning

Ros lo definió como un servicio de aprendizaje automático que permite estudiar patrones y es capaz de hacer predicciones. Entre sus características destacaron las siguientes:

  • Es fácil de usar.
  • Pensado para desarrolladores.
  • Robusto y altamente escalable.
  • Permite obtener datos de todos los servicios de AWS (RedShift, S3, etc).

Como caso de uso hizo su ponencia José Luis Cruz, Operations Manager de RavenPack, empresa dedicada a hacer analíticas de Big Data para el mundo financiero. Explicaron que lo que AWS les había permitido era flexibilidad, escalabilidad y pago por uso. Mostraron un esquema de su infraestructura:

agilidadcloud3

Para finalizar, Javier Ros puso como ejemplo de uso de Big Data un carrito de la compra de una tienda Online, como por ejemplo Amazon:

agilidadcloud4

Después de asistir a las 3 charlas puedo decir que cada vez se aboga más por las infraestructuras serverless, el uso de microservicios y tratar gran cantidad de información. Gracias a los casos de uso de estas conferencias hemos podido ver cómo grandes empresas utilizan AWS para la gestión, tratamiento y almacenaje de sus datos, exponiendo la infraestructura desplegada y evidenciando que en un principio pudieron equivocarse en el diseño de la arquitectura, pero gracias a la flexibilidad de AWS, permite modificarla y escalar de manera sencilla.

No cabe duda de que este es el camino a seguir, apostar por la innovación tecnológica para no quedarnos atrás, para cumplir con lo más importante: las expectativas y las demandas de nuestros clientes, sea cual sea el tamaño de nuestra empresa.

Recibe más artículos como este

Recibirás un email por cada nuevo artículo.. Acepto los términos legales

Comentarios

  1. Joakim Vivas dice:

    Hola! Muchas gracias por vuestro resumen, por desgracia no pude estar, si en el anterior en Barcelona! Pero teniendo artículos tan detallados como el vuestro, es como si hubiera estado en una de las salas perfectamente sentado y tomando miles de notas! Muchas gracias!!! Saludos!!

Escribe un comentario