BIG COMPUTE 6 – El héroe para nuestros problemas de computación masiva

Un año más se ha celebrado en Madrid una nueva edición del Global Azure Bootcamp. Este año el reto científico ha estado auspiciado por el Instituto de Astrofísica de Canarias (IAC). El objetivo era “examinar los datos de la misión TESS (“Transiting Exoplanet Survey Satellite”), que fue lanzada en 2018 para la búsqueda de exoplanetas alrededor de las estrellas. El satélite está continuamente obteniendo imágenes de las estrellas con el único objetivo de buscar cambios en la intensidad de luz al pasar los planetas por delante de las mismas”

A día de hoy se llevan analizadas 18.825.867 de muestras, un equivalente a 1.254.089 horas de computación ejecutadas sobre más de 17.000 cores. Desde España se aportó el granito de arena siendo los terceros a nivel mundial en el ranking por países. Los resultados fueron prometedores, al menos dos posibles exoplanetas fueron detectados, actualmente siguen investigando los resultados.

Como en otras ocasiones, Iria y yo nos animamos a presentar una sesión. Este año la temática ha estado relacionado con la computación masiva y cómo Azure es una plataforma ideal para vuestras necesidades de HPC o Big Compute.

Si te la perdisteis, ya la tienes disponible para verla bajo demanda.

Big Compute 6 – El héroe para nuestros problemas de computación masiva

El coste del ancho de banda en Azure, un pequeño desconocido

El otro día, en una conversación interna, saltaron unas cuántas dudas de qué tráfico se cobraba o no en Azure según el origen, el destino y el tipo de conectividad de la que se disponía. Inicialmente pensé que era algo que tenía bastante claro pero tras ver el resumen que hizo mi compañero José Guardia (@msjosegm) creo que tiene mucho más detrás de lo que inicialmente pensaba.

A continuación, tenéis un listado de todos los puntos que tenéis que tener en cuenta cuando tengáis que realizar una estimación de los costes de ancho de banda en Azure:

  • Tráfico que sea de ingreso a Azure desde Internet, una conexión VPN, una conexión ExpressRoute u otro servicio de Azure: gratuito.
  • Tráfico que sea entre recursos conectados dentro de la misma red virtual: gratuito
  • Tráfico que fluya entre un VNet Peering ya sea regional o entre diferentes regiones: tiene coste tanto de salida como de entrada.
  • Tráfico que sea saliente de la red virtual hacia Internet: tiene coste de salida
  • Tráfico que sea saliente de la red virtual hacia una IP pública de la misma región de Azure: gratuito
  • Tráfico que sea saliente de la red virtual hacia una IP pública de otra región de Azure: tiene coste de salida
  • Tráfico que sea saliente de la red virtual a través de una conexión VPN: tiene coste de salida
  • Tráfico que sea saliente de la red virtual a través de una conexión de ExpressRoute en su categoría metered: tiene coste de salida
  • Tráfico que sea saliente de la red virtual a través de una conexión de ExpressRoute en su categoría unmetered: gratuito
  • Tráfico entre servicios de Azure dentro de la misma región: gratuito
  • Tráfico entre servicios de Azure en diferentes regiones: tiene coste de salida
  • Tráfico entre servicios de Azure desplegados en Availability Zone en una red virtual: dentro de la misma AZ es gratuito pero entre AZ tiene coste de entrada y salida.

Como veis, no tan sencillo como inicialmente parecía. Si seguía la máxima de todo lo entrante es gratuito y solo se factura lo saliente, recordad las excepciones a la regla que en este caso son varias.

Azure y los servicios disponibles por región en una tabla de Excel

Esta semana, revisando una de nuestras listas de distribución internas, he descubierto un interesante truco para tener de forma fácil en un fichero Excel el resumen de servicios disponibles en Azure por región. Cuando solo existían unas pocas regiones era fácil recordarlo; sin embargo, con casi 50 regiones disponibles en breve se ha vuelto prácticamente imposible.

Desde Excel 2010 existe una funcionalidad basada en PowerQuery que permite recuperar información desde diferentes fuentes de datos e incluirla directamente en una hoja de cálculo. En este caso, la que nos interesa es la opción de obtenerla desde una página web

Al mismo tiempo, Azure proporciona un listado de todos los servicios por región disponibles. La experiencia es bastante buena pero puede no ser suficiente si necesitas por algún motivo tener el listado en un fichero para consultar sin conexión. ¿Cómo resolverlo? Vamos allá.

Continue reading Azure y los servicios disponibles por región en una tabla de Excel

Storage Wars ¿cuánto pagarías por lo que hay en tu cuenta de almacenamiento?

Es increíble lo rápido que pasa el tiempo ya que un año más se ha celebrado en Madrid una nueva edición del Global Azure Bootcamp. Este año no hemos tenido un proyecto científico por detrás en el que proporcionar un poco de nuestra capacidad de computación a la causa pero hemos disfrutado de hasta cuatro tracks en paralelo de sesiones durante el pasado fin de semana.

Como en otras ocasiones, Iria y yo nos animamos a presentar una sesión. Este año ha tocado volver a los fundamentos, en particular, a los fundamentos sobre el almacenamiento. Cada vez el número de servicios disponibles en Azure es mayor y muchas veces nos olvidamos de las piezas fundamentales que dan soporte al resto. Azure Storage es uno de ellos y desde su salida ha evolucionado poco a poco pero de forma constante. Si no has estado atento, seguramente te hayas perdido unos cuántos cambios; si lo has hecho, a lo mejor te ha sucedido como a nosotros, has tenido que dar un paso atrás para entender la aparente complejidad que ha alcanzado el producto.

Si eres uno de los nuestros o de nuestros clientes que se han sentido así, ya tienes disponible la sesión para verla bajo demanda.

Storage es uno de los primeros servicios disponibles en Azure desde su lanzamiento y muchas veces uno de los menos conocidos. En los últimos meses se ha incorporado cada vez más funcionalidades creando un cierto caos entre qué se puede hacer con cada tipo de almacenamiento y qué no. En esta sesión pondremos un poco de luz sobre lío y sentar las bases para optimizar tu consumo de almacenamiento en Azure.

Despliegues anidados de plantillas ARM automatizados con PowerShell y Azure Blob Storage

A la hora de desplegar una plantilla de Azure Resource Manager, el proceso es bastante sencillo tanto desde la línea de comandos multiplataforma como desde PowerShell. Se resume en un comando al que se le pasa el grupo de recursos y la plantilla que se quiere desplegar. Sin embargo, cuando en lugar de una única plantilla queremos hacer un despliegue de una solución más compleja compuesta por varias plantillas anidadas, esto requiere incluir algún elemento intermedio para lograrlo.

Desde una plantilla de ARM es posible invocar el despliegue de otras plantillas ARM con una única condición: deben de estar accesibles de forma pública al orquestador que las interpreta en Azure para que pueda descargársela e implementar los recursos que hemos definido. El uso de plantillas anidadas puede darse por diversos motivos, generalmente los principales suelen ser: evitar plantillas de varios miles de líneas y facilitar el trabajo de la persona o el equipo de personas que escriben dicha plantilla.

Una solución bastante común al problema es hacer uso de un repositorio público de código como lo que ofrece GitHub. Este modo es el que emplea el propio repositorio público de plantillas que Azure pone a vuestra disposición para implementar directamente o para tomar como ejemplo a la hora de crear nuestras propias plantillas. Sin embargo, en muchas ocasiones no nos interesa que nuestras plantillas estén accesibles por terceros dentro de Github. Es ahí donde entra en juego la solución que empleo yo. Probablemente no sea la mejor solución o la más completa pero es la que me facilita el trabajo con las plantillas anidadas en varios despliegues preparados para diferentes clientes. El sistema funciona de la siguiente manera.
Continue reading Despliegues anidados de plantillas ARM automatizados con PowerShell y Azure Blob Storage

Ejecutando múltiples veces CustomScriptExtension en una máquina Windows en Azure

Es posible que en alguna ocasión hayáis necesitado ejecutar más de un script de configuración en una máquina virtual con Windows Server 2012 R2 en Azure en diferentes momentos de su aprovisionamiento. Si habéis intentado realizarlo desplegando la extensión Custom Script lo más probable es que recordéis un mensaje como el siguiente:

me@Azure:~$ az group deployment create --name deploy --resource-group jangelfdez-blog --template-file /home/me/clouddrive/main.simplevm.json --verbose
[...]
Failed: secondInstallation (Microsoft.Compute/virtualMachines/extensions)
Failed: deploy (Microsoft.Resources/deployments)
Succeeded: firstInstallation (Microsoft.Compute/virtualMachines/extensions)
Deployment failed. {
  "error": {
    "code": "BadRequest",
    "message": "Multiple VMExtensions per handler not supported for OS type 'Windows'. VMExtension 'secondInstallation' with handler 'Microsoft.Compute.CustomScriptExtension' already added or specified in input."
  }
}

Continue reading Ejecutando múltiples veces CustomScriptExtension en una máquina Windows en Azure

Winter IoT coming! Auroras Boreales en tu casa directamente desde el polo

Un año más se ha celebrado en Madrid una nueva edición del Global Azure Bootcamp. En esta ocasión hemos tenido el lujo de contar con el proyecto del Instituto de Astrofísica de Canarias para analizar la vida secreta de las galaxias. Si tenéis curiosidad sobre el proyecto tenéis disponible la sesión que impartieron el equipo del IAC e Intelequia al respecto de cómo se había montado el laboratorio.

Como en otras ocasiones, Iria y yo nos animamos a presentar una sesión. En esta ocasión, a diferencia de las anteriores, no fue sobre un producto o tecnología en concreto sino que nos enfocamos en cómo implementar una idea con los diferentes servicios que Azure pone a nuestra disposición. Si tienes curiosidad, aquí os dejo la descripción de la sesión y la grabación gracias al equipo de DX.

“Las Auroras Boreales son un fenómeno difícil de predecir, empiezan y acaban de forma rápida con pocos minutos de margen para disfrutar de ellas. Por lo tanto, un termo de café caliente y una buena ropa de abrigo son las mejores herramientas para superar las gélidas noches nórdicas en busca y captura de ellas. ¿No sería mejor podes disfrutar de ellas desde el calorcito de tu casa?
En esta sesión veremos cómo a través de Azure podremos construir un sistema que nos permita disfrutar de las Auroras Boreales en nuestra habitación con un poco de serverless computing e IoT.
¿Te vienes a verlas con nosotros?”

The Container Revolution

Wake up Neo… Containers have you…

El pasado 6 de octubre se celebró en Madrid el Microsoft Tech Summit. En esta edición participé con Iria dando una sesión sobre contenedores en el track 8 del evento. Si no la visteis, os dejo los detalles para verla on demand.
 

La contenerización ha llegado para quedarse con nosotros. La aparición de Docker y su simplificación del uso de la tecnología de contenedores ha facilitado la explosión que hemos vivido en este espacio en los últimos años. Ejecutar nuestros contenedores es tan sencillo como lanzar docker run en la línea de comandos tanto en Linux como en Windows. Sin embargo, a veces no solo nos vale conocer el cómo se usa sino que nos interesa conocer un poco mejor lo que hay por debajo.
 
En esta sesión veremos qué son los contenedores, de dónde vienen, detalles sobre cómo se implementan en Linux, y cómo se ha realizado la integración con Windows Server.
 
¿Con qué te quedas: pastilla roja o pastilla azul?

Azure Notifier, un sistema de notificación basado en Logic Apps y Azure Functions

Hasta hace unas semanas, un compañero interno de Microsoft había construido una aplicación que permitía recibir por correo electrónico las novedades relacionadas con Azure de las principales fuentes de información: el blog de Azure, las actualizaciones de servicio y el contenido de Channel 9. La aplicación era un proyecto personal y tras irse de la compañía el servicio desapareció.

Debido al ritmo de evolución de los servicios de Azure, una utilidad como esta era muy práctica para tener una visión diaria de qué había nuevo, qué había cambiado y qué nuevo contenido multimedia estaba disponible para ser consumido. Es por ello que estos días de vacaciones me propuse ver si se podía montar algo rápido con los servicios PaaS de Azure y así es como me he construido mi propio servicio notificador.

Continue reading Azure Notifier, un sistema de notificación basado en Logic Apps y Azure Functions

Sincronizando cambios de red en Web Apps con conexión a una VNET

Una de las funcionalidades de la parte de Web Apps dentro del App Service es la capacidad de conectarse a una red privada para que nuestras aplicaciones puedan acceder a información que no esté pública en la red. El proceso de creación está perfectamente detallado paso por paso en la documentación.

Durante el proceso inicial de establecimiento de la conexión se realizan una serie de pasos como la generación de los certificados de la conexión punto a sitio o se propaga la información del enrutado, de los DNS y de otra información necesaria para que la conectividad sea exitosa. Sin embargo, es posible que por algún motivo a lo largo del tiempo de vida de la aplicación, esta información de red se vea modificada y sea necesario actualizarla.

Para ello, no es necesario recrear la conexión entre la Web App y la red, simplemente será necesario acceder a la pestaña de Virtual Network y en la parte superior veremos el botón de Sync Network . Con ello, se cargará la nueva información y aplicando los cambios que se hayan realizado a nivel de la red virtual a la que está enlazada. ¡Ojo! Provocará un corte breve en la conectividad por lo que durante unos instantes la aplicación podría dejar de funcionar correctamente.

Sincronizar cambios de red en Web Apps
Sincronizar cambios de red en Web Apps

En mi caso, el cambio fue relacionado con los DNS. Una vez iniciada la sincronización, al cabo de unos instantes estaban ya los nuevos DNS propagados.