Articulo de referencia

Infraestructura como código

La infraestructura como código ( IaC ) es el proceso de gestionar y aprovisionar recursos de centros de datos informáticos mediante archivos de definición legibles por máquina, ...

La infraestructura como código ( IaC ) es el proceso de gestionar y aprovisionar recursos de centros de datos informáticos mediante archivos de definición legibles por máquina, en lugar de utilizar la configuración física del hardware o herramientas de configuración interactivas. [ 1 ] Es decir, en lugar de tener que crear una configuración manualmente, existe una configuración predefinida que se puede aplicar a una máquina. [ 2 ] La infraestructura de TI gestionada por este proceso incluye equipos físicos, como servidores bare-metal , y máquinas virtuales y sus recursos de configuración asociados. Las definiciones pueden existir en un sistema de control de versiones en lugar de procesos manuales. Los archivos de definición pueden utilizar scripts o definiciones declarativas, pero IaC suele emplear enfoques declarativos .

Historia

El concepto de gestionar la infraestructura mediante código surgió de las primeras prácticas de gestión de la configuración. En la década de 1990, herramientas como CFEngine , creada por Mark Burgess en 1993, introdujeron la idea de describir la configuración del sistema en un lenguaje declarativo en lugar de ejecutar comandos manuales, sentando así las bases intelectuales de la IaC. [ 3 ]

Descripción general

La IaC surgió cuando las organizaciones comenzaron a gestionar infraestructuras más grandes y complejas, especialmente con el auge de la computación en la nube y la necesidad de aprovisionar recursos de forma consistente y a gran escala. Tratar la configuración de la infraestructura como software —almacenándola en un sistema de control de versiones, revisándola e implementándola automáticamente— permitió a los equipos reducir los errores manuales y reproducir entornos de forma fiable. La capacidad de tratar la infraestructura como código y utilizar las mismas herramientas que cualquier otro proyecto de software permitiría a los desarrolladores implementar aplicaciones rápidamente. [ 4 ]

Ventajas

El valor de IaC se puede dividir en tres categorías medibles: costo, velocidad y riesgo. La reducción de costos busca ayudar a la empresa no solo financieramente, sino también en términos de personal y esfuerzo, lo que significa que al eliminar el componente manual, las organizaciones pueden reorientar sus esfuerzos hacia otras tareas empresariales. La automatización de la infraestructura permite una mayor velocidad mediante una ejecución más rápida al configurar la infraestructura y proporciona visibilidad para ayudar a otros equipos en toda la empresa a trabajar de manera más rápida y eficiente. La automatización elimina el riesgo asociado con el error humano, como la configuración manual incorrecta; eliminar esto puede disminuir el tiempo de inactividad y aumentar la confiabilidad. Estos resultados y atributos ayudan a la empresa a avanzar hacia la implementación de una cultura DevOps : el trabajo combinado de desarrollo y operaciones . [ 5 ]

Tipos de enfoques

Generalmente existen dos enfoques para la IaC: declarativo ( funcional ) frente a imperativo ( procedimental ). La diferencia entre el enfoque declarativo y el imperativo radica esencialmente en qué frente a cómo .El enfoque declarativo se centra en cuál debería ser la configuración de destino final;El enfoque imperativo se centra en cómo se debe modificar la infraestructura para lograrlo. [ 6 ] El enfoque declarativo define el estado deseado y el sistema ejecuta lo que se necesita para alcanzarlo. El enfoque imperativo define comandos específicos que deben ejecutarse en el orden adecuado para obtener el resultado deseado. [ 7 ]

Métodos

IaC permite a las organizaciones administrar servidores y sus configuraciones mediante código. Existen dos maneras de aplicar estas configuraciones a los servidores: los métodos " push " y " pull ". En el método "push", el sistema que controla la configuración envía instrucciones directamente al servidor. En el método "pull", el servidor recupera sus propias instrucciones del sistema de control. [ 8 ]

Herramientas

Existen numerosas herramientas que permiten la automatización de la infraestructura y utilizan IaC. En términos generales, cualquier marco o herramienta que realice cambios o configure la infraestructura de forma declarativa o imperativa mediante un enfoque programático puede considerarse IaC. [ 9 ] Tradicionalmente, para lograr IaC se utilizaban herramientas de automatización del ciclo de vida del servidor y de gestión de la configuración . Actualmente, las empresas también utilizan herramientas de automatización de la configuración continua o marcos IaC independientes, como PowerShell DSC de Microsoft [ 10 ] o AWS CloudFormation . [ 11 ]

Automatización de la configuración continua

Todas las herramientas de automatización de configuración continua (CCA) pueden considerarse extensiones de los marcos tradicionales de IaC. Aprovechan IaC para modificar, configurar y automatizar la infraestructura, y también proporcionan visibilidad, eficiencia y flexibilidad en su gestión. [ 12 ] Estos atributos adicionales brindan seguridad y cumplimiento a nivel empresarial.

Contenido de la comunidad

El contenido de la comunidad es un determinante clave de la calidad de una herramienta CCA de código abierto. Según Gartner , el valor de las herramientas CCA depende tanto del contenido y el soporte aportados por la comunidad de usuarios como de la madurez comercial y el rendimiento de las herramientas de automatización. [ 12 ] Proveedores establecidos como Puppet y Chef han creado sus propias comunidades. Chef tiene Chef Community Repository y Puppet tiene PuppetForge . [ 13 ] Otros proveedores se basan en comunidades adyacentes y aprovechan otros marcos de IaC como PowerShell DSC. [ 10 ] Están surgiendo nuevos proveedores que no se basan en el contenido, sino en modelos con la inteligencia en el producto para entregar contenido. Estos sistemas visuales y orientados a objetos funcionan bien para los desarrolladores, pero son especialmente útiles para los miembros de DevOps y operaciones orientados a la producción que valoran los modelos en lugar de los scripts para el contenido. A medida que el campo continúa desarrollándose y cambiando, el contenido basado en la comunidad adquirirá cada vez más importancia en la forma en que se utilizan las herramientas de IaC, a menos que estén basadas en modelos y orientadas a objetos.

Otras herramientas incluyen AWS CloudFormation , cdist , StackStorm , Juju y Step CI.

Relaciones

Relación con DevOps

La IaC puede ser un atributo clave para habilitar las mejores prácticas en DevOps . Los desarrolladores se involucran más en la definición de la configuración y los equipos de operaciones se involucran antes en el proceso de desarrollo. [ 14 ] Las herramientas que utilizan IaC brindan visibilidad del estado y la configuración de los servidores y, en última instancia, proporcionan visibilidad a los usuarios dentro de la empresa, lo que reúne a los equipos para maximizar sus esfuerzos. [ 15 ] La automatización en general tiene como objetivo eliminar la confusión y la propensión a errores de los procesos manuales y hacerlos más eficientes y productivos. Esto permite crear mejor software y aplicaciones con flexibilidad, menos tiempo de inactividad y una forma rentable para la empresa. La IaC está diseñada para reducir la complejidad que mata la eficiencia de la configuración manual. La automatización y la colaboración se consideran puntos centrales en DevOps; las herramientas de automatización de infraestructura a menudo se incluyen como componentes de una cadena de herramientas de DevOps . [ 16 ]

Relación con la seguridad

El Informe de Amenazas en la Nube de 2020 publicado por Unit 42 (la unidad de inteligencia de amenazas del proveedor de ciberseguridad Palo Alto Networks ) identificó alrededor de 200.000 vulnerabilidades potenciales en plantillas de infraestructura como código. [ 17 ]

Véase también

Referencias

  1. Wittig, Andreas; Wittig, Michael (2016). Amazon Web Services en acción . Manning Press. pág.  93. ISBN 978-1-61729-288-0.
  2. "¿Qué es la infraestructura como código (IaC)?" . www.redhat.com . Consultado el 15 de julio de 2026 .
  3. Burgess, Mark (2004). Administración analítica de redes y sistemas . Wiley. ISBN 0-470-86100-2.
  4. Riley, Chris (12 de noviembre de 2015). "Versione su infraestructura" . DevOps.com . Recuperado el 29 de junio de 2026 .
  5. Phillips, Andrew (14 de mayo de 2015). "Transición de la automatización de infraestructura a un verdadero DevOps" . DevOps.com .
  6. "Modelos declarativos vs. imperativos para la gestión de la configuración: ¿Cuál es realmente mejor?" . Scriptrock.com . Archivado del original el 31 de marzo de 2015 . Consultado el 14 de diciembre de 2015 .
  7. Loschwitz, Martin (14 de noviembre de 2014). "Cómo elegir entre los principales gestores de configuración de código abierto" . Admin Network & Security . Lawrence, KS, EE. UU.: Linux New Media USA LLC.
  8. Venezia, Paul (21 de noviembre de 2013). "Puppet vs. Chef vs. Ansible vs. Salt" . Network World . Network World. Archivado del original el 18 de julio de 2018. Recuperado el 14 de diciembre de 2015 .
  9. Tendencias de mercado de Gartner: DevOps: no es un mercado, sino una filosofía centrada en herramientas que respalda una cadena de valor de entrega continua (Informe). Gartner. 18 de febrero de 2015.
  10. 1 2 Chaganti, Ravikanth (5 de enero de 2016). "DevOps, infraestructura como código y PowerShell DSC: la introducción" . PowerShell Magazine . PowerShell Magazine . Recuperado el 11 de enero de 2016 .
  11. "Presentación de AWS CloudFormation" .
  12. 1 2 Fletcher, Colin; Cosgrove, Terrence (26 de agosto de 2015). Innovation Insight for Continuous Configuration Automation Tools . Gartner (Informe).
  13. Sturgeon, Phil (28 de octubre de 2012). "¿Marioneta o chef?" . Archivado del original el 1 de febrero de 2016. Recuperado el 29 de enero de 2016 .
  14. Ramos, Martin (4 de noviembre de 2015). "Integración continua: infraestructura como código en DevOps" . easydynamics.com . Archivado del original el 6 de febrero de 2016. Consultado el 29 de enero de 2016 .
  15. Infraestructura como código: Impulsando la entrega de aplicaciones más rápidas (Informe). Forrester. Marzo de 2015.
  16. Wurster, Laurie F.; Colville, Ronni J.; Height, Cameron; Tripathi, Somendra; Rastogi, Aditi. Análisis de tecnologías emergentes: DevOps, un cambio cultural, no una tecnología (Informe). Gartner.
  17. "Informe sobre amenazas en la nube muestra la necesidad de un DevSecOps consistente" . InformationWeek . 13 de febrero de 2020. Consultado el 24 de febrero de 2020 .