Una de las grandes ventajas de utilizar la nube pública es la capacidad de implementar aplicaciones y servicios a escala. Pero la escala tiene una desventaja, ya que trabajar con docenas o cientos de servidores impone nuevas limitaciones a la administración de sistemas. Mientras que podríamos administrar uno o dos dispositivos usando una CLI o una GUI, o 10 o 20 dispositivos usando nuestros propios scripts, administrar una flota masiva de dispositivos requiere un enfoque muy diferente. Necesitamos infraestructura como código y automatización. Este enfoque es la base de Azure Automation de Microsoft, una colección de herramientas para administrar infraestructuras virtuales utilizando una combinación de implementaciones declarativas y Desired State Configuration (DSC) basada en PowerShell. Azure Automation reúne tecnologías conocidas como Azure Resource Manager y el lenguaje de definición de infraestructura Bicep, lo que reduce la curva de aprendizaje y amplía sus capacidades. Al mismo tiempo, tener un marco comprobable para la implementación reduce los riesgos asociados con el escalado y las actualizaciones de aplicaciones. Una vez que su infraestructura esté implementada, Azure Automation va más allá de las implementaciones, ya que la compatibilidad con DSC le brinda un enfoque no intervencionista para mantener los servidores actualizados con parches de seguridad. Azure Automation adopta un enfoque programático para la automatización de procesos, utilizando runbooks para administrar operaciones. Los runbooks le permiten agrupar todas sus reglas de configuración e implementación en un único archivo ejecutable, escrito en PowerShell o Python. Para automatizaciones más simples, Microsoft proporciona un entorno de creación gráfica para simplificar la creación de nuevos runbooks. Para obtener el beneficio de herramientas como esta, debe integrarlas tanto en su sistema de compilación como en su marco de eventos. Microsoft usa webhooks en Azure Automation para desencadenar operaciones. Por ejemplo, podría tener una función de Azure activada por un aumento en la demanda que ejecutará una automatización para aprovisionar más instancias de la aplicación. GitHub Actions o Azure DevOps podrían activar los mismos webhooks para implementar una nueva infraestructura como parte de una compilación. Creación de runbooks en Azure Automation Los runbooks se crean en el editor de texto integrado de Azure Automation o mediante un editor gráfico. El editor de texto tiene una apariencia similar a Visual Studio Code, con soporte para IntelliSense y una biblioteca de fragmentos de código para simplificar la creación. Si usa PowerShell, el código de su runbook puede incluir cmdlets escritos previamente, así como compatibilidad con runbooks secundarios. Esta última opción le permite crear una biblioteca de runbooks que incorporan funciones clave (para crear un nuevo servidor, por ejemplo) y ensamblarlas en una implementación de infraestructura más compleja. No está limitado a crear e implementar infraestructura. Azure Automation también proporciona herramientas para trabajar con servicios de la plataforma Azure, utilizando las mismas API de la CLI de Azure para configurar servicios y hacer que los recursos resultantes estén disponibles para su código. Puede usar las herramientas de identidad administrada en Azure Automation para otorgarle una cuenta y un rol que se usan para configurar y administrar su servicio de plataforma, por ejemplo, para crear nuevas tablas en Azure SQL Database para su aplicación. Si agrega compatibilidad con Desired State Configuration en sus plantillas de Bicep o Azure Resource Manager para máquinas virtuales administradas, puede mantener la variación al mínimo, garantizando que los servidores en diferentes regiones y zonas de disponibilidad mantengan la misma configuración. Habilitar DSC equivale a una línea de PowerShell o una entrada en una plantilla de Azure Resource Manager. También es posible automatizar la configuración usando Azure Automate para configurar los ajustes del administrador de configuración y luego compilarlos para su implementación en una flota de servidores. Como alternativa, puede configurar sus máquinas virtuales para usar el nuevo servicio Azure Automanage, que es una versión actualizada de DSC destinado a administrar las propiedades de la máquina a través de Azure Resource Manager. Este enfoque proporciona herramientas tanto para la configuración del servidor como para el cumplimiento. En la práctica, es mejor utilizar la administración de cumplimiento, ya que esto garantiza que las máquinas se actualicen tan pronto como se implementen y que todas las instancias permanezcan sincronizadas, lo que reduce el riesgo a medida que se implementan nuevas actualizaciones de seguridad. Administración de tiempos de ejecución de automatización en Azure Automation Una herramienta clave para administrar y Los runbooks compatibles son el entorno de ejecución de Azure Automation. El entorno de ejecución le permite definir y controlar los entornos utilizados para alojar y ejecutar código de automatización. Al bloquear esto, se reducen los riesgos asociados con el uso de un tiempo de ejecución desconocido, evitando posibles discrepancias. Al definir un entorno de ejecución, puede controlar tres factores clave: el idioma utilizado para sus runbooks, la versión de destino y los paquetes de software necesarios. Bloquear la versión del idioma evita diferencias entre versiones, de modo que siempre esté ejecutando la versión que utilizó para crear y probar su código. Las nuevas versiones con nuevas funciones pueden incrementar las versiones en tiempo de ejecución según sea necesario. Hay buenas razones para usar un tiempo de ejecución de PowerShell reciente (como PowerShell 7.2), porque le permiten incluir comandos de la CLI de Azure en sus scripts. Azure Automation siempre usará la última versión de la CLI de Azure compatible con el lenguaje subyacente, así que tenga esto en cuenta si confía en comandos que pueden haber quedado obsoletos aunque el resto de su runbook no haya cambiado. Los entornos de ejecución se crean y administran desde el Portal de Azure o a través de su API REST. La configuración es bastante simple, ya que selecciona el idioma y la versión de las versiones compatibles. Una vez hecho esto, elige los paquetes y módulos que desea usar y los carga en su cuenta de Azure. Estos pueden provenir de su entorno de desarrollo local o de la galería de Azure Automation. Si desea actualizar la versión del idioma para una nueva versión de un runbook, todo lo que necesita hacer es seleccionar la última versión y guardar su entorno actualizado. Es posible que deba actualizar los paquetes como resultado de cualquier cambio. Azure Automation para la administración de sistemas Está muy bien poder crear nuevas infraestructuras complejas bajo demanda, pero aún necesita administrar esos nuevos servidores y redes. Azure Automation ofrece herramientas de seguimiento de cambios que le brindan un inventario en tiempo real de sus servidores. Cuando los vincula a herramientas de administración del sistema, puede verificar los recursos y monitorear las operaciones. La compatibilidad con herramientas de administración modernas incluye Azure Automation State Configuration, una versión alojada en la nube del PowerShell DSC local. Al ejecutar un servidor DSC en Azure, puede administrar el estado del servidor y automatizar las actualizaciones según sea necesario. Azure Automation State Configuration le ayuda a controlar qué se actualiza y cómo, garantizando que nunca se implementen actualizaciones no deseadas en un servidor. Tenga en cuenta que puede usar Azure Automation fuera de Azure, como parte del servicio de administración de nube híbrida de Azure Arc. Esto agrega una función de Runbook híbrido para servidores que no son de Azure, incluido el hardware físico. Azure Arc le permite administrar dispositivos perimetrales y sistemas alojados en Azure como parte de una plataforma de IoT, o administrar servicios seguros que deben estar en las instalaciones para cumplir con las normativas. ¿Recuerda cuando empezamos a hablar de servidores como ganado? A medida que agregamos más y más servidores, finalmente descubrimos que ya no podíamos administrarlos a la antigua usanza, como las mascotas. La nube nos ha llevado a un nuevo nivel, donde ni siquiera sabemos cuántos servidores tenemos. Es por eso que necesitamos automatizar la infraestructura de la nube, para hacer que nuestras aplicaciones mejoradas y trasladadas se comporten lo más cerca posible de los servicios nativos de la nube que están utilizando. Copyright © 2024 IDG Communications, Inc.

Source link