Juju is a new and opensource part of Ubuntu Server that simplifies the deployment of user-defined service stacks over their entire lifecycle to both cloud and "bare metal" providers. Services are defined by charms; there are currently over 90 open source charms in the charm store and more are under development. So we have Cassandra, Ceph, CloudFoundy, CouchBase, CouchDB, and those are just the notable charms starting with "C", see http://jujucharms.com/charms/precise for more. Charms distill DevOps expertise on how to best manage distributed services across a wide range of actual user environments, whether in terms of performance, cost, or some other set of factors. Lastly, services are related together to form stacks.
To accomplish this, Juju implements a service orchestration model. Juju manages both the changing relationship between services - whether this is a scalable LAMP stack like MediaWiki or a Hadoop cluster - and the scaling up or down of a given service to one or more machines over the lifetime of the deployed environment.
At its core, Juju uses Apache ZooKeeper. The desired service stack is configured in ZK, and Juju then uses its agents to make it so. By executing idempotent hooks in a charm with the right sequencing, as supported by ZK's distributed coordination semantics, the service orchestration is able to gracefully cope with the eventual consistency and outright failures seen in a distributed environment. But this is done without requiring deep expertise in distributed computing by charm authors. With Juju, simple scripts for hooks can be correct scripts, even in the context of scaling and failure.
This talk will introduce Juju, describe its architecture, and show you how to write charms and build your own service stacks. We will also look at how you can start development on your own laptop (cloud in a box) and readily move (export/import) your stacks around, whether on Amazon EC2, HP Cloud, or other providers.
Jim Baker works at Canonical as a software engineer on the Ubuntu Server team to support cloud computing, specifically through Juju and its ecosystem. Prior to joining the server team, he was part of the Emerging Technology Group at Canonical that created Juju. Jim is also a lead developer of the Jython implementation. Jim is a graduate of Harvard College and Brown University and is a nominated member of the Python Software Foundation.