Imagine que va a administrar una cantidad de servidores con diferentes servicios que utilizan varias personas. Ahora digamos que desea reconfigurar o reemplazar algún software en uno de esos servidores. Obviamente no desea trabajar en servidores que están en producción.
Si esto fuera un cambio de código, como desarrollador, haría el cambio en mi máquina de desarrollo local, lo probaría localmente y confirmaría el cambio en un sistema de control de versiones. Los cambios podrían implementarse en un entorno de ensayo, probarse más y finalmente implementarse en un entorno de producción. También sería fácil para mí retroceder, si fuera necesario.
En general, o específicamente, ¿cómo se logra esto en la administración del sistema?
(Lo primero que se me viene a la mente es usar máquinas virtuales y poner imágenes de máquinas virtuales en el control de versiones, pero estoy seguro de que hay mucha literatura y soluciones inteligentes que no conozco actualmente).
Respuestas:
La respuesta corta es "Gestión de implementación del sistema operativo", "Gestión de la configuración" y "Paquete de software". La respuesta larga sigue.
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 comprenderá:
Envolviendo estos serán procesos tales como:
Y le gustaría que estos se combinen para ayudarlo a lograr objetivos no funcionales como:
Esta es una descarga rápida de cerebro. 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 mantenerlo; desea hacerlo en un entorno de prueba y probar hasta que pase, es decir, repetibilidad, comprobabilidad y mensurabilidad; está pensando en poner imágenes vm en el control de versiones porque desea repetir el sistema operativo y las implementaciones de configuración.
Hay muchas herramientas para ayudarlo con esto, algunas de ellas mencionadas por Daniel. Algunos otros son:
Nuevamente, esta no es una lista completa, sino algo que tengo en mente para guiarme y espero que también te ayude.
fuente
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 los cambios a través de ellos. Utilice el control de versiones para rastrear sistemas.
En poco tiempo, comenzar por ese camino conduce a descubrir que realmente desea herramientas que automaticen esas cosas, esencialmente, que desea automatizar la administración de sistemas, para que no use esas técnicas en 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.
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.
fuente
En un mundo de Windows, estos problemas relacionados con la administración del ciclo de vida de las aplicaciones se están abordando con System Center 2012.
En System Center Virtual Machine Manager (SCVMM), los servicios se definen usando 'Plantillas de servicio' (por ejemplo, un servicio clásico de tres niveles) y los entornos de ejecución se definen como 'Nubes' (por ejemplo, desarrollo, puesta en escena, producción). Las plantillas de servicio se pueden versionar y desplegar (de forma automatizada) a diferentes nubes. Debajo de las cubiertas, SCVMM hace el trabajo para aprovisionar, implementar y configurar el hardware y el software virtualizados (VM, etc.) y el software (SO, componentes de la aplicación, etc.).
System Center Service Manager es la pieza que une esto desde un punto de vista del proceso. Por ejemplo, la gestión de problemas y el control de cambios.
fuente