Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates about Ubuntu and upcoming events where you can meet our team.Close

Clearwater and Juju

This article is more than 8 years old.


Like our sister project, Calico, we on the Project Clearwater team have been using Juju for some of our orchestration needs. In this blog post, I’m going to talk about what Juju is, why it’s a good fit for IMS orchestration, and what we’ve done recently on our Juju charms.

Both the Calico blog linked to above and the main Juju site talk about what Juju is in detail, so I’m only going to summarise it briefly here. Put simply, Juju is an orchestration platform – a way to automatically and repeatably deploy and configure network services, whether that’s a simple WordPress blog (the usual Juju example) or a full, interconnected IMS core like Clearwater. (Juju has some specific terminology – “charms” are configuration describing a specific service, and a “bundle” is a group of related charms).

What’s different about Juju, compared to related tools like Chef or Puppet, is that instead of focusing on the details of deploying each node (what packages do I install, which config files do I write out), Juju is concerned with managing the relationships between nodes. Each node gets told when its “relations” join or depart the cluster, so that when a new Sprout node (for example) is added, all the Bono nodes learn about it and can start directing traffic to it.

The concept of “relations” works particularly well for Clearwater, because there are well-defined and well-known IMS interfaces between nodes. For example, our clearwater-bono charm exposes the IMS Mw interface for S-CSCFs to connect to, and the Gm interface for UEs. The fact that relationships are shown in the Juju GUI also means that your Clearwater deployment actually (kind of) looks like an IMS network diagram:

Because Juju works on the level above Chef and Puppet like this, it’s possible to use them together – in fact, the Juju FAQ encourages it. This is great for us – it means we can hook into our existing Chef scripts from our Juju charms, reuse all that battle-hardened code for installing the right packages and tweaking the right config files, and let Juju manage the deployment-wide picture and relationships.

In the past couple of sprints (Dune and East of Eden), we’ve been making some improvements to our charms: besides general tidying-up and bug-fixing, we’ve now tested against the latest Juju version (1.23), successfully deployed Clearwater with Juju on OpenStack Juno (we’d previously only used Amazon EC2), and added a clearwater-sipp charm for stress testing.

If you’d like to see a three-minute video of a Clearwater system being managed and scaled by Juju, there’s one on Youtube here.

If that whets your appetite, and you’d like to try this yourself, it’s pretty simple:

If you have problems or questions, you should check the Juju documentation for help with Juju, and the Clearwater troubleshooting guide and general documentation for Clearwater.

First published on www.projectclearwater.org

About the author

Rob is a software engineer on the Project Clearwater team. Outside of work, he likes doing more open-source software development, knitting, and playing video games.

Follow Rob on Twitter

Ubuntu cloud

Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

A brief history of MicroStack

OpenStack is no doubt a wonderful and successful piece of software. It allows you to create your own cloud infrastructure, and thanks to its open-source...

What is a Kubernetes operator?

Kubernetes is the open source, industry-standard platform for deploying, managing and scaling containerized applications – and applications on Kubernetes are...

Operate popular open source on Kubernetes – Attend Operator Day at KubeCon EU 2024

Operate popular open source on Kubernetes – Attend Operator Day at KubeCon EU 2024