Pros y contras de una arquitectura de marionetas descentralizada

14

Tenemos alrededor de 300 servidores RHEL que actualmente se están conectando a un servidor Puppetmaster. Sin embargo, hemos notado algunos cuellos de botella en el rendimiento y es el punto de falla en nuestro sistema. Soy bastante nuevo en Puppet en general y estoy considerando crear una arquitectura descentralizada de Puppet en lugar de que los clientes de Puppet se conecten al servidor de Puppetmaster. Además de lo que sospecho que sucederá, como la ganancia de rendimiento y la falta de firma e intercambio de certificados SSL para máquinas nuevas, ¿cuáles son otras ventajas y desventajas de configurar una arquitectura descentralizada?

JMeterX
fuente
3
¿Hay alguna razón por la que tiene que ser de una manera u otra? ¿Has considerado opciones en algún punto intermedio? Con tantos servidores y una preocupación por un solo punto de falla, ¿por qué no ha configurado maestros adicionales? La configuración de varios servidores de marionetas con carga equilibrada se trata en el libro 'Pro Puppet'. Hay mucha flexibilidad, incluso debería ser posible configurar una jerarquía de servidores de títeres si eso tuviera sentido.
Zoredache
@Zoredache Realmente no hay una razón por la que tenga que ser de una forma u otra, estaba buscando más información sobre una arquitectura descentralizada en general para ayudar a facilitar la decisión. He considerado maestros adicionales, pero el núcleo de la idea, que pido disculpas por no mencionar, es reducir el recuento de servidores, ya que afecta directamente nuestro presupuesto. Estoy de acuerdo, el equilibrio de carga de los servidores de títeres tiene sentido, pero si puedo deshacerme de un servidor, esa sería la mejor solución.
JMeterX

Respuestas:

7

Ve descentralizado.

En lugar de firmar certificados, cree claves ssh. No les des las claves a los no administradores

Puede usar Git como su transporte en lugar de subversión, y luego puede bifurcarse para diferentes máquinas / roles, y luego versionar sus cambios, así como permitir ... pero debe conocer la división DVCS en este punto.

Es más rápido y menos complicado de configurar. Agregue algunos ganchos de confirmación para la comprobación de la cordura.

Ahora, en este punto, ha reemplazado el puppetmaster, con su modelo cliente-servidor, con ssh y git, los cuales escalan mejor que el puppetmaster.

Ahora, puede haber una necesidad en su organización de jerarquía. No hay problema, simplemente almacene el repositorio de git que contiene la rama definitiva en un lugar seguro.

Prima:

git blame

le permitirá ver quién hizo un cambio.

http://bitfieldconsulting.com/scaling-puppet-with-distributed-version-control

https://www.braintreepayments.com/braintrust/decentralize-your-devops-with-masterless-puppet-and-supply-drop ?

chiggsy
fuente
3

¿Estás ejecutando marionetas en pasajero? configuraciones almacenadas? Realmente no debería tener problemas de escalabilidad con 300 nodos siempre que maneje problemas de configuración básicos.

Czervik
fuente
1
Estamos utilizando la configuración de Apache + Passenger. También estamos usando la subversión para impulsar los cambios al Puppetmaster
JMeterX
1

Descentralizado es la mejor manera de hacerlo porque cada cliente compila su propio manifiesto a partir de una copia local de la fuente del manifiesto. Esto se actualiza cada vez que se envían actualizaciones del servidor say git. Uso mucho más eficiente del ancho de banda ya que los clientes no tienen que contactar al puppetmaster en cada carrera. También elimina puntos únicos de falla ya que los clientes pueden actualizarse desde cualquier lugar.

What'sTheStoryWishBone
fuente