Magic with Juju
I’ve been working on a set of tutorials over the last few months on how to write “juju charms”.
Juju is an open source framework to operate small and large software stacks in any cloud environment. It works fairly transparent on well known clouds like AWS, Google Cloud Engine, Oracle Clouds, Joyent, RackSpace, CloudSigma, Azure, vsphere MAAS, Kubernetes, LXD and even custom clouds!
I touched base with Juju some 5 years ago and immediately understood that this was going to make an impact in the computer science domain. The primary reasons were to me:
- Open Source all the way.
- No domain specific languages required to work with it. E.g. use your preferred programming language to do your Infrastructure As Code / DevOps.
- Smart modular architecture (charms) that allows re-use and evolution of best solutions in the juju ecosystem.
- “Fairly” linux agnostic – although the community is heavy on Ubuntu.
- Cloud agnostic – you can use your favorite public cloud provider or use your own private cloud, like an openStack or even VMware environment. Huge benefit to anyone looking to move into cloud.
- Robust and maintained codebase backed by Canonical – if enterprise support matters to you. There are other companies, like OmniVector Solutions, also delivering commercial services around Juju if you don’t like Canonical. [Disclaimer: I’m biased in my affiliation with OmniVector]
- A healthy, active & friendly open source community – if you, like me, think a living open source community is a key factor to success.
Above factors weigh in heavy to me and even though there are a few competitors to Juju, I think you can’t really ignore it if you are in to DevOps, IaaC, CI/CD, clouds etc.
Juju means “Magic” which is an accurate description on what you can do with this tool.
So, here are a few decent starting points from my collection to getting started with juju. Knock yourself out.