SlideShare a Scribd company logo
1 of 28
Download to read offline
Azure Alerts
¿Has probado a reiniciar?
#4Sessions
1
Ángel García Santos
@angel_g_santos
Key developer
agarcia@pasiona.com@
2
Os presento a…
Tina
Tina es la responsable de negocio de la empresa “Colored Stars”.
Su empresa se dedica a ofrecer estrellas de colores a sus clientes. Miles de estrellas. De
todos los tamaños. De todo tipo.
Pero toda su infraestructura informática la tienen on-premises. En una sala muy chula,
con el aire acondicionado a tope, lleno de cables y de ordenadores, racs de discos, cajas
vacías, routers viejos… una fregona, una escoba y un recogedor.
3
… y también a…
Lito
Lito es empleado de la empresa CloudRulesButSupportOnPremises. CRUSOP.
Trabaja como IT administrator, y su responsabilidad actual es atender las llamadas de los
clientes que experimenten problemas con alguna de sus aplicaciones…
Está… digamos… asegurándose de que todo sigue funcionando.
4
… y también a…
Lito
Pero claro…
Lito tiene la mania de dormir 8 horas todos los días. Y sus clientes son internacionales,
por los que tiene que estar disponible para atender sus llamadas... Incluso cuando
duerme.
5
Un día…
Puigmercial
Un día, un Puigmercial… digo… comercial se presentó en las oficinas de “Colored Stars”
para ofrecerles pasar todas sus soluciones al cloud. En concreto, al cloud de Microsoft.
En un primer momento, Tina dudó de lo que le explicaban, pero al final…
6
Un día…
… aceptó la oferta.
7
Tiempo después…
Todo iba genial. ¡Azure es la hostia!
Pero no todas las aplicaciones que tenían en “Colored Stars” estaban bien
programadas… imaginaos… ¡tenían aplicaciones en Visual Basic! ¡¡¡Visual Basic!!!
Y claro, un día…
8
Tiempo después…
… la aplicación principal de Colored Stars cayó… todo dejó de funcionar.
9
Tiempo después…
Tina llamó a Lito… y Lito solo le supo decir que había que reiniciar la aplicación. Lo hizo,
desde el portal de Azure es muy fácil. Pero eran las 4h de la mañana.
Y esto se repitió durante los tres días siguientes… y pasó un mes, y casi cada día Lito
recibía llamada de Tina.
10
Así que…
Así que Lito pensó en cómo no tener que atender llamadas de ese tipo, de las que solo
hace falta levantarse para reiniciar la aplicación.
11
Así que…
Y de ese análisis, después de mucho buscar, encontró la solución.
12
LA SOLUCIÓN
13
Overview
Pero… ¿De qué estamos hablando?
14
Azure Alerts
¿Qué son?
Azure Alerts es un servicio de Azure mediante el que se proporciona un método de
monitorización a algunos servicios de Azure.
Aunque en realidad el origen de Alerts está vinculado a Azure Monitor, otros servicios,
como las WebApps, permiten configurar criterios sobre los datos de monitorización del
artefacto para lanzar una notificación advirtiendo de que las condiciones definidas por el
criterio de la alerta se han cumplido.
Enlaces:
• https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-
overview-alerts
15
Azure Alerts
Estados
Active Resolved
¿Y qué estados puede tener una Azure Alert una vez lanzada?
Pues aunque parezca evidente, una Azure Alert puede tener un estado Activado o un
estado Resuelto. Cuidado, y con esto hago un poco de spoiler, porque Azure Alerts
levantará una alerta en el momento en el que la condición que configuréis se cumpla,
pero también en el momento en el que la métrica que generó la alerta anterior queda
resuelta.
16
Azure Alerts
¿Qué podemos controlar?
Y quizá, llegados a este punto, os preguntaréis… ¿Qué puedo controlar mediante Azure
Alerts en una web app?
Pues parámetros diversos, como el tiempo de CPU, las peticiones que recibe un servicio
o aplicación por parte de los usuarios finales, o la cantidad de errores que nuestra
aplicación ha generado.
Estas condiciones de Azure Alerts se gestionan mediante umbrales de tolerancia. Lo
veremos más adelante, tranquilos… durante el tiempo demo!
17
Azure Alerts
¿Y cómo me avisa?
¿Qué queda?
Pues saber de qué modo nos avisa Azure Alerts de que algo va mal (o de que una de
nuestras métricas se cumple).
En este caso, estamos algo más limitados… Azure Alerts nos envía un correo
electrónico…
¿De qué le sirve eso a Lito cuando duerme? De nada…
Por suerte…
18
Azure Alerts
¿Y cómo me avisa?
… además de correos electrónicos, Azure Alerts nos permite invocar una llamada a un
webhook cuando se genera una alerta. Ese es el camino que vamos a seguir, porque en
realidad la alerta sólo nos avisa de que algo pasa, pero para poder actuar en
consecuencia… necesitamos algo más.
Y es aquí donde vamos a utilizar una solución serverless, que para los que no sepan que
es eso de serverless, os digo que no es que no tengáis un ordenador detrás de vuestra
solución… sino que es un ordenador muy tocho… muy muy tocho… inmensamente
tocho, del que no os tenéis que preocupar porque de eso se encarga Micro… en el que
podéis montar una aplicación en una pequeña parte de dicha máquina. Os presento…
19
Azure Functions
¿Qué son?
Azure Functions no es más que un servicio serverless de Microsoft Azure, que permite
desplegar aplicaciones de diversa tipología en un entorno altamente escalable.
Los tipos de aplicación que admite este servicio van desde servicios de backend móvil
hasta servicios event-based asociados a otros servicios como Azure Service Bus (esto no
lo explicaremos hoy).
Una de las gracias de Azure functions es que la podéis programar como os de la gana.
> https://docs.microsoft.com/en-us/azure/azure-functions/supported-languages
En Java incluso. Sí… seguro que más de uno se estará preguntado qué es ese logo de ahí
abajo… el blanco y azul sobre fondo negro…
Ese logo es el del lenguaje F#, un lenguaje funcional que Microsoft adoptó… o creó… no
lo tengo muy claro, para permitir a los desarrolladores del entorno Microsoft disponer
de un lenguaje con el que poder cubrir el escenario de la programación funcional.
> https://es.wikipedia.org/wiki/F_Sharp
20
Pero hoy hemos venido a hablar de uno de los lenguajes que Azure Functions admite de
manera experimental… y este es, nada más y nada menos… que powershell, amigos.
20
Azure Functions
¿Por qué powershell?
Hay varios motivos para escoger powershell:
➢ Es un lenguaje simple de scripting, pensado para realizar tareas de mantenimiento de
equipos y de infraestructuras…
➢ … como por ejemplo la disponible en Azure, para el que existe un módulo específico
que permite manejar casi cualquier artefacto en la nube… y…
➢ … también porque Manu y Nacho tienen cierta animadversión a las consolas,
terminales y todo eso… aunque he de reconocer que poco a poco le van cogiendo el
gustillo.
Teniendo en cuenta que Lito necesita reiniciar la webapp de Colored Stars cuando esta
cae… ¿qué mejor que un lenguaje de administradores de sistema para hacerlo?
21
Azure Functions
Webhooks
Hemos escogido nuestro arma. Ahora temenos que encontrar la manera de utilizarla.
Azure Functions permite configurar tres tipos de webhooks de forma nativa:
- General Webhooks
- Github webhooks
- Slack webhooks
A nosotros nos interesa el primero de ellos. Mediante un general webhook, podremos
hacer que nuestra alert avise a nuestra function para que haga lo que queremos hacer.
El problema… es que desde las plantillas disponibles, solo podemos seleccionar
plantillas de lenguajes probados, como c#, no de lenguajes experimentales. Lo veremos
en la demo. Ya queda menos.
22
Azure Functions
Interacción con el management API de Azure
Sólo nos queda una cosa por solucionar, y es cómo autenticamos nuestras operaciones
de administración automáticas contra el management de Azure…
¡Fácil, sencillo y para toda la familia!
Azure Active Directory nos proporciona un mecanismo para autorizar aplicaciones, de
manera que se generen unas credenciales que nos permitan ejecutar procesos
desasistidos o servicios (en este caso nuestra function de reinicio).
De hecho, dentro de Azure Active Directory tenemos una serie de roles por defecto, de
los cuales nos aprovecharemos para que nuestra aplicación tenga acceso para gestionar
nuestros artefactos de Azure.
Referencias: https://docs.microsoft.com/en-us/azure/active-directory/role-based-
access-built-in-roles
23
DEMO
24
Y colorín colorado…
Así que… después de todo, todos contentos. Puigmercial, Tina y Lito… todos felices
gracias a Azure Alerts y las posibilidades de diseño serverless que ofrece Azure.
¡Estrellas de colores para todos!
25
Q&A
@angel_g_santos
agarcia@pasiona.com@
Ángel García Santos
26
GRACIAS
27

More Related Content

Similar to #4Sessions - Azure Alerts - ¿Has probado a reiniciar?

Similar to #4Sessions - Azure Alerts - ¿Has probado a reiniciar? (20)

03 Software Parte I
03  Software  Parte  I03  Software  Parte  I
03 Software Parte I
 
Cecyte jerecuaro
Cecyte jerecuaroCecyte jerecuaro
Cecyte jerecuaro
 
Taller de computación
Taller de computaciónTaller de computación
Taller de computación
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Clase numero 6
Clase numero 6Clase numero 6
Clase numero 6
 
Ubuntu en la Nube
Ubuntu en la NubeUbuntu en la Nube
Ubuntu en la Nube
 
Anexo 18 actividad 5 adminsitracion de sistemas operativos en red
Anexo 18  actividad 5 adminsitracion de sistemas operativos en redAnexo 18  actividad 5 adminsitracion de sistemas operativos en red
Anexo 18 actividad 5 adminsitracion de sistemas operativos en red
 
OpenNebula Oneflow: give me the flow!
OpenNebula Oneflow: give me the flow!OpenNebula Oneflow: give me the flow!
OpenNebula Oneflow: give me the flow!
 
Monitoreo de redes
Monitoreo de redesMonitoreo de redes
Monitoreo de redes
 
E book en adobe
E book en adobeE book en adobe
E book en adobe
 
E book
E bookE book
E book
 
E book
E bookE book
E book
 
Sistema operativo p31p 3c
Sistema operativo p31p 3cSistema operativo p31p 3c
Sistema operativo p31p 3c
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Ensayo sobre los Sistemas operativos
Ensayo sobre los Sistemas operativosEnsayo sobre los Sistemas operativos
Ensayo sobre los Sistemas operativos
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
reporte
reporte reporte
reporte
 
Azure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsAzure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functions
 
Practica int 3
Practica int 3Practica int 3
Practica int 3
 
Anexo 26-practica-7
Anexo 26-practica-7Anexo 26-practica-7
Anexo 26-practica-7
 

More from [T]echdencias

Transformacion digital, formacion y empleo
Transformacion digital, formacion y empleoTransformacion digital, formacion y empleo
Transformacion digital, formacion y empleo[T]echdencias
 
React & Redux for noobs
React & Redux for noobsReact & Redux for noobs
React & Redux for noobs[T]echdencias
 
¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta!¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta![T]echdencias
 
Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega [T]echdencias
 
Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?[T]echdencias
 
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado DíazSeamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz[T]echdencias
 
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia[T]echdencias
 
Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365 Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365 [T]echdencias
 
Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite [T]echdencias
 
Testear videojuegos con Unity3D
Testear videojuegos con Unity3D Testear videojuegos con Unity3D
Testear videojuegos con Unity3D [T]echdencias
 
The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17[T]echdencias
 
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17[T]echdencias
 
Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17[T]echdencias
 
Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17[T]echdencias
 
2D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 20162D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 2016[T]echdencias
 
Application Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BIApplication Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BI[T]echdencias
 
Botón derecho --> publicar
Botón derecho --> publicarBotón derecho --> publicar
Botón derecho --> publicar[T]echdencias
 

More from [T]echdencias (20)

Transformacion digital, formacion y empleo
Transformacion digital, formacion y empleoTransformacion digital, formacion y empleo
Transformacion digital, formacion y empleo
 
I get the Power BI
I get the Power BII get the Power BI
I get the Power BI
 
Selenium + docker
Selenium + dockerSelenium + docker
Selenium + docker
 
React & Redux for noobs
React & Redux for noobsReact & Redux for noobs
React & Redux for noobs
 
Azure Logic Apps
Azure Logic Apps Azure Logic Apps
Azure Logic Apps
 
¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta!¡Bzz...! ¡Tienes una alerta!
¡Bzz...! ¡Tienes una alerta!
 
Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega Windows Template Studio by Martin Vega
Windows Template Studio by Martin Vega
 
Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?Event Grid, colega que pasa en mi nube?
Event Grid, colega que pasa en mi nube?
 
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado DíazSeamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
Seamos 'Hipster', pensemos en ServerLess - Manu Delgado Díaz
 
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
[Codemotion Madrid 2017] Como hacer una presentacion y no matar a la audiencia
 
Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365 Power Users - Nueva experiencia Office 365
Power Users - Nueva experiencia Office 365
 
Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite Node.js + Azure, o como mezclar agua con aceite
Node.js + Azure, o como mezclar agua con aceite
 
Testear videojuegos con Unity3D
Testear videojuegos con Unity3D Testear videojuegos con Unity3D
Testear videojuegos con Unity3D
 
The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17The big ball of mud | 4Sessions Feb17
The big ball of mud | 4Sessions Feb17
 
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17DevOps -  Más allá del botón derecho > publicar | 4Sessions Feb17
DevOps - Más allá del botón derecho > publicar | 4Sessions Feb17
 
Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17Primer vistazo al computer vision | 4Sessions Feb17
Primer vistazo al computer vision | 4Sessions Feb17
 
Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17Arduino para seres humanos | 4Sessions Feb17
Arduino para seres humanos | 4Sessions Feb17
 
2D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 20162D zombies survival game | Codemotion 2016
2D zombies survival game | Codemotion 2016
 
Application Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BIApplication Insight + stream analytics + Power BI
Application Insight + stream analytics + Power BI
 
Botón derecho --> publicar
Botón derecho --> publicarBotón derecho --> publicar
Botón derecho --> publicar
 

#4Sessions - Azure Alerts - ¿Has probado a reiniciar?

  • 1. Azure Alerts ¿Has probado a reiniciar? #4Sessions 1
  • 2. Ángel García Santos @angel_g_santos Key developer agarcia@pasiona.com@ 2
  • 3. Os presento a… Tina Tina es la responsable de negocio de la empresa “Colored Stars”. Su empresa se dedica a ofrecer estrellas de colores a sus clientes. Miles de estrellas. De todos los tamaños. De todo tipo. Pero toda su infraestructura informática la tienen on-premises. En una sala muy chula, con el aire acondicionado a tope, lleno de cables y de ordenadores, racs de discos, cajas vacías, routers viejos… una fregona, una escoba y un recogedor. 3
  • 4. … y también a… Lito Lito es empleado de la empresa CloudRulesButSupportOnPremises. CRUSOP. Trabaja como IT administrator, y su responsabilidad actual es atender las llamadas de los clientes que experimenten problemas con alguna de sus aplicaciones… Está… digamos… asegurándose de que todo sigue funcionando. 4
  • 5. … y también a… Lito Pero claro… Lito tiene la mania de dormir 8 horas todos los días. Y sus clientes son internacionales, por los que tiene que estar disponible para atender sus llamadas... Incluso cuando duerme. 5
  • 6. Un día… Puigmercial Un día, un Puigmercial… digo… comercial se presentó en las oficinas de “Colored Stars” para ofrecerles pasar todas sus soluciones al cloud. En concreto, al cloud de Microsoft. En un primer momento, Tina dudó de lo que le explicaban, pero al final… 6
  • 7. Un día… … aceptó la oferta. 7
  • 8. Tiempo después… Todo iba genial. ¡Azure es la hostia! Pero no todas las aplicaciones que tenían en “Colored Stars” estaban bien programadas… imaginaos… ¡tenían aplicaciones en Visual Basic! ¡¡¡Visual Basic!!! Y claro, un día… 8
  • 9. Tiempo después… … la aplicación principal de Colored Stars cayó… todo dejó de funcionar. 9
  • 10. Tiempo después… Tina llamó a Lito… y Lito solo le supo decir que había que reiniciar la aplicación. Lo hizo, desde el portal de Azure es muy fácil. Pero eran las 4h de la mañana. Y esto se repitió durante los tres días siguientes… y pasó un mes, y casi cada día Lito recibía llamada de Tina. 10
  • 11. Así que… Así que Lito pensó en cómo no tener que atender llamadas de ese tipo, de las que solo hace falta levantarse para reiniciar la aplicación. 11
  • 12. Así que… Y de ese análisis, después de mucho buscar, encontró la solución. 12
  • 14. Overview Pero… ¿De qué estamos hablando? 14
  • 15. Azure Alerts ¿Qué son? Azure Alerts es un servicio de Azure mediante el que se proporciona un método de monitorización a algunos servicios de Azure. Aunque en realidad el origen de Alerts está vinculado a Azure Monitor, otros servicios, como las WebApps, permiten configurar criterios sobre los datos de monitorización del artefacto para lanzar una notificación advirtiendo de que las condiciones definidas por el criterio de la alerta se han cumplido. Enlaces: • https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring- overview-alerts 15
  • 16. Azure Alerts Estados Active Resolved ¿Y qué estados puede tener una Azure Alert una vez lanzada? Pues aunque parezca evidente, una Azure Alert puede tener un estado Activado o un estado Resuelto. Cuidado, y con esto hago un poco de spoiler, porque Azure Alerts levantará una alerta en el momento en el que la condición que configuréis se cumpla, pero también en el momento en el que la métrica que generó la alerta anterior queda resuelta. 16
  • 17. Azure Alerts ¿Qué podemos controlar? Y quizá, llegados a este punto, os preguntaréis… ¿Qué puedo controlar mediante Azure Alerts en una web app? Pues parámetros diversos, como el tiempo de CPU, las peticiones que recibe un servicio o aplicación por parte de los usuarios finales, o la cantidad de errores que nuestra aplicación ha generado. Estas condiciones de Azure Alerts se gestionan mediante umbrales de tolerancia. Lo veremos más adelante, tranquilos… durante el tiempo demo! 17
  • 18. Azure Alerts ¿Y cómo me avisa? ¿Qué queda? Pues saber de qué modo nos avisa Azure Alerts de que algo va mal (o de que una de nuestras métricas se cumple). En este caso, estamos algo más limitados… Azure Alerts nos envía un correo electrónico… ¿De qué le sirve eso a Lito cuando duerme? De nada… Por suerte… 18
  • 19. Azure Alerts ¿Y cómo me avisa? … además de correos electrónicos, Azure Alerts nos permite invocar una llamada a un webhook cuando se genera una alerta. Ese es el camino que vamos a seguir, porque en realidad la alerta sólo nos avisa de que algo pasa, pero para poder actuar en consecuencia… necesitamos algo más. Y es aquí donde vamos a utilizar una solución serverless, que para los que no sepan que es eso de serverless, os digo que no es que no tengáis un ordenador detrás de vuestra solución… sino que es un ordenador muy tocho… muy muy tocho… inmensamente tocho, del que no os tenéis que preocupar porque de eso se encarga Micro… en el que podéis montar una aplicación en una pequeña parte de dicha máquina. Os presento… 19
  • 20. Azure Functions ¿Qué son? Azure Functions no es más que un servicio serverless de Microsoft Azure, que permite desplegar aplicaciones de diversa tipología en un entorno altamente escalable. Los tipos de aplicación que admite este servicio van desde servicios de backend móvil hasta servicios event-based asociados a otros servicios como Azure Service Bus (esto no lo explicaremos hoy). Una de las gracias de Azure functions es que la podéis programar como os de la gana. > https://docs.microsoft.com/en-us/azure/azure-functions/supported-languages En Java incluso. Sí… seguro que más de uno se estará preguntado qué es ese logo de ahí abajo… el blanco y azul sobre fondo negro… Ese logo es el del lenguaje F#, un lenguaje funcional que Microsoft adoptó… o creó… no lo tengo muy claro, para permitir a los desarrolladores del entorno Microsoft disponer de un lenguaje con el que poder cubrir el escenario de la programación funcional. > https://es.wikipedia.org/wiki/F_Sharp 20
  • 21. Pero hoy hemos venido a hablar de uno de los lenguajes que Azure Functions admite de manera experimental… y este es, nada más y nada menos… que powershell, amigos. 20
  • 22. Azure Functions ¿Por qué powershell? Hay varios motivos para escoger powershell: ➢ Es un lenguaje simple de scripting, pensado para realizar tareas de mantenimiento de equipos y de infraestructuras… ➢ … como por ejemplo la disponible en Azure, para el que existe un módulo específico que permite manejar casi cualquier artefacto en la nube… y… ➢ … también porque Manu y Nacho tienen cierta animadversión a las consolas, terminales y todo eso… aunque he de reconocer que poco a poco le van cogiendo el gustillo. Teniendo en cuenta que Lito necesita reiniciar la webapp de Colored Stars cuando esta cae… ¿qué mejor que un lenguaje de administradores de sistema para hacerlo? 21
  • 23. Azure Functions Webhooks Hemos escogido nuestro arma. Ahora temenos que encontrar la manera de utilizarla. Azure Functions permite configurar tres tipos de webhooks de forma nativa: - General Webhooks - Github webhooks - Slack webhooks A nosotros nos interesa el primero de ellos. Mediante un general webhook, podremos hacer que nuestra alert avise a nuestra function para que haga lo que queremos hacer. El problema… es que desde las plantillas disponibles, solo podemos seleccionar plantillas de lenguajes probados, como c#, no de lenguajes experimentales. Lo veremos en la demo. Ya queda menos. 22
  • 24. Azure Functions Interacción con el management API de Azure Sólo nos queda una cosa por solucionar, y es cómo autenticamos nuestras operaciones de administración automáticas contra el management de Azure… ¡Fácil, sencillo y para toda la familia! Azure Active Directory nos proporciona un mecanismo para autorizar aplicaciones, de manera que se generen unas credenciales que nos permitan ejecutar procesos desasistidos o servicios (en este caso nuestra function de reinicio). De hecho, dentro de Azure Active Directory tenemos una serie de roles por defecto, de los cuales nos aprovecharemos para que nuestra aplicación tenga acceso para gestionar nuestros artefactos de Azure. Referencias: https://docs.microsoft.com/en-us/azure/active-directory/role-based- access-built-in-roles 23
  • 26. Y colorín colorado… Así que… después de todo, todos contentos. Puigmercial, Tina y Lito… todos felices gracias a Azure Alerts y las posibilidades de diseño serverless que ofrece Azure. ¡Estrellas de colores para todos! 25