How it works

Juju controller: the heart of Juju

Juju's controller manages all the machines in your running models, responding to the events that are triggered throughout the system.

It also manages scale out, configuration and placement of all your models and applications.

How it works overview pictogram

Application modelling for every cloud

Juju charms/bundles diagram


Charms are sets of scripts for deploying and operating software. With event handling built in, they can declare interfaces that fit charms for other services, so relationships can be formed.


Bundles are collections of charms that link services together, so you can deploy whole chunks of app infrastructure in one go.

What they do:

  • Install
  • Configure
  • Connect
  • Upgrade and update
  • Scale out and scale back
  • Perform health checks
  • Undertake operational actions
  • Benchmark


Specify the number of machines you want and how you want them to be deployed, or let Juju do it automatically.


Deploy your services with a few clicks of your mouse or re-deploy your entire app infrastructure to another cloud.

Monitor and manage

The Juju controller will manage:

  • Multiple models
  • All VMs in all your running models
  • Scale out, config and placement
  • User accounts and identification
  • Sharing and access

Frequently asked questions

What is Juju?

Juju is an open source application modelling tool that allows you to deploy, configure, scale and operate cloud infrastructures quickly and efficiently on public clouds such as AWS, GCE, and Azure along with private ones such as MAAS, OpenStack, and VSphere.

Its store allows access to a wide range of best practice solutions which you can deploy with a single command. You can use Juju from the command line or through its powerful graphical representation of the model in the GUI.

Visit the docs to install Juju

What is JAAS?

JAAS is Juju as a Service, managed by Canonical, the makers of Ubuntu. It introduces a common controller that operates all the machines in your running models.

JAAS enables you to quickly build, configure, manage and deploy your applications to the public cloud directly from your browser or the command line. It also allows you to share your models and easily collaborate with other users.

Visit the docs to get started with JAAS ›

What is the difference between Juju and JAAS?

Juju as a Service (JAAS) is a hosted service for using Juju to operate your applications. JAAS is the fastest way to operate your workloads on supported clouds with the fewest instances required. You can use JAAS alongside your other self-hosted Juju infrastructure with the same CLI and GUI.

Juju is a full release. JAAS is currently in public beta.

Try the JAAS beta ›

What are charms?

Charms are collections of scripts that contain all the operations necessary to deploy, configure, scale, and maintain cloud applications easily with Juju. Charms encapsulate a single application and all the code and know-how it takes to operate it, such us how to combine and work with other related applications or how to upgrade it.

Learn more about charms

How do I know charms are safe to use?

Charms deployed from the charm store are community vetted and open source (even though the software they encapsulate may not be).

‘Recommended’ charms have also met additional criteria and have been vetted by the Juju Charmers team.

Are Juju and JAAS free to use?

Juju is free to use. It is an open source application that you install on your own hardware.

JAAS is a hosted service. During the beta period, it is free to use.

You will incur a separate fee from your cloud provider for any resources used. Calculators for AWS, GCE and Azure can help you understand these charges.

What are bundles?

Bundles are ready-to-run collections of applications which have been modelled to work together — this can include particular configurations and relations between the software to be deployed.

Bundles may also be optimised for different deployment scenarios of the same software — for example, a scale-out production ready version like Charmed Kubernetes, or a development friendly test version like Kubernetes Core.

What is application modelling?

Application modelling is a simple way of describing what software should actually do, specified from the top down (services and how they relate) rather than built from the bottom up, making for a clean and portable expression of intent rather than a complicated recipe. Juju delivers the tools to describe your model and then to turn it into reality in a repeatable fashion on any cloud or computing resource.

All the operational hard work is automated, connecting your services so they can work together and provision the appropriate machines. You can scale up, scale down, or even re-deploy the same model on another cloud.

View how to start modelling with Juju as a Service [video]

How does it compare to Puppet and Chef?

Puppet and Chef are great tools for configuration management.

Juju provides a higher level of abstraction, supplying the tools to manage the full scope of operations beyond deployment and configuration management, regardless of the machine on which it runs.

One of the main advantages of Juju is its dynamic configuration ability, which allows you to re-configure services on the fly, add, remove, or change relationships between services, and scale in or out with ease, sharing the operational knowledge and making the most of the wider community.

What kind of applications can I deploy?

Charms are available for hundreds of common and popular cloud-oriented applications such as Kubernetes, Apache Hadoop, Big Data solutions, OpenStack, or even your own software, with new ones being added every day.

Check out the public charm store for an up to the minute list of charms ›

Can I develop a charm for my own software?

Yes! You can integrate your existing Chef, Puppet, Docker or other scripts with custom charms for your own use, or make use of the Juju store and the existing ecosystem of charm developers to package and promote your application to a wider audience. There are tools and documentation to help you get started.

Learn more about writing charms

Where can I find more detailed information?

For further information, read our more detailed guidance in the documentation. The Ubuntu website includes an overview of Canonical’s cloud products, showing how Juju fits in.

The Juju community pages include documentation with more technical detail on charms and using Juju, written by people using Juju in production environments.