18 votos

¿Cómo se aplican las prácticas de desarrollo como el control de versiones, pruebas e integración continua/implementación del sistema de administración?

Imagínese que usted va a manejar una serie de servidores con un número de diferentes servicios que es utilizado por un número de personas. Ahora dices que quieres volver a configurar o sustituir algunos de los software en uno de esos servidores. Obviamente, usted no quiere trabajar en servidores que están en producción.

Si este fue un cambio en el código, como desarrollador, me gustaría hacer el cambio en mi máquina de desarrollo, prueba a nivel local y confirmar el cambio a un sistema de control de versiones. Los cambios podrían implementarse en un entorno de ensayo, probado aún más y finalmente se implementa en un entorno de producción. Sería fácil para mí para volver a rodar, si es necesario.

En general, o específicamente, ¿cómo se puede lograr esto en la administración del sistema?

(La primera cosa que viene a la mente es el uso de máquinas virtuales y poner imágenes de máquina virtual en el control de la versión, pero estoy seguro de que hay un montón de literatura y soluciones inteligentes estoy en la actualidad no se cuenta.)

16voto

Daniel Pittman Puntos 4208

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

La manera más obvia es que se acaba de aplicar los conceptos: definir un ciclo de desarrollo/pruebas/producción, y pushear los cambios a través de ellos. Utilizar el control de versiones para el seguimiento de los sistemas.

En el corto plazo, empezando por ese camino conduce a descubrir que usted realmente desea herramientas que automatizan las cosas, esencialmente, que desea automatizar la administración de los sistemas, de modo que usted no uso de esas técnicas en máquinas, utilizar en el sistema que administra las máquinas.

Herramientas como Chef, Puppet, la Sal, y CFEngine son populares herramientas para enfrentar el segundo necesita. Ellos trabajan en la dirección general de inflexión en la administración de sistemas en una solución central que puede y control de versiones de prueba.

El DevOps movimiento es otra buena fuente de información sobre cómo hacer esto. Mientras que el precepto es una mejor cooperación entre los Desarrolladores y el personal de Operaciones, también tiende hacia abajo en esta misma dirección.

15voto

nearora Puntos 425

Respuesta corta es "OS de implementación de la gestión", "Gestión de Configuración" y "Software Empaquetado". Tiempo de respuesta de la siguiente manera.

Me gustaría añadir a Daniel Pittman la respuesta con un desglose de lo que constituye un "sistema" en la administración de sistemas.

Un sistema o de un entorno que va a constar de:

  • Servidores
  • Sistema Operativo
  • Configuración
  • Proveedor de paquetes; y
  • Paquetes locales

Envuelve estos serán los procesos, tales como:

  • La implementación del sistema operativo o de imagen
  • Gestión de la configuración
  • Paquete de Software de gestión
  • Auditoría/registro
  • Monitoreo
  • Las copias de seguridad

Y te gustaría tener estos se combinan para ayudar a usted con el logro de la no-objetivos funcionales, tales como:

  • Repetibilidad
  • Mantenimiento
  • Mensurabilidad
  • Rendimiento
  • La trazabilidad
  • Capacidad de prueba
  • Mutabilidad

Esta es una rápida volcado. Estoy seguro de que más podría ser añadido a todas las listas.

Tu pregunta toca en un número de éstos sin el uso de palabras específicas. Por ejemplo, usted quiere ser capaz de implementar fácilmente y volver es decir, quieren mantenimiento; quieres hacerlo en un entorno de prueba y prueba hasta que pasa es decir, la repetibilidad, la capacidad de prueba y medición; usted está pensando en poner imágenes de vm en la versión de control de porque te gustaría repetibilidad del sistema operativo y la configuración de las implementaciones.

Hay un montón de herramientas para ayudarle con esto, algunos de ellos mencionados por Daniel. Algunos otros son:

  • Kickstart (basada en RedHat), Preseed (basado en Debian), WDS (MS Windows) para implementar conocido OS entornos
  • Spacewalk/Satélite (basada en RedHat), las Directivas de Grupo (MS Windows) para la configuración y gestión de paquetes
  • YUM y APT sistemas de envasado para generar, implementar, actualizar y eliminar paquetes (conjuntos de archivos binarios, de datos y de configuración consta de una pieza de software)
  • Nagios, OpenNMS y SCOM para el seguimiento de
  • Amanda, Báculos y Copia de seguridad de Windows Server para copias de seguridad
  • Munin, PCP y Hyperic para supervisar el rendimiento
  • CVS, SVN, GIT o Bazar para el Control de versiones
  • Hudson y Jenkins para construir la gestión de
  • El selenio y el Robot para probar
  • Bugzilla, sistema de seguimiento de solicitudes y Jira para la grabación, la comunicación y el seguimiento de

De nuevo, esto no es una lista exhaustiva, pero algo que tengo en mi cabeza que me guía y esperamos que va a ayudar a usted también.

1voto

Richard B Puntos 116

En un mundo de Windows, estas cuestiones en torno a la aplicación de gestión del ciclo de vida están siendo abordadas con System Center 2012.

En System Center Virtual Machine Manager (SCVMM), se definen los servicios de uso de 'Plantillas de Servicio" (por ejemplo, un clásico de tres de nivel de servicio) y entornos de ejecución se definen como "Nubes" (por ejemplo, desarrollo, puesta en escena, producción). Plantillas de servicio puede ser versionados y puesto en marcha (en forma automática) a diferentes Nubes. Debajo de las mantas, SCVMM hace el trabajo para la provisión, implementación y configuración de la virtualizada de hardware (VMs, etc) y software (sistema operativo, de la aplicación de los componentes, etc).

System Center Service Manager es la pieza que une a este conjunto a partir de un proceso de punto de vista. Por ejemplo, el tema de la gestión y el control de cambio.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X