Have tried asking 3rd party about key differences between Juju and Puppet/Chef. 3rd parties are not too familiar with Juju and could not say. They simply stated the others have a lot of momentum, and it would be hard to overcome their lead.
Would those closest to Juju be willing to highlight the advantages of this software, and why it will overtake Puppet/Chef in the config management arena?
Mark, this is a great question, and was the first one I asked when somebody told me about Juju. Here's some of the big differences.
Juju encapsulates services - a charm defines all the ways the service needs to expose or consume config data to/from other services. How a charm does that is the charm's business. It can use any tool from shell scripts to Chef in solo mode, to do that.
Juju orchestrates provisioning - juju keeps track of the resources it has available to it, and can add or remove them as needed. Currently these resources are AWS EC2 machines, OpenStack clouds (like HP Cloud), Microsoft Azure, Joyent, bare metal machines via MAAS, and an LXC/KVM local provider.
Juju makes sharing easy - anyone can contribute a charm to the Juju Charm Store; these charms are vetted and peer reviewed by the Juju community.
Here are some other comparisons people have made from across the web:
(Disclaimer - I'm the founder of Puppet and CEO of Puppet Labs)
I don't know juju terribly well, but from what I can tell, they somewhat sit at different layers. Puppet is great at managing the behaviors and capabilities of machines themselves, whereas juju seems primarily dedicated to talking about sets of machines and largely punts how to make the machines behave any specific way to external tools like Puppet or shell scripts.
Our strategy with Puppet is to build the best stack from the ground up, whereas juju appears to be a specific layer of the stack and leaving other layers to other tools. Thus, while you can solve the whole problem with Puppet (albeit sometimes with a bit more work than you might like), you'll need to integrate juju with other tools to get much done.
Really, juju seems like an on-premise version of CloudFormation from Amazon, albeit without the graph and such. So, usable with Puppet etc., but not a replacement for it.
Here's another take on how Juju fits with other automation tools:
Source - Warning: login required.
In the simplest terms, juju encapsulates service discovery, a key value store, and configuration management. Puppet/chef etc are pure config management.
Juju is event based and uses a central "bootstrap node" to keep track of and orchestrate events. Puppet and chef can be made to appear event based, however it's typically just running the relevant job on a schedule.
Afaik, you can't run juju in a distributed or agentless state and this is possible with most configuration management systems.
For the most part puppet etc are domain specific languages, whereas juju is a system, not a language.