Exploring Juju with Project Calico
by Canonical on 16 March 2015
Installing OpenStack is non-trivial. You need to install a large number of packages across a number of machines, get all the configuration synchronized so that all those components can talk to each other, and then hope you didn’t make a typo or other form of error that leads to a tricky-to-debug misbehaviour in OpenStack.
For this reason there has been a proliferation of systems that make it easier to install OpenStack: think Fuel, TripleO, Packstack, and more. These systems are targeted at different users and fall in different places on the sliding scale of “ease of use” to “control”. Some are graphical, some aren’t. Some are highly prescriptive, some aren’t. Some allow third-party projects, some don’t. They’re all interesting, and for anyone who plans to plug into OpenStack they’re all tools you want to integrate with.
Juju
One of our favourite tools comes out of Canonical, and it’s called Juju. Juju is a tool that allows you to deploy complex and scalable applications in a service-oriented manner. Your application as a whole is deployed by deploying a number of services and linking them together in a well-defined manner, such that they correctly determine what their configuration and run-time state needs to be. The user deploying this application doesn’t have to care whether each service lives on its own machine or not: Juju handles all of that for them. Instead, they simply put in the pieces they need, configure them, and go.
At this point, people usually show you the Juju web GUI, which tends to look like this: