Un viaje inesperado a MongoDB Europe 2016

Un viaje fugaz a Londres. El equipaje, ligero. Las maletas, sin embargo, cargadas de ilusión, nervios y expectación. Así empezaba nuestro viaje al MongoDB Europe 2016, el primer evento que realiza MongoDB a nivel europeo y, por tanto, una experiencia única. Nos dirigimos al Old Billingsgate, un antiguo edificio reconvertido en espacio para eventos a orillas del Támesis y con vistas inmejorables.

A un lado, uno de los grandes iconos de Londres, el Tower Bridge; en frente, el Shard, cuna del modernismo e icono del skyline londinense; y, cómo no, un buen guiño a una de las tecnologías detrás de MongoDB.

Teníamos tan sólo un día por delante para escuchar las charlas, intercambiar experiencias con el resto de asistentes y empaparnos de todas las novedades que se iban a contar sobre el universo MongoDB. Así lo vivimos.

2016-mongodb-europe

El evento lo inauguró Dev Ittycheria, CEO de MongoDB dando paso a Eliot Horowitz para introducir  todas las novedades de la versión 3.4 de MongoDB, Atlas, el conector de BI y Compass. A su vez se mostró cómo MongoDB está posicionado como líder en el mundo NoSQL y es la cuarta base de datos más utilizada del mundo.

Tras la apertura, el físico de partículas, que trabaja en el proyecto ATLAS en el CERN y divulgador científico, Brian Cox hizo una disertación estelar sobre la inmensidad del universo y nuestra percepción del mismo. Una charla muy alineada con el slogan de MongoDB “For Giant Ideas”. Resultó realmente fascinante abrir el evento con un ponente de estas características, a priori lejano a MongoDB, pero con una capacidad de transmisión y un mensaje sumamente interesante para todo tipo de públicos.

mongodb-europe

Una vez finalizado el acto de apertura, comenzó la hora de repartirse por los diferentes Shards para absorber ideas, conceptos y casos de uso de expertos en esta gran tecnología.

Solving modern banking challenges with MongoDB and designing a schema to support over half a billion transactions

Es uno de los casos de uso que más suena en los últimos tiempos. Los costes de los sistemas HOST crecen en función de las operaciones que se realizan y dada la tendencia creciente de ofrecer nuevos y numerosos servicios a los usuarios e incluso exponiendo APIs, surge un verdadero problema de escalabilidad de costes de la solución.

Barclays nos presentó uno de los proyectos en los que está comenzando a aliviar sus mainframes para ofrecer servicios casi en tiempo real (menos de un segundo de tiempo de respuesta) a sus clientes. Para conseguirlo hacen uso de MongoDB y sus beneficios (flexibilidad en el modelado de datos, aggregation framework, índices, rendimiento y escalabilidad…) para generar información relevante para sus usuarios optimizando los tiempos de respuesta entre aplicaciones, mainframes y usuarios finales.

Debugging MongoDB Performance in 3.4.

En esta charla impartida por Asya Kamsky se expusieron distintas estrategias para el análisis de rendimiento de instancias de MongoDB. Asya equiparaba la búsqueda de la causa-raíz de un problema de rendimiento en MongoDB con el método de investigación como haría el mismísimo Sherlock Holmes.

Proponía como plan de ataque seguir los siguientes pasos:

    • Entender el entorno: Para ello hay que entender al sistema, obtener información sobre los patrones de acceso de las aplicaciones, naturaleza de los datos, extracción de métricas en reposo y analizar las tendencias de acceso a la base de datos en el tiempo.
    • Recolectar información: Obtener información tanto de la base de datos como del sistema operativo donde se ejecuta. Para ello, habló de la necesidad de utilizar herramientas tanto del sistema operativo (iostat, top, vmstat, free, ulimit -a …) como herramientas de MongoDB (mongostat, mongotop, mongoperf y el profiling de MongoDB) y analizar los logs del sistema usando mtools.
    • Observar tendencias: Observar el comportamiento de nuestras instancias antes de suceder los problemas y durante la ocurrencia de los mismos para encontrar patrones que sean el causante de los problemas. Habló sobre Ops Manager y Cloud Manager para obtener esta información.
    • Ponerle remedio: Dependiendo del origen y naturaleza del problema, propuso algunas soluciones desde el nivel hardware hasta el lado de la base de datos con cambio de modelo de datos o patrón de acceso, como con la creación de índices.
mongodb-europe1

Gráfica de rendimiento de instancia de MongoDB generada por mtools. Esta gráfica fue bautizada por los ingenieros como “Dinosaurio bebiendo en el lago”

Enabling the Internet of Things at Proximus

Charla enfocada al uso de MongoDB como almacenamiento masivo de datos generados por millones de sensores. Su principal reto consistió en optimizar el tamaño de datos almacenado en MongoDB. Hay que tener en cuenta que, con la cantidad de sensores que se emplean en IoT, se genera una cantidad ingente de contenido. Consiguieron reducir un 80% el tamaño de los datos almacenados con respecto a su planteamiento inicial, pasando de generar 100GB al día a tan solo 19GB.

Para ello hicieron uso de Bucketing, una técnica de la cual se oyó hablar en diferentes charlas. Destacaron también que, pese a existir el framework de agregación para la consulta de datos, no es siempre la mejor opción. No podemos olvidarnos del Query framework, cada uno con sus fortalezas y debilidades y casos de uso bien diferenciados.

Building WiredTiger

Keith Bostic nos explicó con un gran nivel de detalle y muy a bajo nivel cómo se había construido el storage engine Wired Tiger para MongoDB. Expuso todos los problemas y retos que hay que superar en sistemas multi procesador con memoria compartida que en principio requiere de bloqueos para acceder a la información de forma consistente.

Se explicaron los mecanismos utilizados por Wired Tiger para conseguir un mayor throughput y escalar mejor las lecturas / escrituras en entornos  multiprocesador, como el sistema de tickets de workers, Skiptlists y Hazzard Pointers. La charla fue muy interesante y con un altísimo detalle técnico que nos hizo comprender mejor cómo funciona el que es ahora mismo el Storage Engine por defecto y multipropósito utilizado en MongoDB.

Smart Strategies for Resilient Applications

Sin duda una de las charlas más interesantes. Se analizó cómo y por qué puede devolver un error MongoDB y cómo se puede actuar para garantizar que una operación se haya llevado a cabo. Para ello, se propone hacer uso de operaciones idempotentes, esto es, operaciones en las que el resultado de ejecutarlas varias veces genera el mismo resultado.

Generalmente esto se consigue haciendo filtros, pero el caso más complejo, el de los updates, requiere una solución más creativa. Se ejecutan dos instrucciones, la primera crea un atributo con un ObjectID y la segunda realiza la operación y elimina el atributo. Para integrar pruebas que garanticen el correcto funcionamiento de este tipo de mecanismos, se habló de MockupDB, un servicio que permite automatizar y modelar los comportamientos que podemos obtener del driver de MongoDB con el fin de probar el código desarrollado. Si queréis saber mas sobre esta charla aquí os dejo el enlace a la misma.

MongoDB Atlas

Durante la keynote, el CEO de MongoDB dijo: “It’s technically & financially irresponsible not to run MongoDB on Atlas” y, durante el evento, su servicio en la nube de MongoDB ha tomado gran protagonismo.

Atlas es la forma más sencilla de utilizar MongoDB centrándose nada más que en desarrollar, ya que puedes adaptar el tamaño de tu entorno de MongoDB de manera elástica según tus necesidades aumenten y sin preocupaciones en la operación, disponibilidad ni mantenimiento de las mismas, ya que todas esas tareas están delegadas en MongoDB.

Además, dispone de servicio de backup y monitorización para poder salvaguardar la información de nuestras instancias así como analizar el rendimiento de nuestra base de datos. Atlas es un producto que ha cobrado una gran importancia desde su salida este verano y es por ello que la compañía está impulsando su uso entre la comunidad. Puedes descubrir más sobre este producto en el curso de la MongoDB University M123: Getting Started with MongoDB Atlas.

2016-11-15-09-28-10

The Rise of Data Lake

Un tema que no podía quedar excluido en el evento. Se expusieron las diferencias entre Hadoop y MongoDB y cómo pueden, y de hecho deben, trabajar juntos en este tipo de arquitecturas de información. Se vio un hecho recurrente durante todo el evento, MongoDB se está situando como compañero de viaje con muchas otras tecnologías en diferentes casos de uso.

Powering Microservices with Docker competía con Choosing between 100 Bilion Travel Options (Amadeus)

Nunca sabremos si elegimos bien o no, pero la verdad es que sobre el papel ambas podían ser muy interesantes. Finalmente nos decantamos por la primera en la que se habló del estado del arte en torno a Microservicios y Contenedores con tecnologías como Kubernetes, MesOS, Docker, etc. Fue una charla muy fresca y bien articulada, se notó que el ponente es Andrew Morgan, el Product Marketing Principal de MongoDB.

Docker and Ops Manager at SNCF

En esta charla se expuso la solución técnica que llevó a cabo la empresa que explota los ferrocarriles en el sur de Francia. Utilizando Docker, en combinación con Operations Manager, más algunos scripts para la provisión de almacenamiento y networking, conseguían desplegar sus entornos preproductivos o productivos monitorizados, con backup habilitado y provisionados en un grupo de Operations Manager en pocos minutos. Con esta solución han conseguido reducir drásticamente los tiempos de provisión de entornos reduciendo los costes de operaciones y listos para usar, montando   MongoDB como servicio en sus propias instalaciones.

mongodb-europe

Como se aprecia, se puso mucho énfasis en tres puntos que son tendencia en el mundo de las tecnologías de la información: Microservicios con todo lo que ello conlleva; Cloud, con servicios como MongoDB Atlas en el que se está trabajando muy duro; y la interacción con sistemas Mainframe que tantos problemas están ocasionando a muchas empresas por sus altos costes en todos los sentidos, mantenimiento, captación de talento, evolución, etc.

Tras horas de espléndidas charlas y experiencias, Eliot Horowitz subió al escenario principal de nuevo, en esta ocasión para clausurar el evento. Se centró en la hoja de ruta esperada para el ecosistema de productos de MongoDB.

Para Atlas se habló de la expansión del servicios de IaaS soportados, aumentar la cantidad de zonas de disponibilidad y la opción de desplegar un clúster geográficamente distribuido. Por otra parte, Compass, comentó que se iba a trabajar en mejoras para hacerlo aún más atractivo con más funcionalidades así como una posible versión “web”.  En cuanto a la base de datos, mencionó la posibilidad de estudiar el uso de transacciones (sí, sí, ¡transacciones en MongoDB!) distribuidas.

Mongodb-europe

El evento resultó ser una gran experiencia, excelentes ponentes y temas. Se reunieron numerosos profesionales del sector, en las zonas mixtas se dieron cita grandes e imponentes sponsors, MongoDB organizó en el stand central sesiones de 20 minutos con expertos para tratar temas concretos de cada individuo y demos de Atlas.

Si de algo pudo pecar la organización del evento fue de la corta duración del mismo. Todos coincidimos en que podría haberse alargado un poco para tener más espacio entre las charlas, cubrir más temas y dar espacio y tiempo para charlar con otros asistentes.

Tras terminar el día, volvimos a hacer nuestras maletas para el camino de vuelta. LLegamos a casa con esas maletas llenas de ideas, sonrisas y satisfacción. En general buenas sensaciones para compartir con nuestros compañeros y con vosotros.

Esperamos que el MongoDB World 2017, que se celebrará en Chicago el año que viene, supere aún más nuestras expectativas.

Ingeniero de Sistemas en Paradigma. Tengo más de seis años de experiencia como administrador de sistemas, pasando desde la operación de servicios hasta modelado de arquitecturas. He participado en todo tipo de proyectos de virtualización, cloud, aplicaciones de patrón reactivo como Node.js y Vert.x y como administrador certificado de MongoDB. Apasionado por las nuevas tecnologías actuales y las que están por venir. No soy un 'devops' al uso, me siento más a gusto con el término 'sysdev'.

Ver toda la actividad de Ernesto Valero Marcelo
y Vicente Ayestarán

Recibe más artículos como este

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

Escribe un comentario