Como cada año, Microsoft organizó el pasado Sábado (27 de Abril) la Global Azure Bootcamp, una conferencia de carácter global que se realiza en múltiples países y muestra diferentes proyectos, entre ellos un evento llamado «Science Lab». Con un fin de investigación, esta propuesta de ámbito científico se lleva realizando desde el año 2015, con interesantes y novedosas investigaciones de por medio (estudio de la diabetes Tipo-2, investigación contra el cáncer de mama, etc…).

A lo largo del día, nos hemos topado con siete sesiones diferentes, en las que se dividían en cuatro charlas cada una (Llamadas también «Tracks», de ámbitos/temas diferentes), dando un total de 28 charlas distintas. Dichas sesiones estaban orientados a las tres profesiones más demandadas de Azure: IT, DEV (Desarrollo) y DevOps.

En este post daré un pequeño resumen general de toda la sesión de Azure Bootcamp, acompañada de un pequeño resumen de cada una de las sesiones en las que he tenido el placer de participar.

Global Azure Bootcamp: celebrando la expansión de la nube.

El interés principal del evento consiste, una vez más, en la expansión de la nube y los servicios que podemos llevar a cabo en ella. Durante muchas sesiones se han llevado a cabo proyectos de automatización, escalabilidad o formas innovadoras de llevar cargas de trabajo a Azure. Por supuesto, han habido varias sesiones meramente informativas, pero no han faltado exposiciones y demostraciones prácticas a lo largo del día.

Lo primero y más importante: al final del post adjuntaré el vídeo (Streaming) de la sesión del Track-1 (había un total de cuatro salas, o «Tracks»), junto con los vídeos individuales de cada sesión a describir. Cabe decir que sólo la sesión del primer Track dura unas diez horas, así que se ha de mirar con cierta paciencia.

Organización y resumen de los eventos:

Desde las 9:30 (hora de inicio del evento) se nos presentan cuatro salas, donde se imparten charlas de diferentes ámbitos, de al menos una hora cada una. Dichas sesiones pueden contener demostraciones prácticas (más comunes en sesiones de Desarrollo o DevOps), o ser simplemente presentaciones.

Como estudiante de Sistemas/Infraestructura (IT), mi principal interés giraba en torno a charlas de mi campo, con la excepción de varias sesiones de DevOps relacionadas con contenedores (tema repetido una y otra vez a lo largo de la Azure Bootcamp), y automatización de cargas de trabajo en Azure.

Siendo así, comencemos describiendo los diferentes eventos. Adjuntaré imágenes en la medida de lo posible.

El héroe para nuestros problemas de computación masiva (Computación HPC en Azure)

Charla impartida por: José Ángel Fernández, Iria Quiroga García.

Para empezar nuestra primera charla nos encontramos con un mensaje directo: la computación de Alto Rendimiento en Azure existe, es un hecho. Hay infraestructura capaz de soportar grandes cargas de trabajo y se han de refutar las opiniones en contra de su infraestructura. La charla muestra algunas de las ventajas que marcan la diferencia de Azure y servicios de la competencia, y lo divide en cuatro apartados: almacenamiento, redes, computación y administración.

En el apartado de Almacenamiento se nos muestran ejemplos de entornos clusterizados (Hadoop, Gluster, BeeOND) en los que la transferencia de datos es crucial. La premisa a defender es que, a mayor número de equipos (nodos) en el entorno, se conseguirá una solución más eficaz que una única máquina virtual en Azure (que posee un límite de 1GB/s en I/O).
También defiende el uso de un sistema de archivos construido desde los mismos nodos (usando BeeOND, por ejemplo) y permitiendo así un mayor rendimiento.

Llegamos al apartado de redes, y se nos muestran varios recursos empleados en las máquinas de Azure para conseguir soluciones de baja latencia e interferencias. Se hace mención a Infiniband (una vía de comunicación de alto rendimiento, con grandes diferencias respecto al Ethernet convencional), y diferencias de latencia entre Azure y otras nubes en modelos de computación de Alto Rendimiento.

En el apartado de computación nos muestran distintos tipos de máquinas virtuales, y los propósitos adecuados para emplearlas (General Purpose, Memory Optimized, Specialized Infraestructure, etc…)

Por último, en la administración de Azure nos encontramos con algunas soluciones de control de objetos/máquinas, como Azure Batch. (Recordamos que podéis acceder a la dicha consola a pantalla completa con la URL http://shell.azure.com )
También se muestran despliegues de máquinas virtuales «en un paso», ahorrando tiempo y configuraciones para cada una de ellas.

El trono de Hierro y los 5 reinos de Azure (control de tenants y suscripciones en Azure)

Charla impartida por: Carlos de Nova, Ignacio Blanco.

Una charla teórica y de escasos detalles, y dejando de lado la «referencia» de Juego de Tronos. Se nos muestra la importancia de aplicar cinco conceptos básicos en Azure: Cost Management, Security Baseline, Resource Consistency, Identity Baseline y Deployment Acceleration.

La charla es increíblemente teórica, a excepción de una pequeña demostración de Azure Resource Graph (una función de control, que está en Preview), su control vía PowerShell (con sentencias/consultas de BD mediante KQL) y una última demo con Azure Blueprints. (Nos ayuda para aplicar normas/políticas a todo tipo de recursos: grupos, VNETs, máquinas virtuales…)

El apartado más llamativo, desde mi punto de vista, ha sido el de seguridad. Se han mostrado unas políticas aplicables a usuarios o recursos de la nube, con la posibilidad de forzarlas para recursos que ya han sido desplegados.
No hay nada más en especial, se exponen cinco puntos y se recuerda a la gente cómo debe gestionar su entorno en Azure.

Mission: Azure Kubernetes Service (Despliegue de contenedores vía Kubernetes)

Charla impartida por: Carlos Mendible, Sergio Navarro Pino.

NOTA IMPORTANTE: no soy un estudiante de desarrollo. El campo en el que más he profundizado es Sistemas/Infraestructura (IT), por lo que mi opinión de esta charla podría no ser del todo correcta. En medida de lo posible, trataré de ser objetivo.

Esta charla, bastante más intensa a nivel de demostraciones, nos muestra un entorno autoescalable (horizontalmente) de contenedores mediante AKS (Azure Kubernetes Service), entornos virtuales, etc.
Antes de empezar con la demostración, se nos muestran algunas características del uso de Kubernetes en Azure, tales como:

  • El nodo principal está controlado por Azure, no se interactúa con él.
  • Azure soporta únicamente las últimas 4 versiones de Kubernetes.
  • Los nodos tienen una versión editada de Ubuntu. No existen nodos con Windows Server, por ejemplo.
  • Podemos desplegar hasta 100 clústeres por suscripción, 100 nodos por clúster y hasta 110 pods por cada nodo.
  • Azure reserva un pequeño porcentaje de recursos para garantizar el funcionamiento de todos los nodos. (~20% CPU/memoria, hasta 4GB)

Como primera práctica, el objetivo es mostrar un entorno autoescalable, que se logra mediante una aplicación en .NET. Se crean varias máquinas con una carga de trabajo «X», y posteriormente un grupo de contenedores autoescalables con dicha carga.

En la segunda demostración nos topamos con un número de contenedores con instancias de Windows (con Web Server), controlables desde el propio clúster de Kubernetes.

Más adelante, se nos muestra la posibilidad de leer todo el Log Analytics de nuestro tenant de Azure, usando un contenedor con Grafana y obteniendo métricas a tiempo real de todos nuestros otros contenedores.

En la última demostración se realiza algo bastante increíble: un despliegue de una WebApp para entornos de desarrollo, donde varios usuarios pueden coexistir partiendo de una única WebApp (se duplica en Kubernetes sin infraestructura especializada). No importan los cambios que se realicen en la versión de testing, ya que no alteran el aspecto/código de la web inicial. Esto tiene muchísima utilidad y posibilidades en un entorno laboral, por lo que no pasa desapercibido en la Azure Bootcamp.

zMonitor: “tu ojo de Sauron” (monitorización a gran escala, compatible con varios tenants/suscripciones)

Charla impartida por: Roberto Tejero, David Gómez.

Llegamos a nuestra cuarta charla, que una vez más recurre al tema de la monitorización a gran escala. Esta herramienta nos permite usar una cuenta de almacenamiento para guardar nuestros logs. (Podemos acceder mediante una utilidad como Azure Storage Explorer)
Posteriormente, estos logs serán procesados y tratados con herramientas como PowerBI o Grafana.

La utilidad final de este despliegue reside en escalarlo a varias suscripciones e incluso tenants, lo que ahorra una enorme cantidad de tiempo en caso de contar con ese tipo de entornos.

Esta herramienta se puede encontrar en GitHub, y se debe desplegar en cada uno de los Tenants que se desea monitorizar. Requiere de una cuenta de Log Analytics, y es compatible con otros servicios de monitorización.

Pruebas de integración con Docker y Azure DevOps.

Charla impartida por: Luis Fraile, Unai Zorrilla Castro.

NOTA IMPORTANTE (otra vez): no soy un estudiante de desarrollo. El campo en el que más he profundizado es Sistemas/Infraestructura (IT), por lo que mi opinión de esta charla podría no ser del todo correcta. En medida de lo posible, trataré de ser objetivo.

Esta sesión está enfocada en la otra cara de los contenedores (tras la decena de charlas de Kubernetes, le tocaba a Docker robar algo de protagonismo). Así mismo, esta charla mostrará la integración de Docker desde Azure DevOps.
Cabe decir que prácticamente la sesión entera ha estado volcada en hablar del código que lleva el despliegue, por lo que me ha sido bastante difícil seguirla.

Esta charla comienza con una pequeña presentación acerca de la dificultad y costes relacionados con el testing e integración en entornos de desarrollo, mostrando varios diagramas a tener en cuenta.

Por último, la demostración práctica de la sesión se centra en un entorno de multi-estrategias (varios programas/entornos, en casos de trabajo en los que se lidian con diferentes versiones por parte de los clientes), multitud de contenedores y un agente de gestión automática que los controla a todos.
A lo largo de (casi) toda la charla analizará con detalle el código de un potente despliegue de infraestructura en Docker en el que se realizan varios «pasos»: una base de datos SQL «reciclable» entre instancias de Docker, permitiendo que nuevas instancias se puedan desplegar con la misma infraestructura; una API de un «carro de la compra» desplegado desde múltiples contenedores, etc…

Cabe decir que la gran mayoría de la charla se dedica a analizar con profundidad el código de todos los despliegues, con que no puedo opinar mucho más al respecto.
Si alguno está interesado, el proyecto se puede encontrar desde el repositorio de GitHub del usuario “Xabaril”, con la URL: https://github.com/Xabaril .

Science Lab 2019: «Looking for the unknown».

Charla impartida por: David Rodriguez, Sebastián Hidalgo.

Como cada año en la Global Azure Bootcamp, uno de los eventos está dedicado a una materia de ciencia, cuyo propósito es la investigación y descubrimiento en temas de actualidad.

En anteriores ediciones se han realizado importantes investigaciones en campos de salud (investigación acerca de la diabetes Tipo-2, cáncer de mama), o descubrimientos en el campo de la astrofísica, como el de la edición de 2017 o este mismo año.

Presentación del Science Lab 2019

El propósito de este Science Lab es descubrir exoplanetas mediante el satélite TESS, y un complejo despliegue y análisis con Azure. Lo más importante, desde el inicio del evento se nos ofreció la posibilidad de participar en el descubrimiento con un sencillo paso: mediante un registro (URL/QR) podíamos desplegar una instancia de Azure, que se encargaría de colaborar analizando datos en la investigación. Sobra decir que se agotó por completo las reservas de instancias a nivel mundial, reuniendo más de 10.000 núcleos de procesamiento en escaso periodo de tiempo.

Enlace al sitio web: https://gablabdashboard.azurewebsites.net/

Algunos datos de interés: a lo largo de la mañana se confirmó el descubrimiento de más de una veintena de exoplanetas, y al final del evento, al menos medio centenar. ¡Actualmente hay más de 500 posibles candidatos!
También cabe destacar la participación de más de 30 países, y el procesamiento de más de 4.150.000 imágenes procesadas.

Otra faceta interesante del evento: comprobar la infraestructura detrás de todo este despliegue. También, algunas anécdotas a lo largo de la charla (como por ejemplo, toda la base de datos de imágenes esté representada por archivos .CSV; el crecimiento exponencial e inesperado de la BD del proyecto; o el cómo ahorrar 2 euros ha transformado el despliegue en algo completamente diferente), todo explicado de forma muy cómica.

Por último, es interesante saber que el proyecto es escalable mediante contenedores (Kubernetes), o cómo se han enfrentado a los continuos ataques que ha sufrido el proyecto (nos han mostrado datos de millones de peticiones «falsas» a los recursos de Azure), o la posibilidad de obtener el código correspondiente a ciertos recursos del despliegue (desde GitHub), si lo deseamos.

MMORPG: la rebelión de los bots cognitivos (cómo controlar a bots por comandos de voz y Azure)

Charla impartida por: Carlos Milán Figueredo, Alberto Marcos González.

Como última charla, tenemos una sección un tanto inesperada. Para cerrar toda la sesión, y hacer la tarde un poco más amena, tenemos una charla bastante cómica. (Por supuesto, no se deja de lado la complejidad de un proyecto así.)
Cabe decirlo, la premisa de este evento es innecesaria: comandar mediante Amazon Echo un ejército de bots (autómatas) en un juego Online de hace casi veinte años. Los medios para llegar a este fin son mucho más interesantes, pero no deja de ser un proyecto peculiar, acompañado de una charla increíblemente amena.

Lo primero, destacar el entorno en el que nos encontramos: cómo logramos comandar algo así en un juego de hace tanto tiempo, sin soporte alguno para servicios en la nube (¡faltaría más!) ni lenguajes compatibles con Azure o Amazon Echo (Alexa).

Hace falta puntualizar, estos dos caballeros se han metido en un auténtico lío desde el primer minuto. No ha sido una tarea sencilla.

El despliegue detrás de este evento queda bastante claro: nuestros bots son comandados por una orden (voz, desde Amazon Echo). Más adelante, esta orden pasa por un puñado de contenedores (Kubernetes), que harán de colas (queues) para cada uno de los bots. En estas colas se encuentran simples comandos que pueden interpretar nuestros bots, y realizar esas acciones en el juego de forma inmediata (apenas un segundo). Dichas colas pueden ser manipulables de forma directa. (Se nos muestra claramente: si creamos un archivo de texto concreto en la cuenta de almacenamiento del BOT#150, este hará la acción comandada)

Entonces, el misterio queda en cómo han logrado «traducir» las órdenes de un popular dispositivo de voz a un juego de casi dos décadas de antigüedad, sin soporte de ningún tipo. Esto se explica en la charla de forma detallada. (Evito dar detalles concretos, dada mi inexperiencia en este ámbito.)
El juego recibe órdenes mediante el lenguaje de programación Perl (muy antiguo, no soportado por Azure/Amazon Echo), y el quebradero de cabeza a partir de ese punto cae en interpretar las órdenes de Amazon Echo (mediante su API), reconocerlas y comandar a Azure las acciones correspondientes. Si estas han de interactuar con el ejército de bots (contenedores), se enviará un comando a la cola de cada contenedor, procesándola al poco tiempo.

Por supuesto, todo este enorme montón de trabajo no queda en nada: si bien la utilidad de todo este despliegue puede ponerse en entredicho, parte de esta filosofía se puede emplear de cara a la moderación de entornos Online en un futuro: estos bots pueden poner fin a relaciones de acoso, bulling o cualquier tipo de maltrato en cuestión de segundos, y la clave de su éxito podría estar en su rápida actuación y su enorme escalabilidad, lo que es un recurso muy a tener en cuenta tanto en redes sociales como juegos en línea.

Preguntón y despedida: el final del evento.

Una vez trascurrida la sesión, nos volvimos a reunir en la primera sala, para una sesión de preguntas a modo de despedida. Este «preguntón» consiste en un juego donde se ha de decidir rápidamente preguntas de varios temas: Azure, animales, curiosidades… ¿películas y series? ¿distinción de perros y helados? ¿preguntas acerca del personal? Eh… bueno, lo que empezó siendo un simple juego quizá acabó yéndose ligeramente de mano, pero fue una sesión divertida y lo ideal para cerrar un día tan intenso.

Por supuesto, desde este mismo post, agradecer la compañía (que no ha faltado a lo largo del día) de compañeros y amigos, en una sesión en la que queda más que claro el poder y alcance del mundo de la nube. Saludos, ¡y hasta la próxima Azure Bootcamp!

Un pequeño grupo de visitantes de la GAB 2019 🙂

Autor: Andrés Miguel Villarmín
Curso: Microsoft MCSA Windows Server 2016 + Microsoft MCSE Cloud Platform & Infrastructure
Centro: Tajamar
Año académico: 2018-2019
LinkedIn: https://www.linkedin.com/in/andr%C3%A9s-miguel-villarm%C3%ADn-208554b8/

This Post Has One Comment

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.