Ir al contenido principal
BlogHerramientas para desarrolladoresMejores prácticas para diseñar su infraestructura de IaC

Mejores prácticas para diseñar su infraestructura de IaC

Mejores prácticas para diseñar su infraestructura de IaC

La infraestructura como código (IaC) es una filosofía y un conjunto de prácticas para desplegar y gestionar redes en la era de la nube. La IaC está diseñada para maximizar los beneficios de la computación en la nube y aprovechar las capacidades de las herramientas de configuración e implementación automatizadas, como Puppet, Chef, Salt, Ansible y Terraform. La instalación y configuración totalmente automatizada que ofrecen estas herramientas permite al administrador definir sistemas completos con archivos de configuración.

Los archivos de configuración son conjuntos de instrucciones con especificaciones sobre cómo montar y configurar el sistema. Este conjunto de instrucciones puede adoptar muchas formas diferentes y recibir otros nombres dependiendo de la herramienta (por ejemplo, un libro de cocina en Chef y un playbook en Ansible). Independientemente de las diferencias entre plataformas, esta capacidad de definir una configuración completa por adelantado conduce a una nueva visión de la infraestructura, en la que el conocimiento de los sistemas reside en forma de código, y se despliega rápidamente en la nube sin necesidad de una instalación convencional o de reconfiguración con comandos de consola.

Los pasos para desplegar su propia solución variarán en función de su plataforma de automatización y de los detalles de su red, pero tenga en cuenta estos principios cuando empiece a explorar las posibilidades de la IaC.

  1. Sistemas sencillos y modulares

En la era del hardware, una oficina podría emplear un único sistema de servidor para el correo electrónico, el almacenamiento de archivos y varias otras tareas, pero la primera lección de la IaC es romper con la mentalidad del todo en uno. Los sistemas grandes y polivalentes añaden complejidad, y la complejidad puede dar lugar a errores y problemas de seguridad. Diseñe su infraestructura de IaC para que sea sencilla, ágil y modular y, a continuación, despliéguela como bloques de construcción para satisfacer las necesidades de su entorno.

  1. Fuente única de verdad

Varias versiones del mismo archivo de configuración pueden causar confusión y conducir a errores. Cada configuración debería tener una sola fuente. Esto significa implementar un versionado claro y efectivo utilizando un sistema de control de versiones como Git. Sin embargo, la filosofía de la fuente única de la verdad significa algo más que el control de versiones. La atención debe centrarse en una constelación central de plantillas estándar, con personalizaciones que se producen a través de un proceso claro y predecible en lugar de sobre la marcha.

  1. Sin documentación externa

El propio archivo de configuración debe contener toda la información necesaria para entender el contenido. Colocar las instrucciones y los comentarios sobre la configuración en documentos separados requiere que el equipo haga un seguimiento y mantenga archivos separados en paralelo. El viejo hábito de cambiar la configuración primero y actualizar los documentos después supone un trabajo extra, conduce a errores e invita a la posibilidad de que la configuración y la documentación no estén sincronizadas.

La mayoría de las plataformas de IaC proporcionan un medio para añadir comentarios al código, pero también es importante que los miembros del equipo se familiaricen con las herramientas de la interfaz y el lenguaje declarativo utilizado con la plataforma de la IaC para leer y comprender los detalles de la configuración.

  1. Garantía mediante pruebas automatizadas

Las pruebas automatizadas son un principio central de DevOps y de la filosofía de la IaC. La modularidad y la reproducibilidad integradas en el entorno de la IaC facilitan el modelado del entorno de producción en un entorno de pruebas. La modularidad y la reproducibilidad integradas en el entorno de la IaC facilitan el modelado del entorno de producción en un entorno de pruebas.

  1. Apóyese en lo inmutable

En la IaC, la configuración está en el código. El objetivo es expresar los detalles de la configuración a través del archivo de configuración. Una vez que el sistema cobra vida, podría tener la tentación de manejarlo y reconfigurarlo como lo haría con cualquier otro sistema informático, pero el principio de uniformidad se cumple mejor dejándolo solo. La reconfiguración local de los snowflakes puede dar lugar a errores y dificultar la seguridad y el mantenimiento del sistema. Lo ideal es hacer todos los cambios a través del archivo de configuración y luego volver a desplegar cuando haya necesidad de una actualización, en lugar de ajustar un sistema en funcionamiento.

  1. Diseñe sus procesos de colaboración

El conocimiento de la configuración y los objetivos generales debe ser compartido por todo el equipo, en lugar de limitarse a un solo usuario. El control de versiones es un componente clave del entorno de colaboración, pero solo es el principio. Debe desplegar los procesos interactivos y las herramientas de colaboración de forma que se maximice la información y la responsabilidad compartida, al tiempo que se mantienen políticas de seguridad y auditoría razonables. Un humano con información no compartida o intransferible es una amenaza para la continuidad de las operaciones.

Tenga en cuenta estos principios mientras explora las posibilidades de la IaC e imagina un proceso de despliegue para su propia infraestructura de IaC.


Comentarios

Dejar una respuesta

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *.