Intro a Marrionette Collective (MCollective)

Marrionette Collective, también conocido como mcollective es un framework para crear sistemas de orquestación de servidores o de ejecución paralela de tareas. En primer lugar lo vamos a utilizar como un medio para la ejecución programática de las acciones de la administración de sistemas en los clústeres de servidores. En

Recent Posts

Marrionette Collective, también conocido como mcollective es un framework para crear sistemas de orquestación de servidores o de ejecución paralela de tareas.

En primer lugar lo vamos a utilizar como un medio para la ejecución programática de las acciones de la administración de sistemas en los clústeres de servidores. En este sentido, operamos en el mismo espacio que herramientas como FuncFabric or Capistrano.

Hemos intentado pensar un poco más allá, diseñando este sistema sin depender de inventarios centrales o herramientas tipo SSH; nosotros somos más que un bonito ciclo for de SSH. Mcollective usa herramientas tipo Publish Subscribe Middleware y filosofías modernas, como descubrimiento en tiempo real de los recursos de red usando metadatos, y no hostnames, entregando un entorno de ejecución en paralelo súper expandible y rápido.

Para entender rápidamente quienes somos, puedes ver algunos videos en la página Screencasts y luego continuar leyendo si quieres más información y otros links. También hemos creado una demo basada en Amazon EC2, dónde puedes iniciar todas las instancias que quieras para ver cómo se comporta en vivo.

Qué es MCollective y qué te permite hacer

  • Interactúa con pequeños y grandes clústers de servidores
  • Usa un paradigma de broadcast para la distribución de solicitudes. Todos los servidores reciben todas las solicitudes al mismo tiempo, las solicitudes tienen filtros incluidos y sólo los servidores que coincidan con el filtro actuarán en ellas, pues no existe una base de datos central de activos que pueda desactualizarse, la red es la única fuente de verdad.
  • Libérate de las complejas convenciones de nombres para identificar hostnames. Usa un set completo de metadata proporcionado por cada máquina para establecerlos. Metadata viene de PuppetChefFacterOhai o plugins que tú mismo provees.
  • Viene con herramientas simples de línea de comandos para llamar a agentes remotos.
  • Puede escribir reportes personalizados acerca de tu infraestructura.
  • Contiene numerosos agentes para gestionar paquetes, servicios y otros componentes usuales; están disponibles en la comunidad
  • Te permite escribir agentes estilo RPC, clientes y Web UIs en un lenguaje simple (Ruby).
  • Súper conectable y adaptable a las necesidades locales.
  • Los sistemas middleware ya tienen muchos modelos de autenticación o autorización; aprovecha eso como primera línea de control. Incluye autenticación granular usando SSL o RSAAutorización y Auditoría de las solicitudes. Puedes ver más detalles en el resumen de seguridad
  • Re-utiliza las habilidades de middleware para hacer {'"no necesita ser plural}clustering, routing y aislamiento de red para realizar setups seguros y expandibles.

Núcleo conectable

Nuestro objetivo es proveer un framework básico estable que te permita construir dentro de un sistema que se adapta a tus necesidades, nosotros podemos conectarnos en las siguientes áreas:

  • Reemplaza nuestra elección de middleware (compatible con STOMP), con tu propia opción; por ejemplo, basada en AMQP.
  • Reemplaza nuestro sistema de autorización con uno que se adapte a tus necesidades locales.
  • Reemplaza nuestra serialización (Basada en Ruby Marshal y YAML) con tu propia opción, por ejemplo JSONSchema, la cual está disponible en una multitud de lenguajes.
  • Agrega fuentes de información; soportamos Chef y Puppet. Puedes darnos un plugin con el que podamos acceder a tus herramientas de información. La comunidad posee algunos para Facter y Ohai.
  • Crea un inventario central de servicios que aprovechan MCollective como transporte que pueda ejecutar y distribuir la información de inventario periódicamente. MCollective está bajo licencia de Apache 2.

Próximos pasos y lecturas

Tutorial y páginas introductorias

Referencias internas y Documentos de desarrollo