State of Juju and the Charm Store

Jorge O. Castro jorge at
Fri Dec 7 13:41:13 UTC 2012

Hello Ubuntu Developers!

At UDS I received some hallway feedback that some of you would like an
occasional status report of what's going on in Juju land, a more high
level review to give people an idea on how things are coming along and
how that relates to Ubuntu. So before people head into the holiday
season here's a quick summary of what's going on.

# The basics:

For those of you not following, Juju is a service orchestration tool
for the cloud. A simple use case would be is if you want a mysql
server, instead of manually installing Ubuntu in a cloud, sshing in,
and installing MySQL you do a "juju deploy mysql" and Juju fires off
an instance for you in the cloud, and then installs and configures
mysql. You can then relate it to other services in the cloud and build
a deployment, add units, and generally manage the service at that
level instead of dealing with machine-level management. The scripts
that do the deployment and management are called "charms", which we
curate and keep in the Juju Charm Store, which people can then deploy
right from the command line or web UI into their cloud. The current
version is .6, which you can find in the Juju PPA.

There are currently 110 charms in the charm store, with submissions
and fixes from 108 contributors.

# Status of the Go port:

David Cheney announced juju-core 1.9.3 a few days ago, here's the highlights:


# Status of the Juju Charm Store

While 110 charms is great, people who deploy Ubuntu in the cloud
demand quality, and charm testing has been a part of the charm store
since the beginning. You can find the status of our charm testing in

One thing we're working on is having this information more
conveniently available on a charm's individual page at
so that its test results are more prominent as you browse the charm
collection. Along with this we're planning on adding a charm quality
rating to each charm to make it more obvious to people what features a
charm offers:

Additionally, at a UDS session there were some concerns as to how
visible a charm's relationship was to its security support. So for
instance, if you `juju deploy` something that is in main that you're
getting that package that is supported by the security team, and not
some other version. Though some charms have options to pull from an
upstream source we plan on making it obvious when a charm has that
option, and of course, defaulting to the supported packaged version
when appropriate and making it clear to the user what options a charm

## Platform Charms

Certain charms have the ability to pull a developer's code from
version control and deploy it in the cloud on their "application
stack". I call these platform charms and they generally map out to
common development stacks people use. So for example rails, django,
and node.js. The nice thing about these charms for web developers is
that it allows them to work on their application and deploy locally
with Juju and LXC in an environment that mimics what they would see
when deploying in a real cloud; so you'd iterate locally quickly, and
then push to your cloud when you're ready for test/production. While
we have been dogfooding the django work with Summit; rails and node.js
are complete enough where they are in the store, yet they're basic and
could use some feature work to make them more useful to that set if
developers, so if you're familiar with those stacks or know someone
that is, I'd love to work with you.

We could also use a hand with shaping up our PHP charm story (which
unfortunately right now is almost non-existant), and while we have a
Tomcat6 charm, we're very thin services that would be useful to Java
shops, so please feel free to ping me if you're a Java and/or PHP shop
and you'd like to help shape our Juju story for those platforms.

## Documentation

Our documentation has merely been adequate to this point, it can still
be difficult for people to get up and running with Juju. This is an
area I plan on improving this cycle. We've recently redone the website
to make it easier to use: However the
documentation is still standalone and not integrated, and it's not
organized well to begin with. There have been some community
discussions about how to reorganize the documentation to make it
easier to understand and to make it more usable; work is ongoing here.
Any help in this area would be much appreciated!

## The "unprovider"

Juju's main use case is cloud deployments, this usually means dozens,
hundreds, and thousands of instances; but I can appreciate someone who
wants to use the goodness who doesn't have an OpenStack cloud in their
garage. There has been some interest in a simple Juju provider that
can ssh to your cheap VPS or server and deploy charms. We nickname
this the "unprovider" and we're looking for people who are interested
in making Juju scale down. For more information see Jono's blog post:

If you're interested in working on this please ping me offlist.

# How to help and where to find us.

The easiest way to get involved is to write charms for things you're
interested in using on Ubuntu in the cloud. Even if you find something
that you use in the list of charms: each charm is really never
finished, there's always new features, new relationships to other
services, and general best practice that can be applied to charms. I
am especially interested if you're an expert in a certain package and
want to look at it's corresponding charm and give us feedback. Feel
free to just ask us where you'd like to get started!

We're in #juju on Freenode, #juju-dev if you're interested in core
Juju. And here's the mailing list:

Thanks and happy Ubuntu-ing!

Jorge Castro
Canonical Ltd.

More information about the ubuntu-devel mailing list