Descripción de la configuración imperativa frente a la declarativa

Completado

Hay algunos enfoques diferentes que puede adoptar para implementar la Infraestructura como código y la Configuración como código.

Dos de los métodos principales de enfoque son los siguientes:

  • Declarativo (funcional). El enfoque declarativo indica cuál debe ser el estado final. Cuando se ejecuta, el script o la definición inicializarán o configurarán la máquina para que el estado finalizado se declare sin definir cómo se debe lograr ese estado final.

Una flecha apunta desde un icono de script a un icono de dos engranajes que representan procedimientos de codificación.

  • Imperativo (procedimental). En el enfoque imperativo, el script indica el cómo para el estado final de la máquina ejecutando los pasos para llegar al estado finalizado. Define cuál debe ser el estado final, pero también incluye cómo lograr ese estado. También puede constar de conceptos de codificación como para, si-entonces, bucles y matrices.

Una flecha apunta desde un icono de script a un icono de dos engranajes que representan procedimientos de codificación, seguido de otra flecha que apunta a una imagen que representa una aplicación en su estado final.

Procedimientos recomendados

El enfoque declarativo abstrae la metodología de cómo se logra un estado. Por lo tanto, puede ser más fácil la lectura y la comprensión de lo que se está haciendo.

También facilita la escritura y la definición. Los enfoques declarativos también separan el estado deseado final y la codificación necesaria para lograr ese estado.

Por lo tanto, no le obliga a usar un enfoque determinado, lo que permite la optimización.

Por lo general, un enfoque declarativo sería la opción preferida en los casos en los que la facilidad de uso sea el objetivo principal. Los archivos de plantilla de ARM son un ejemplo de un enfoque declarativo de automatización.

Un enfoque imperativo puede tener algunas ventajas en escenarios complejos donde los cambios en el entorno se produzca con relativa frecuencia, lo cual debe tenerse en cuenta en el código.

No existe la verdad absoluta sobre cuál es el mejor enfoque y se pueden usar herramientas individuales en formularios declarativos o imperativos. El mejor enfoque que se tome dependerá de sus necesidades.