De todos es sabido que el ser humano es por defecto falible, y con tendencia a la vagancia (sobre todo los que pertenecemos a la subespecie de Homo Informaticus), por lo que el realizar tareas que se deban repetir a lo largo del tiempo, rutinarias, o con una serie más o menos compleja de pasos interrelacionados por lo general es una llamada a un problema o a pequeños descuidos que suelen acabar con frases estándar como “Pues en el ejemplo funcionaba” o “Esto a mi me compilaba”.
Cuando esta situación general se aplica al mundo de los sistemas (sean estos virtualizados o no), hace tiempo que los responsables de que una arquitectura siga funcionando siempre al máximo de su rendimiento llegamos a la conclusión de que la mejor opción a la hora de gestionar nuestros entornos era hacerlo siempre a través de un “guion” que nos permitiera realizar las acciones de forma automatizada, sistemática y repetible (y si era posible, sin intervención manual). Era el descubrimiento del “Script”.
Esta forma de plantear la solución a las tareas, en el mundo de Azure, se llama Azure Automation Services. Este servicio, que aparece debajo de “Servicios de Aplicaciones” en el portal de administración de Azure, actúa casi a nivel de “suite” donde almacenar, catalogar y gestionar la ejecución tanto de nuestros propios Runbooks como de los 170 (a día de hoy, este número va cambiando al alza casi constantemente) que aparece en la galería. El runbook es la unidad básica de ejecución, y nos permiten agrupar otros runbooks, scripts, variables, y cuentas dentro de una subscripción. Además, es posible gestionarlos y clasificarlos de forma que el acceso a cada runbook o categoría de ellos esté autorizado tan solo a determinados usuarios administradores.
Desde Azure Automation disponemos de los siguientes recursos:
Autoría:
- Generación de nuevos runbooks y/o ejecución de los que ya existentes
- Gestionar y utilizar:
- Módulos
- Credenciales de Powershell y certificados
- Variables abiertas o encriptadas
- Conexiones
- Planificaciones
- Realizar pruebas
- Publicación y versionado
Gestión:
- Vista Dashboard para ver el estado y detectar problemas en las ejecuciones
- Vista filtrada por Nombre, Autor, Estado, Fecha de publicación o ejecución, y por Etiquetas
- Vista Historial
- Historial de ejecuciones por Runbook
- Última actualización por parte de quien
- Parámetros de entrada y salida
- Posibilidad de Parar, suspender y reanudar trabjos.
Categorías de Runbooks
Los usos que podemos a estos scripts se agrupan dentro de cuatro grupos principales:
Parcheo/Actualización/Backup
Dentro de este grupo, es posible realizar mediante script tareas como:
- Parchear máquinas IaaS, sin tiempo de parada, haciendo uso de la potencia que permite el Traffic Manager
- Permitir la regeneración de las claves de almacenamiento sin parada de las aplicaciones
- Generar backups de SQL de forma periódica
- Hacer Backup y Restaurar máquinas IaaS de forma automática
Cambios de Control y Aprovisionamiento
Dentro de este grupo están las tareas que se realizan para el control de la subscripción y la automatización de tareas comunes ante peticiones:
- Desplegar máquinas virtuales en Azure / Nube on Premise y habilitar la monitorización de la máquina virtual
- Desplegar nuevos servicios a Azure y configurar los endpoints para las alertas de CPU y Memoria
- Desplegar aplicaciones desde Git, correr pruebas de validación y pasar a producción si las pruebas se consideran correctas
- Monitorizar SharePoint online a la espera de una aprobación para actualizar un servicio y actualizar el servicio una vez aprobada.
Monitorización y Remediación
Este último grupo reúne las tareas de control de los servicios y actuaciones ante problemas de forma automática
- Ante una alerta en una máquina virtual, arrancar el traceado, recoger los logs, subirlos a Azure Storage y dejarlos disponibles para la resolución de problemas a través de Visual Studio
- Monitorizar cuando se crea un nuevo servicio y configurarlo según las políticas de traceado y backup de forma automática
- Notificar a los usuarios de una subscripción cuando existan máquinas virtuales poco utilizadas y aplicar remediaciones.
Ejecución de Procesos de Negocio
Dentro de este grupo es donde se situarán los procesos automatizados de más valor para el negocio. Las acciones a realizar dependenderán de los servicios de Azure que tengamos implementados, y haciendo uso del motor de Flujos de Automation, podremos llegar a realizar practicamente cualquier interacción que consideremos necesaria. A modo de ejemplo, algunos de los procesos que podemos implementar son:
- Sacar datos de un Azure SQL y ejecutar acciones en función de los datos recuperados
- Sacar datos de una lista de SharePoint y ponerlos dentro de un blog storage en un Azure File. Posteriormente podremos limpiar la lista implementando de este modo un proceso de historificación
- Descargar periódicamente los ficheros archivados a un blog
o incluso puede utilizarse para sacar información de las noticias en un SharePoint cuando se le ponga un tag predeterminado, de forma que se publique automáticamente la misma noticia en en un blog o página pública. Como veis, se puede llegar donde la imaginación o las necesidades requieran
La galería de Runbook
Esta es uno de los grandes atractivos de Azure Automation. En caso de no saber cómo realizar alguna acción a través de Powershell, siempre es posible buscar alguno de los runbooks ya existentes que realice la misma acción, o en su caso, convertir el runbook en un módulo que se pueda utilizar en nuestro propio Runbook.
Si quereis profundizar en como Azure Automation puede ayudaros en la gestión de vuestra subscripción o granja, ¡no dudéis en avisarnos!