Infraestructura como código

Un principio fundamental de DevOps es tratar la infraestructura de la misma manera que los desarrolladores tratan el código. El código de la aplicación tiene un formato y una sintaxis definidos. Si el código no se escribe de acuerdo con las reglas del lenguaje de programación, no se pueden crear aplicaciones. El código se almacena en un sistema de administración de versiones o control de código fuente que registra un historial de desarrollo, cambios y correcciones de errores del código. Cuando el código se compila o se integra en las aplicaciones, esperamos que se cree una aplicación coherente y que la compilación sea repetible y confiable.

La práctica de la infraestructura como código significa aplicar el mismo rigor de desarrollo del código de la aplicación al aprovisionamiento de la infraestructura. Todas las configuraciones deben definirse de forma declarativa y almacenarse en un sistema de control de código fuente como AWS CodeCommit, lo mismo que el código de la aplicación. El aprovisionamiento, la orquestación y la implementación de la infraestructura también deben admitir el uso de la infraestructura como código.

La infraestructura se aprovisionaba tradicionalmente mediante una combinación de secuencias de comandos y procesos manuales. A veces, estas secuencias de comandos se almacenaban en sistemas de control de versiones o se documentaban paso a paso en archivos de texto o libros de ejecución. A menudo, la persona que escribe los libros de ejecución no es la misma persona que ejecuta las secuencias de comandos o sigue los libros de ejecución. Si estas secuencias de comandos o libros de ejecución no se actualizan con frecuencia, pueden convertirse en un obstáculo para las implementaciones. Esto hace que la creación de nuevos entornos no siempre sea repetible, fiable o coherente.

A diferencia de lo anterior, AWS proporciona una forma centrada en DevOps de crear y mantener la infraestructura. Similar a la forma en que los desarrolladores de software escriben el código de la aplicación, AWS proporciona servicios que permiten la creación, implementación y mantenimiento de la infraestructura de manera programática, descriptiva y declarativa. Estos servicios brindan rigor, claridad y fiabilidad. Los servicios de AWS que se analizan en este documento son fundamentales para una metodología de DevOps y constituyen la base de numerosos principios y prácticas de DevOps de AWS de nivel superior.

AWS ofrece los siguientes servicios para definir la infraestructura como código.