¿Están ambos resolviendo el mismo problema? ¿O son para dos conjuntos diferentes de problemas? Si es así, ¿para qué mejor usar vagabundo, y para qué mejor usar juju?
fuente
¿Están ambos resolviendo el mismo problema? ¿O son para dos conjuntos diferentes de problemas? Si es así, ¿para qué mejor usar vagabundo, y para qué mejor usar juju?
versión rápida:
vagrant es una herramienta para trabajar con instancias de virtualbox. Esto se usa normalmente durante el desarrollo (en una Mac) para probar-implementar su aplicación en máquinas virtuales que se parecen más a su entorno de producción eventual (es decir, Linux). Tiene una pila de controladores personalizables (rubí) para crear un entorno virtual de la forma que desee. Vagrant es una herramienta poderosa para administrar entornos virtuales mediante programación y proporciona todo tipo de variaciones "locales" de técnicas de desarrollo de estilo de integración continua. Se usa con mayor frecuencia para ejecutar máquinas virtuales de Ubuntu en una Mac, pero se ejecutará en varias plataformas e implementará varios sistemas operativos de destino. Afaik, solo funciona con virtualbox como un "proveedor" subyacente.
juju es una herramienta para orquestar servicios utilizando varios proveedores subyacentes diferentes: nubes ec2, nubes de tachuela abierta, máquinas virtuales lxc y servidores MaaS. Comparte una historia de "desarrollo local" (usando contenedores lxc en lugar de máquinas virtuales de virtualbox) con vagabundo, pero esa es realmente la única superposición. De hecho, me gustaría ver un proveedor vagabundo escrito para juju para que juju pueda manejar contenedores de virtualbox en un entorno local con la misma facilidad que maneja imágenes en la nube y lxc. ¡Eso sería un gran ajuste! Además, juju realmente deriva mucho de su valor del conjunto de encantos / servicios que se pueden desarrollar directamente desde el primer momento, mientras que el vagabundo es esencialmente un proveedor local de contenedores de bajo nivel.
De hecho, proporcionamos una caja Vagrant con Juju para que los usuarios puedan probar el proveedor local desde una VM:
Tenga en cuenta que se han realizado esfuerzos para "unificar" los scripts de implementación alrededor de vagabundo para que se puedan usar los mismos scripts para implementar en instancias en la nube, así como en cuadros vagabundos. Estos parecen ser en su mayoría, aparte de la vagabunda propiamente dicha, y francamente solo resaltan la necesidad de una herramienta como el juju.
Re "unificando los scripts de implementación alrededor de vagrant", Vagrant tiene una excelente integración con Puppet y Chef, que se puede usar para la configuración del sistema de automatización en todos los entornos, desde cajas Vagrant hasta hardware local y nubes. De hecho, muchas personas usan Vagrant para probar sus guiones de Puppet / Chef antes de usarlos en la producción.
Sin duda sería bueno agregar Juju a la lista de herramientas de automatización que funcionan con Vagrant.