Universal Operator Lifecycle Manager

Better operators for enterprise apps with a full application graph and declarative integration for both Kubernetes and legacy estate.

Get started

In production at

Clean, composable operators

Do one thing and do it well

Juju operator integration allows us to keep each operator as simple as possible, then compose them to create rich application graph topologies that support complex scenarios with a simple, consistent experience and much less YAML. The UNIX philosophy of ‘doing one thing well’ applies to large-scale operations code too, and the benefits of clarity and reuse are exactly the same. Small is beautiful.

K8s and legacy estate operators

Universal operators for K8s as well as traditional Linux and Windows apps on bare metal, VMWare and IAAS

Juju allows you to adopt the operator pattern for your entire estate, including legacy apps. Model-driven operations dramatically reduce maintenance and operations costs for traditional workloads without re-platforming to K8s. Once charmed, legacy apps become multi-cloud ready, too. The Juju Operator Lifecycle Manager (OLM) uniquely supports both container and machine-based apps, with seamless integration between them.

Reusable integration code

An application graph drives pre-packaged integration code in the operator

Custom integration code is the biggest waste of time in enterprise operations. Our mission is to share integration code along with ops code, so we don’t just drive the app lifecycle with operators, we use the Juju OLM’s declarative operator integration to share and reuse open source integration code for better security and cost.

Multi-cloud operators

Portable operations code tested on every major public cloud, and on premise too

The encapsulation of ops code in charms allows us to deploy any scenario on any cloud, and integrate easily across cloud boundaries. Because the Juju OLM handles provisioning we achieve full multi-cloud independence with cloud-agnostic operators - not only for Kubernetes container workloads but also for legacy physical, virtual and cloud applications. Build models on any cloud, and unify your application management on public cloud, private cloud and container estate with JAAS, the multi-cloud enterprise dashboard for Juju.

The Open Operator Collection

Community-driven operator catalogue

Charmhub is the largest portfolio of operators for Kubernetes as well as traditional Linux applications or Windows applications that work consistently and integrate seamlessly. Open source principles and the Open Operator Manifesto guide the community. Find operators to drive apps on any cloud, or any bare metal, or any Kubernetes, on any architecture, with long term support and maintenance.

Highly available Enterprise OLM

Production-grade operator lifecycle management

Juju is built to run mission-critical infrastructure and applications, across cloud-native and traditional estate. The OLM controller itself features autonomous, self-healing high availability, and provides resilient leader-election as a service that enables vendors and communities to create HA operators easily. Creating operators that support high availability is straightforward in the Python Operator Framework.


Multi-cloud hosted Operator Lifecycle Manager

You can run your own Juju OLM anywhere, with or without Kubernetes. But instead of maintaining many OLM controllers across all the regions of all the clouds, you can use JAAS to offer a single enterprise-wide service for operator management and governance. For public cloud estate, JAAS.ai is a fully managed, multi-cloud, multi-tenant, infinitely scalable lifecycle manager.

Consistent operator experience

Many operators, one CLI for lifecycle, config, integration and ops

Unify the operator experience for diverse workloads from multiple vendors and communities. One consistent CLI for operator installation, updates, configuration, integration, scaling, and everyday ops like backup and restore. This consistent experience for all application management makes documentation and training much simpler and streamlines the process of onboarding new software into the enterprise.

SAAS integration

Third-party SAAS is just another operator in the model

Drive SAAS with operators too, for cloud deployments that combine software and SAAS seamlessly. For example, substitute the Amazon RDS PostgreSQL operator anywhere you normally use the PostgreSQL operator. It is even straightforward to connect SAAS from one cloud to SAAS from another cloud.

Offer home-grown SAAS internally

Integrate managed apps between teams

Juju model-driven operations make it easy to delegate application operations to independent teams for home-grown SAAS. Each team that runs applications with Juju can offer them to other teams, to integrate across models in the enterprise. Each model has its own administrators, and cross-model integration just requires permission from both sets of admins. Your DBA team can run databases on cloud or on prem which other teams consume as SAAS. This even works across different clouds!

Devsecops by design

Encapsulate security best practices with every service or application

Operators provide repeatable security best practice for hardened application installation, update, configuration, and integration. We track security issues in operators with CVEs and distribute patches automatically, so you can manage compliance professionally. And of course, open source operators evolve to meet multiple industry security and compliance standards.

Pure Python operators

Cleaner infra-as-code with the Python Operator Framework

You can write operators in any language with the Juju OLM, but most people prefer Python. Every instance of every app in every deployment becomes an object, with methods for integration and operations. Clean, accessible code with a fully asynchronous API. Just perfect, just Python. Charmcraft lets you share libraries between charms easily for smoother operator integration.

Windows operators

Create operators for Windows apps for cross-platform integration

Full support for Windows applications enables consistent use of the operator pattern across the entire business IT estate. Windows operators integrate perfectly with remote applications on Kubernetes and public clouds thanks to Juju cross-model relations.

App-centric operations

Manage apps and services, not configuration files

It’s not about configuration management, it’s about application management. Operators encapsulate applications to handle the details, especially in containers where config management doesn’t work. This allows organisations to onboard new applications faster, because they don’t need to train admins on the details of configuration for every new application.

Model-driven operations

Operators respond to real time desired state model

Integrated applications on the same substrate share a single model, so that changes can be made in one place and propagate to all affected applications. Each model is a separate RBAC domain for segregated management and administration controls. Multiple models can be composed and integrated into a single multi-cloud scenario.

Enterprise multi-cloud operator dashboard

A single global view of operators and models across all clouds and clusters

On-premise JAAS connects all your lifecycle managers across all public clouds, VMware, bare metal and OpenStack into a single enterprise OLM service with RBAC. Manage operators across your hybrid estate.

Event-driven operator framework

Build operators for workloads on both K8s and traditional machines

Event-driven operator code simplifies the distributed systems logic to react to changes in your environment. Use the same operator libraries and event model for both cloud-native and legacy workloads.

Scale-aware ops code

Deploy the same scenario at small or large scale

Unify development, test and production with operators that work at any scale. Enjoy perfect reuse of operations code, from Raspberry Pi’s to tiny Kubernetes clusters at the edge, giant public clouds and mainframes.

Shared infrastructure-as-code

Community maintenance for operations code

Share the maintenance of operations code across all the users of the operator. Many eyes make for much better operations code! In fact, all of the practices of enterprise software now become available for ops code too. Rigorous tests, continuous integration, a standard framework and reusable libraries turn ops spaghetti into solid ops gold.

Object oriented operations API

Every app or service is an object, with methods for daily operations

Imagine your infrastructure and applications as an object model. Update configuration, upgrade applications, trigger operations, scale up or down and react to service status changes in real-time. Seamlessly, across every cloud and on-premise too.

Scale out, scale back

Elastic excellence with a scale-aware model and fine-grained operators

Horizontal scale is central to software resilience and capacity management. The Juju OLM enables fine-grained operator control of individual application units, greatly simplifying the development of operators for high availability and scale-out software.

Consistent configuration

Unify operator configuration with YAML schemas

Simplify global operations and change management. The Juju OLM provides standardized, schema-driven YAML configuration for each operator, with consistent semantics for config updates, reads, and rollouts.

Day 1, day 2 and beyond

Long term operations included for every service

Reduce long-term operations costs with admin task code, shared in every operator. Actions like backup, restore, reset and restart become API calls on the operator and never require access to systems or containers.

Cross-cloud integration

Deploy two services to different clouds, and integrate them instantly

Connect services in multiple diverse clouds. Integrate cloud services with on-prem applications.

Scenario sharing and reuse

Juju bundles are shareable YAML deployment definitions

Export a running scenario, capturing application scale, configuration, and integration topology for reuse across teams or industries. Declarative deployments are the perfect primitive for devops pipelines at scale.

Persistent operator state

Simplify operator design and code for dynamic environments

Writing an operator is greatly simplified with Juju’s persistent operator state service, which enables operators to run in stateless environments for maximum Kubernetes efficiency.

Multi-arch operators

ARM, x86, POWER, Z are all supported

Integrate heterogeneous environments transparently — connect services on the mainframe to applications on the cloud and in the data centre.

Why choose the Juju OLM?

The Juju OLM makes the K8s operator pattern universal, for traditional applications too. Full lifecycle management. Automated integration. Upstream ops code update distribution. Day-1 to Day-N operations included. Open source and no security subscription required.

Learn more