Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

245 views

Published on

Mediante Azure Alerts, podemos gestionar de forma automática actuaciones sobre nuestros artefactos de Azure basándonos en las métricas y eventos que nos proporciona.

Published in: Software
  • Be the first to comment

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

  1. 1. Azure Alerts ¿Has probado a reiniciar? #4Sessions 1
  2. 2. Ángel García Santos @angel_g_santos Key developer agarcia@pasiona.com@ 2
  3. 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. 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. 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. 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. 7. Un día… … aceptó la oferta. 7
  8. 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. 9. Tiempo después… … la aplicación principal de Colored Stars cayó… todo dejó de funcionar. 9
  10. 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. 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. 12. Así que… Y de ese análisis, después de mucho buscar, encontró la solución. 12
  13. 13. LA SOLUCIÓN 13
  14. 14. Overview Pero… ¿De qué estamos hablando? 14
  15. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  25. 25. DEMO 24
  26. 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
  27. 27. Q&A @angel_g_santos agarcia@pasiona.com@ Ángel García Santos 26
  28. 28. GRACIAS 27

×