Compartir a través de


Uso de la infraestructura como código para actualizar las zonas de aterrizaje de Azure

En este artículo se describen las ventajas de usar la infraestructura como código (IaC) para actualizar las zonas de aterrizaje de Azure. Las organizaciones deben actualizar sus zonas de aterrizaje a medida que realizan sus operaciones para asegurarse de que las configuraciones son correctas y que responden a la necesidad de cambios.

IaC puede administrar todo el ciclo de vida y destaca en la administración de los recursos que implementa. Las organizaciones deben planear la implementación de sus zonas de aterrizaje de Azure con IaC. Requiere planear la alineación de los recursos existentes que no son de IaC con los recursos de IaC respaldados por la administración de estado. Debe asignar los recursos existentes al estado deseado.

Para más información, consulte Mantener actualizada la zona de aterrizaje de Azure.

Funcionamiento de la infraestructura como código

IaC hace referencia a la práctica y las herramientas para administrar el ciclo de vida de los recursos de infraestructura mediante archivos de definición legibles por máquinas. La definición de la infraestructura se escribe, tiene versiones, se implementa a través de canalizaciones y, a continuación, se convierte en parte de la implementación de las cargas de trabajo.

Las tecnologías de IaC son declarativas, lo que significa que cuando se ejecuta IaC, establece la configuración en lo que se describe en el código, independientemente de su estado actual. Al configurar la infraestructura a través de scripts, como la CLI de Azure o Azure PowerShell, se trata de una tecnología imperativa. Los scripts imperativos realizan un conjunto de acciones y el resultado depende del estado actual más el estado después de las acciones.

Por lo tanto, si tiene una definición de infraestructura como código para un recurso de Azure, puede ejecutar esa definición con la frecuencia que desee y solo crea un cambio si:

  • La definición cambia para agregar nuevos recursos, quitar los recursos implementados anteriormente o modificar los recursos que se implementaron anteriormente.
  • El recurso implementado se desvía de la configuración para restablecer la configuración a la definida.

Puede usar IaC para restaurar el estado quitando los recursos que ya no son necesarios y administrando el ciclo de vida de los recursos a través de muchos cambios.

Nota

La mecánica específica para quitar recursos con IaC varía. Por ejemplo, Azure Bicep requiere el uso de un tipo de implementación complete para corregir los recursos fuera del ámbito. Este comando solo funciona en ámbitos específicos. Para Terraform, los recursos tienen un meta-argumento lifecycle que proporciona instrucciones sobre cómo Terraform debe controlar los recursos.

En el caso de las zonas de aterrizaje de Azure, hay dos opciones principales para la infraestructura como código:

Las ventajas de actualizar ALZ con infraestructura como código

Las siguientes ventajas describen por qué debe usar la infraestructura como código para realizar las actualizaciones de la zona de aterrizaje.

Reducción de esfuerzo

Se necesita menos esfuerzo para usar la infraestructura como código para realizar actualizaciones en comparación con los cambios manuales. La implementación de IaC ayuda a responder a las siguientes preguntas:

  • ¿Cómo se configuran los recursos en la actualidad?
  • ¿Cómo se configurará con esta actualización?
  • ¿Qué cambios se realizarán para alinearse con esta actualización?

Cuando se ejecuta un conjunto de herramienta de infraestructura como código, puede producir una comparación o una lectura "diferencial" de los cambios. Revise esta lectura antes de confirmar los cambios en el entorno.

El conjunto de herramientas puede compilar la información para el cambio en lugar de un operador o un ingeniero.

Reducción del error

Debido a la naturaleza de programación de las implementaciones, la infraestructura como código reduce el error humano mientras realiza los cambios. Solo cambia lo que se define y tiene opciones de vista previa, por lo que reduce las interrupciones causadas por cambios con errores o incompletos. También ha mejorado las opciones de prueba.

Control de versiones e historial

Las implementaciones de infraestructura como código están respaldadas por un archivo de definición, por lo que puede usar el control de código fuente para administrar las versiones de las definiciones. En función del método de IaC que use, puede hacer referencia a las implementaciones en Azure para Bicep o en el archivo de estado de Terraform para revisar el historial de implementaciones anteriores.

Cuando se usan prácticas de control de código fuente, se crea una nueva rama de IaC para agregar cambios y revisiones. El historial de la rama en el sistema de control de código fuente captura las iteraciones y los cambios. Puede usarlo para implementar cambios en un entorno de prueba hasta que esté listo para combinar e implementar los cambios en producción. Para más información, consulte Enfoque de prueba para zonas de aterrizaje de Azure. A lo largo de este ciclo, los registros de implementación capturan la versión que se usa y los recursos que se implementan, lo que proporciona un historial altamente visible.

Use estos métodos de prueba con Bicep con fines de prueba generales. Con estos métodos, puede realizar pruebas antes de implementar el código y puede probar en entornos que no son de producción desde la rama.

Entornos de prueba

Las implementaciones de IaC son repetibles, por lo que puede usar la misma definición para implementar un segundo entorno (o más) en función de la implementación. Este método es valioso para probar los cambios.

Por ejemplo, si desea reemplazar Azure Firewall mediante la SKU Premium, puede implementar un entorno de prueba y validar los cambios sin cambiar la producción.

Detección de desfases de configuración

IaC proporciona una opción única para detectar desfases de configuración durante las actualizaciones. La implementación detecta los cambios en el archivo de definición y presenta los casos en las que la configuración del recurso difiere de la definición.

Las actualizaciones de la zona de aterrizaje con IaC pueden ayudarle a detectar este desfase de configuración y le permiten actualizar el código correctamente, abordar estas configuraciones incorrectas a través de la actualización o abordarlas de otra manera.

Al realizar un cambio en los recursos a través del portal, la CLI o un método que no sea de IaC, se implementa el cambio. La próxima vez que ejecute una implementación a través de IaC, marcará la comparación entre el estado definido por código y el estado real en el portal mediante funciones hipotéticas o de plan. Use este método para identificar si se ha modificado un entorno fuera del archivo de código.

Una vez identificada la alineación incorrecta, puede ejecutar IaC para intentar alinear la implementación con la definición. Use este método para identificar problemas y corregir escenarios en función de la naturaleza de los problemas, la naturaleza de la ejecución y la manera de realizar los cambios. Por ejemplo, Terraform intenta restaurar la base de referencia a los recursos que ha implementado y una implementación en modo Complete en Bicep quita los recursos de un grupo de recursos que no forman parte de la definición. Estas herramientas detectan y reparan el desfase de configuración, pero es posible que no solucionen todos los problemas.

Para obtener más información, consulte Cambios fuera de banda y Detección y administración de desfases con Terraform.

Los cambios definidos en el portal son complicados de implementar en IaC. Debe actualizar el código para que coincida con el estado actual, lo que a menudo implica revisar cada cambio de recurso y actualizar sus parámetros para que coincidan con la configuración "tal cual".

Si usa IaC para administrar la zona de aterrizaje u otros recursos, solo debe realizar cambios fuera de IaC como parte de una emergencia. Tome precauciones con cuentas que tengan acceso para realizar cambios directamente, como Privileged Identity Management.

Revise las prácticas generales de automatización y seguridad en los artículos siguientes:

Pasos siguientes

Explore una introducción a las herramientas de IaC en los siguientes artículos: