Juju works at the service level, not the machine level, allowing you to manage your applications efficiently at scale.
You can configure, manage and tune at service level with the flexibilty to deep dive into a node.
Charms are the code that defines a service — a charm contains all the logic you need to deploy, integrate, scale and expose the service to the outside world. Made by domain experts in any language, including ansible, puppet and chef.
Bundles of charms can be created to represent groups of services and relationships. Bundles enable you to move your service from cloud to cloud or from test, staging and production easily. Bundles can also be shared easily as yaml fles to simplify architecture collaboration.
Creating new charms is easy. Charms can be written in your choice of language and adapting existing scripts is straightforward. You can keep the new charms private, or share them back with the community.