Canonical

Together we evaluated the Python Operator Framework for writing Juju charms for deploying and running workloads on Kubernetes

Background

Canonical are world leaders in Open Source. While they are most known for Ubuntu Linux, they are pioneers in Linux security, cloud services with OpenStack, containerisation (LXD), and Kubernetes, among many others. They have a powerful suite of tools to automate the building, maintenance, and security of applications and infrastructure.

Challenge

Canonical has had an automation tool called Juju for some time. This tool allows teams to easily model, provision, upgrade, and maintain complex applications at scale, and across multiple cloud providers. With the increasing shift towards containerisation and orchestration with Kubernetes, Juju has been extended to make managing Kubernetes simpler.

Part of Canonical's effort on this front has been creating a new Python framework -  called the Python Operator Framework - that allows engineers to define their applications and infrastructure in Juju Charms ("infrastructure recipes") using Python. There is also significant work underway to reshape the Juju ecosystem (the Charm store, or Charm Hub, partnerships with existing and new cloud providers, documentation, tutorials, and the like).

Access to Kubernetes expertise is limited as it is relatively new and the Catalyst team added to Canonical’s breadth of Kubernetes knowledge. Canonical needed an external, unbiased evaluation of their new tooling, with the goal of improving their existing offering based on the feedback provided.
 

Solution

Canonical engaged Catalyst to evaluate the new Python Operator Framework for writing Juju charms in the context of deploying and running workloads on Kubernetes. In practice, the evaluation extended beyond the operator framework and covered Juju itself, charm authoring, documentation, organisational fit, and the surrounding ecosystem.

The Cloud Native team at Catalyst is focused primarily on the design and development of systems on Kubernetes, and the tooling required to do so. The team has a long track record in the containerisation, automation, and orchestration space. With a background in software architecture, cloud engineering, systems administration, and technology consulting, the team was an ideal fit for the engagement.

We found the experience rewarding and productive and it was a pleasure to work with the team from Catalyst.
Ian Booth,
Developer at Canonical

Catalyst and Canonical formed a team consisting of engineers from New Zealand, Australia, and Dubai. Alpha and beta software was released in confidence to Catalyst to explore and evaluate, with a tight feedback loop based on weekly video conferences, and online discussions. In addition to using the new tooling to spin up infrastructure on the Catalyst Cloud, an in-depth technical report was produced for Canonical, covering Juju and Kubernetes, the operator framework organisational fit, and the ecosystem in general.

Ian said, “The Catalyst engineers we worked with were knowledgeable and brought practical, real world experience to the task at hand. The final report was comprehensive and contained useful and sensible recommendations for the way forward. Also highlighted were barriers to adoption which served as useful points of discussion for us internally.”

This report has been shared within Canonical with both technical and product teams to help shape Juju's future.


Catalyst continues to use the new framework, and is in close contact with the team at Canonical. We look forward to working together again in the future.