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:
First published on www.projectclearwater.org
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 offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.
Open Infrastructure Summit is coming to Denver from April 29th to May 1st, 2019. Will you be there? We sure will! Come and visit us in Booth B1! Canonical experts will be at the event ready to answer your questions and walk you through our…
18th April, 2019: Canonical today announced the release of Ubuntu 19.04, focused on open infrastructure deployments, the developer desktop, IoT, and cloud to edge software distribution. “The open-source-first on Ubuntu movement in telco,…
The Canonical commissioned study found that 60% of financial services businesses bank on the benefits of multi-cloud to support emerging technologies, but significant skills gap still exists An independent report by 451 Research, ‘Multi-…