Want to make creations as awesome as this one?

Transcript

Herramientas de gestiónde configuración

Configuration management

4.Auditng

3.Version control

1.Identification

2.Baseline

*Da clic en cada botón

La gestión de la configuración ayuda a los equipos de ingeniería a crear sistemas sólidos y estables mediante el uso de herramientas que gestionan y supervisan automáticamente las actualizaciones de los datos de configuración. Los sistemas de software complejos están formados por componentes que difieren en granularidad de tamaño y complejidad. Si quieres un ejemplo más concreto, piensa en una arquitectura de microservicios.

...Resulta fácil

Cada servicio de esta utiliza metadatos de configuración para registrarse e inicializarse. Algunos ejemplos de metadatos de configuración de software son:Especificaciones de las asignaciones de recursos de hardware informático para la CPU, la RAM, etc.Terminales que especifican conexiones externas a otros servicios, bases de datos o dominios.Secretos como contraseña y claves de cifrado.

Resulta fácil que estos valores de configuración se conviertan en un elemento no prioritario, lo que lleva a que la configuración sea desorganizada y dispersa. Imagínate un montón de notas adhesivas con contraseñas y URL volando por la oficina. La gestión de la configuración resuelve este reto, creando una “fuente de información” con una ubicación centralizada para la configuración.

*Da clic en el botón

1

Git es una plataforma

2

A menudo

4

3

El control de versiones y la gestión

El control de versiones de la configuración permite

Da clic en cada botón

Los datos de configuración han sido siempre difíciles de gestionar y se pueden convertir con facilidad en algo no prioritario. Realmente no son códigos, por lo que no se ponen de inmediato en control de versiones. Además, no son datos de importancia superior, por lo que no se almacenan en una base de datos primaria. La administración de sistemas tradicional y a pequeña escala se suele realizar con un conjunto de scripts y procesos ad hoc. Los datos de configuración se pueden pasar por alto a veces, pero son fundamentales para el funcionamiento del sistema.

El auge de las infraestructuras

En los primeros años del desarrollo de aplicaciones de Internet, los recursos de hardware y la administración de sistemas se realizaban principalmente de forma manual. Los administradores de sistemas organizaban los datos de configuración mientras aprovisionaban y gestionaban manualmente los recursos de hardware en función de los datos de configuración. La gestión de la configuración es un elemento clave del ciclo de vida de DevOps. La configuración de la metodología DevOps es la evolución y automatización de la función de administración de sistemas, que aporta automatización a la gestión y a la implementación de la infraestructura.

Gestión de la configuración en la metodología DevOps

*Da clic en el botón

Gestión de la configuración en la CI y la CD

La gestión de la configuración en la CI y la CD utiliza flujos de trabajo de revisión de código basados en solicitudes de incorporación de cambios para automatizar la implementación de los cambios de código en un sistema de software activo. Este mismo flujo se puede aplicar a los cambios de configuración. La CI y la CD se pueden configurar para que las solicitudes de cambios de configuración aprobadas se puedan implementar de inmediato en un sistema en funcionamiento. Un ejemplo perfecto de este proceso es el flujo de trabajo de GitOps.

*Da clic en el botón

*Da clic en cada botón

Docker

Terraform

Ansible, SaltStack, Chef y Puppet

Git

Cómo implementar la gestión de la configuración

2

3

4

1

Identificación

Referencia

Control de versiones

Auditoría

5

Operaciones de TI y CMDB

*Da clic en cada botón

Alguna de las herramientas para poder un control de la configuración en la parte de código es: Git, Subversion (SVN), Mercurial, Ansible, Puppet y Chef.

VIDEOS

Las siguientes son herramientas para la gestión de la configuración en la infraestructura, como: SaltStack, CFEngine y Terraform También, hay herramientas para la configuración empresarial muy útiles tales como; configuración y cambios en todos los sistemas de la organización ServiceNow, BMC, e IBM Tivoli y gestión de la configuración.

*Da clic en el video

La primera acción para gestionar la configuración es recopilar información. Los datos de configuración se deben añadir y compilar a partir de diferentes entornos de aplicación, desarrollo, ensayo y producción para todos los componentes y servicios en uso. Cualquier dato secreto, como las contraseñas y las claves, se debe identificar, cifrar y almacenar de forma segura. En este punto, los datos de configuración se deben organizar en archivos de datos que se puedan consultar como una fuente de información centralizada.

Identificación

Hasta ahora, hemos hablado de la gestión de la configuración en lo que respecta a los activos de software en entornos ágiles y de CI/CD. Los equipos de operaciones de TI también gestionan activamente la configuración y lo hacen en una base de datos de gestión de la configuración (CMBD). Una CMDB almacena información sobre el hardware, el software y los componentes de la red, así como las relaciones entre ellos. Los equipos de operaciones de TI se encargan de las interdependencias, las licencias, los contratos y los servicios y el presupuesto necesario para que todo funcione. Con los equipos de operaciones de TI gestionando las interdependencias y los equipos de software la configuración como código, las organizaciones pueden disfrutar de sistemas estables y de un tiempo de actividad excepcional.

Operaciones de TI y CMDB

La configuración de DevOps también traslada la responsabilidad de la administración del sistema al marco de la ingeniería de software. Las empresas la utilizan hoy en día para permitir que los ingenieros de software soliciten y proporcionen los recursos necesarios bajo demanda, lo que elimina los posibles cuellos de botella en las dependencias organizativas de un equipo de desarrollo de software que espera los recursos de un equipo de administración de sistemas independiente.

Git es una plataforma fantástica para gestionar los datos de configuración. El traslado de dichos datos a un repositorio de Git permite el control de versiones y que el repositorio actúe como fuente de información. El control de versiones también resuelve otro problema de la configuración, que son las modificaciones inesperadas. La gestión de los cambios inesperados mediante el uso de la revisión del código y el control de versiones ayuda a minimizar el tiempo de inactividad.

Git es una plataforma

Referencia

  • Berczuk, S. P., & Appleton, B. (2003). Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley Professional.
  • Alexander, I. F., & Stevens, R. (2002). Writing Better Requirements. Addison-Wesley.

Terraform, de HashiCorp es una plataforma de código abierto para la gestión de la configuración. Terraform utiliza IaC para aprovisionar y gestionar clústeres, infraestructuras en la nube o servicios. Terraform es compatible con Amazon Web Services (AWS), Microsoft Azure y otras plataformas en la nube. Cada plataforma en la nube tiene su propia representación e interfaz para los componentes comunes de la infraestructura, como servidores, bases de datos y colas. Terraform desarrolló una capa de abstracción de herramientas de configuración para plataformas en la nube, la cual permite a los equipos escribir archivos que son definiciones reproducibles de su infraestructura.

Terraform

Tu proyecto de desarrollo debería utilizar un sistema de control de versiones. Si no es así, instala Git. Inicializa un repositorio para el proyecto y añade los archivos de datos de configuración al repositorio. Como advertencia antes de añadir datos de configuración a un repositorio, asegúrate de que los datos secretos, como contraseñas o claves, estén cifrados con una clave externa. Los datos secretos que se incluyan por error en un repositorio implican un gran riesgo. Se deben borrar del historial de los repositorios o cualquiera podrá aprovechar la situación y extraerlos.

Control de versiones

A menudo se añaden, eliminan o modifican valores de configuración. Sin el control de versiones, esto puede causar problemas, pues un miembro del equipo puede ajustar un valor de asignación de hardware para que el software se ejecute de forma más eficiente en su portátil personal. Cuando el software se implementa posteriormente en un entorno de producción, esta configuración nueva puede tener un efecto insuficiente o modificarse.

A menudo

Docker introdujo la contenedorización, una forma avanzada de gestión de la configuración (una especie de bloqueo de la configuración). Docker se basa en archivos de configuración denominados “Dockerfiles”, que contienen una lista de comandos que se evalúan para reconstruir la instantánea esperada del estado del sistema operativo. Docker crea contenedores a partir de estos Dockerfiles, que son instantáneas de una aplicación preconfigurada. Los Dockerfiles se envían a un repositorio de Git para realizar el seguimiento de las versiones y requieren una gestión adicional de la configuración para implementarlos en la infraestructura.

Docker

El control de versiones y la gestión de la configuración resuelven este problema, añadiendo visibilidad a las modificaciones de la configuración. Cuando se realiza un cambio en los datos de configuración, el sistema de control de versiones lo supervisa, lo que permite a los miembros del equipo revisar un registro de auditoría de las modificaciones.

El control de versiones y la gestión

El auge de las infraestructuras en la nube ha provocado el desarrollo y la adopción de nuevos patrones de gestión de infraestructuras. Las complejas arquitecturas de sistemas basados en la nube se gestionan e implementan mediante el uso de archivos de datos de configuración. Estas nuevas plataformas en la nube permiten a los equipos especificar los recursos de hardware y las conexiones de red que necesitan aprovisionar a través de archivos de datos que humanos y máquinas pueden leer, como YAML. A continuación, se leen los archivos de datos y se aprovisiona la infraestructura en la nube. Este patrón se denomina “infraestructura como código” (IaC).

El auge de las infraestructuras

El control de versiones de la configuración permite revertir o “deshacer” la configuración, lo que ayuda a evitar modificaciones inesperadas. El control de versiones aplicado a la configuración se puede revertir con rapidez a un último estado estable conocido.

El control de versiones de la configuración permite

Ansible, SaltStack, Chef y Puppet son marcos de automatización de TI que automatizan muchos procesos tradicionales de los administradores de sistemas. Cada marco utiliza una serie de archivos de datos de configuración, por lo general YAML o XML, que evalúa un ejecutable. Los archivos de datos de configuración especifican una secuencia de acciones que se deben realizar para configurar un sistema. A continuación, el ejecutable lleva a cabo las acciones. Dicho ejecutable difiere en el lenguaje entre los sistemas; Ansible y SaltStack se basan en Python, y Chef en Ruby. Este flujo de trabajo es similar a la ejecución de scripts de shell ad hoc, pero ofrece una experiencia más estructurada y pulida a través de los respectivos ecosistemas de las plataformas. Estas herramientas son las que permitirán la automatización necesaria para lograr la CI y la CD.

Ansible, SaltStack, Chef y Puppet

Git es el sistema de control de versiones líder del sectorque realiza el seguimiento de los cambios de código. Añadir los datos de gestión de la configuración junto al código en un repositorio de Git, proporciona una visión global del control de versiones de todo un proyecto. Git es una herramienta fundamental en la gestión de la configuración de mayor nivel. La siguiente lista de otras herramientas de gestión de la configuración está diseñada para que se almacene en un repositorio de Git y se aproveche el seguimiento del control de versiones de esta herramienta.

Git

La gestión de la configuración permite a los equipos que siguen una metodología ágil clasificar y priorizar sin lugar a duda el trabajo de configuración. Ejemplos de este tipo de trabajo son tareas y trabajos como los siguientes: Actualizar los certificados SSL de producción. Añadir un terminal nuevo de base de datos. Cambiar la contraseña de los servicios de correo electrónico de desarrollo en torno a ensayo y producción. Añadir claves API para una nueva integración de terceros. Una vez que se haya implantado una plataforma de gestión de la configuración, los equipos podrán ver el trabajo que se requieran para las tareas de configuración. El trabajo de gestión de la configuración puede identificarse como dependencias de otros trabajos y abordarse correctamente como parte de los sprints de la metodología ágil.

Gestión de la configuración en la metodología ágil

Una vez que los datos de configuración se hayan añadido y organizado, se puede establecer una referencia inicial. Dicha referencia presenta un estado de configuración conocido que permitirá que el software dependiente funcione correctamente. Es decir, sin errores. Esta referencia inicial se suele crear revisando la configuración de un entorno de producción en funcionamiento y confirmando esos ajustes de configuración.

Referencia

El hecho de añadir los datos de configuración a un repositorio y tenerlos organizados facilita la colaboración y permite ver la configuración del sistema. El popular flujo de trabajo de solicitudes de incorporación de cambios que los equipos de software usan para revisar y editar el código se puede aplicar a los archivos de datos de configuración. Esto ayuda a crear un sistema de auditoría y contabilidad. El equipo debe revisar y aceptar cualquier cambio que se aplique a la configuración. Esto añade responsabilidad y visibilidad a los cambios de configuración.

Auditoría

La gestión de la configuración es un proceso de ingeniería de sistemas que sirve para establecer la coherencia de los atributos de un producto a lo largo de su vida. En el mundo de la tecnología, la gestión de la configuración es un proceso de gestión de TI que supervisa los elementos de configuración individuales de un sistema de TI. Los sistemas de TI se componen de activos informáticos que varían en granularidad. Un activo informático puede representar una parte de un software, un servidor o un clúster de servidores. Lo que sigue se centra en la gestión de la configuración, tal y como se aplica directamente a los activos de software de TI y a la CI y la CD de activos de software.

+

*Pasa el cursor en el botón

Configuration management

La gestión de la configuración de software es un proceso de ingeniería de sistemas que supervisa y controla los cambios en los metadatos de configuración de los sistemas de software. En el desarrollo de software, la gestión de la configuración se utiliza habitualmente junto con el control de versiones y la infraestructura de CI y CD. Esta publicación se centra en su aplicación moderna y su uso en entornos de software de metodología ágil de CI/CD.