GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo aplica prácticas de desarrollo como control de versiones, pruebas e integración/implementación continua a la administración del sistema?

Solución 1:

Descargo de responsabilidad:soy uno de los desarrolladores de Puppet.

La forma obvia es simplemente aplicar los conceptos:definir un ciclo de desarrollo/prueba/producción e impulsar cambios a través de ellos. Utilice el control de versiones para realizar un seguimiento de los sistemas.

En poco tiempo, comenzar por ese camino lleva a descubrir que usted realmente quiere herramientas que automaticen esas cosas; esencialmente, que quiere automatizar la administración de sistemas, para que no use esas técnicas en las máquinas, las use en el sistema que gestiona las máquinas.

Herramientas como Chef, Puppet, Salt y CFEngine son herramientas populares para abordar esa segunda necesidad. Trabajan en la dirección general de convertir la administración de sistemas en una solución central que puede controlar y probar versiones.

El movimiento DevOps es otra fuente de buena información sobre cómo hacer esto. Si bien el precepto es una mejor cooperación entre los desarrolladores y el personal de operaciones, también tiende en la misma dirección.

Solución 2:

La respuesta corta es "Gestión de implementación de SO", "Gestión de configuración" y "Paquete de software". Sigue una respuesta larga.

Me gustaría agregar a la respuesta de Daniel Pittman un desglose de lo que forma un "sistema" en la administración de sistemas.

Un sistema o un entorno va a formar parte de:

  • Servidores
  • Sistema operativo
  • Configuración
  • Paquetes de proveedores; y
  • Paquetes locales

Envolviéndolos habrá procesos como:

  • Implementación o creación de imágenes del sistema operativo
  • Gestión de configuración
  • Administración de paquetes de software
  • Auditoría/registro
  • Supervisión
  • Copias de seguridad

Y le gustaría que estos se combinaran para ayudarlo a lograr objetivos no funcionales como:

  • Repetibilidad
  • Mantenibilidad
  • Medicibilidad
  • Rendimiento
  • Rastreabilidad
  • Comprobabilidad
  • Modificabilidad

Este es un volcado de cerebro rápido. Estoy seguro de que se podrían agregar más a todas las listas.

Su pregunta toca varios de estos sin usar las palabras específicas. Por ejemplo, desea poder implementar fácilmente y revertir, es decir, desea mantenibilidad; desea hacerlo en un entorno de prueba y probar hasta que pase, es decir, repetibilidad, capacidad de prueba y mensurabilidad; está pensando en poner imágenes de máquinas virtuales en el control de versiones porque le gustaría la repetibilidad del sistema operativo y las implementaciones de configuración.

Hay muchas herramientas para ayudarte con esto, algunas de ellas mencionadas por Daniel. Algunos otros son:

  • Kickstarts (basado en RedHat), Preseed (basado en Debian), WDS (MS Windows) para implementar entornos de SO conocidos
  • Paseo espacial/satélite (basado en RedHat), políticas de grupo (MS Windows) para configuración y administración de paquetes
  • Sistemas de empaquetado YUM y APT para generar, implementar, actualizar y eliminar paquetes (conjuntos de archivos binarios, datos y configuración que comprenden una pieza de software)
  • Nagios, OpenNMS y SCOM para monitoreo
  • Amanda, Bacula y Windows Backup Server para copias de seguridad
  • Munin, PCP e Hyperic para la supervisión del rendimiento
  • CVS, SVN, GIT o Bazaar para control de versiones
  • Hudson y Jenkins para la gestión de compilaciones
  • Selenium y Robot para pruebas
  • Bugzilla, Request Tracker y Jira para registro, comunicación y seguimiento

Una vez más, esta no es una lista exhaustiva, sino algo que guardo en mi cabeza para guiarme y espero que también te ayude.


Linux
  1. Pruebas de integración continua para el kernel de Linux

  2. Cómo verificar la versión del Kernel en Linux

  3. ¿Qué es la Curación de Contenidos y cómo se debe hacer?

  4. Cómo:replicación y configuración de DRBD

  5. ¿Cómo hacer y aplicar el parche SVN?

Cómo instalar y usar Git en el sistema Linux

Cómo verificar los detalles de la versión de Ubuntu y otra información del sistema

¿Cómo obtener la última versión (beta y desarrollo) de Chromium?

Cómo instalar y configurar Redis en el sistema Linux

Cómo instalar la herramienta de administración y aprovisionamiento de configuración de Foreman en CentOS 8

Cómo rastrear y rastrear un proceso de Linux