“Rick, I want you to fire up an empty cloud deployment”, said no boss ever.
The various teams who make up “The Ubuntu Server Team” work on various bits. Some work to make OpenStack easy to deploy, some work on packaging, some work on building images for all the public clouds we support. All this is fine and dandy, but at the end of the day, our users deploy things on top of Ubuntu Server, and these workloads are really what it’s all about.
Over the past two years it’s been increasingly obvious to us that orchestrating workloads is becoming one of the most important things we can help users with. What’s the point of an easy to use OpenStack installer if people can’t plop Hadoop, or Cassandra, or their Rails app right on top easily?
One part of this solution is our work on Juju, which makes orchestration simple; we can just manage deployments at the service level while not caring (too much) about individial instances. Some people wanted and needed things to be even highter level. “Look, I’ve got a pile of machines over here, I need a MongoDB cluster” and you don’t have the time! Or more increasingly, you know how to do all these steps, but need a way to make it portable so everyone else in your organization can benefit from your hard work.
So today we announced Juju Bundles. Technically, they’re very simple, it’s a yaml file that describes charms and their relationships to other charms. It can contain machine constraints, or any of the parameters you’d ship in a charm. That means deploying large swaths of services are now one command.
juju quickstart bundle:~charmers/mongodb/cluster
juju quickstart bundle:~charmers/hadoop/cluster
juju quickstart bundle:~charmers/mediawiki/scalable
There’s a 13 node 3 shard MongoDB cluster, a 7 node starter Hadoop cluster, and a 5 node Mediwiki. All of them can be
horizontally scaled out of the box. juju add-unit -n10 hadoop-slavecluster
and go to town. Not Bad!
Getting Started
If you’re on Ubuntu Rick has the info in his blog post, you basically:
sudo add-apt-repository ppa:juju/stable
sudo apt-get update
sudo apt-get install juju-quickstart
Then run one of the commands I mentioned:
juju quickstart bundle:~charmers/mongodb/cluster
Juju will then walk you through setting up an environment. Pick one. AWS, Microsoft Windows Azure, Joyent, HP Cloud, or your own OpenStack or laptop via LXC, then fill out your creds:
Now get a cup of coffee, or watch the console for the magic, maybe read the README.
Now go put that bad boy to work.
Quickstart is not yet available for OSX or Windows (we’re working on it), but if you want to play with it we’ve made a Vagrant box available for you to play with.
The Future
Over the course of the next few weeks as we ramp up to 14.04 we’ll be doing a few things. We’ll be tightening up the
URLs to be easier to remember, so something like juju quickstart bundle:mongodb/cluster
. Obviously we’d love to
see more bundles from the community being submitted.
Check out the documentation for more, and for a more technical description of how bundles work check out Rick’s blog post. We also made a tutorial video on how to make and share your own bundles.