First, a lot of people will ask, “What is Juju?”. I had also not heard of it; however after using it, I can say it is an amazing piece of software. It is made by Canonical, and this is their description of it:
“Juju is a state-of-the-art, open source modelling tool for operating software in the cloud. Juju allows you to deploy, configure, manage, maintain, and scale cloud applications quickly and efficiently on public clouds, as well as on physical servers, OpenStack, and containers. You can use Juju from the command line or through its beautiful GUI.”
Essentially, JuJu makes deploying large, complicated, and difficult piece of software a breeze. It also has a great GUI, and CLI tools. It also supports many clouds as you can see below.
I am currently testing this for my use case. However, if you have to manage several clouds/customers/etc, it has the potential to save tons of time from an operational perspective.
Want to install it? Super easy on Ubuntu via a SNAP:
sudo snap install juju --classic
This will setup a new controller on your system behind a NAT’d interface. It will then walk you through the setup. Also, I highly recommend a run through of the install documentation; especially if you are going to run it on your own hardware; or localhost (LXD). Recommended for ‘easy’ setup are the following: Ubuntu 18.04+, LXD, and ZFS (if on your own servers). ZFS is highly recommended by myself for many other reasons we can get into later, see ZFSonLinux.org.