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 ] La infraestructura de TI gestionada mediante este proceso incluye equipos físicos, como servidores bare-metal , 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 .

Descripción general

La IaC surgió como respuesta a los desafíos que planteaban la computación de utilidad y los marcos web de segunda generación . En 2006, el lanzamiento de Elastic Compute Cloud de Amazon Web Services y la versión 1.0 de Ruby on Rails, apenas unos meses antes [ 2 ], generaron dificultades generalizadas de escalabilidad en las empresas, problemas que antes solo se experimentaban en grandes compañías multinacionales. [ 3 ] Con la aparición de nuevas herramientas para gestionar este campo en crecimiento, nació la idea de la IaC. La posibilidad de modelar la infraestructura con código y, posteriormente, diseñar, implementar y desplegar la infraestructura de aplicaciones con las mejores prácticas de software conocidas, resultó atractiva tanto para los desarrolladores de software como para los administradores de infraestructura de TI. 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 desplegar 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

La infraestructura como código (IaC) permite a las organizaciones gestionar servidores y sus configuraciones mediante código. Existen dos maneras de aplicar estas configuraciones a los servidores: los métodos de " envío " y " recepción ". En el método de "envío", el sistema que controla la configuración envía directamente las instrucciones al servidor. En el método de "recepción", 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 la gestión de la misma. [ 3 ] 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. [ 3 ] Proveedores establecidos como Puppet y Chef han creado sus propias comunidades. Chef tiene Chef Community Repository y Puppet tiene PuppetForge . [ 12 ] Otros proveedores se basan en comunidades adyacentes y aprovechan otros marcos 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

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 más temprano en el proceso de desarrollo. [ 13 ] 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. [ 14 ] 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. IaC está diseñado 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 . [ 15 ]

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. [ 16 ]

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. ^ Bower, Joseph L.; Christensen, Clayton M. "Tecnologías disruptivas: Aprovechando la ola". Harvard Business Review .
  3. ^ a b c Fletcher, Colin; Cosgrove, Terrence (26 de agosto de 2015). Innovation Insight for Continuous Configuration Automation Tools . Gartner (Informe).
  4. ^ Riley, Chris (12 de noviembre de 2015). "Versiona tu infraestructura" . DevOps.com .
  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 del 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. ^ a b 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. ^ "Presentamos AWS CloudFormation" .
  12. ^ 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 .
  13. ^ 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. Recuperado el 29 de enero de 2016 .
  14. ^ Infraestructura como código: Impulsando la entrega de aplicaciones más rápida (Informe). Forrester. Marzo de 2015.
  15. ^ 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.
  16. ^ "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 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Infrastructure_as_code&oldid=1359961429 "