This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
| Juju | |
|---|---|
| Original author | Canonical |
| Initial release | May 5, 2011; 14 years ago (2011-05-05) |
| Stable release | 3.6.3 / February 27, 2025; 11 months ago (2025-02-27) |
| Written in | Go |
| Operating system | Ubuntu,macOS,CentOS |
| Type | Orchestration |
| License | GNU Affero General Public License |
| Website | juju |
| Repository | |
Juju is afree and open-source application modeling tool developed byCanonical Ltd.[1] Juju is an application management system. It was built to reduce the operation overhead of software by facilitating, deploying, configuring, scaling, integrating, and performing operational tasks on public and privatecloud services along withbare-metal servers and localcontainer-based deployments.
Juju aims to provide a modeling language that abstracts the specifics of operating complex software topologies to reduce the cost of operations and provide flexibility. A Jujumodel is an environment to manage and operate a set of software applications. Models can be operated on a variety ofpublic clouds.
A Jujucontroller is a service that tracks the events, state, and user activity across multiple models. A database server tool and databases available on a server are an example of a Juju controller and its models. Each model can have different configurations, sets of operating software, and users with various levels of access. Examples of models include a web application, load balancer, and database in a "web-app" model. Models allow deployments to be isolated into logical solutions and managed separately.
The central mechanism behind Juju is calledcharms. Charms can be written in any programming language that can be executed from the command line. A charm is a collection ofYAML configuration files and a selection ofhooks. A hook is an executable file that can be used to install software, start or stop a service, manage relationships with other charms, upgrade charms, scale charms, configure charms, etc. Charms can have many properties. Using charm helpers, boiler-plate code is automatically generated, thereby speeding up charm creation.
Juju has two components: a client and a bootstrap node. After installing the client, one or more environments can be bootstrapped. Juju environments can be bootstrapped on various clouds. By creating a Juju Provider, additional cloud environments can be supported.
Juju can also be bootstrapped on bare-metal servers. Large deployments can use Canonical'sMetal as a Service. Small deployments can use the manual provider, which allows any SSH-accessibleUbuntu machine to be converted into a Juju-managed machine. Juju can also be installed on a local Ubuntu machine viaLXCoperating system–level virtualization and the local provider.
Juju has both command line and GUI access. Automatically available on every controller, the Juju GUI allows users to visually see what software is currently running in which models. Users can also search the Charm Store [see below] and browse results with detailed charm information. Complex software stacks can be deployed via drag-and-drop.
Juju also has a concept ofbundles. A bundle is a portable specification for a model with charms, configuration, and relations, all specified in a declarative YAML format. A bundle YAML file can later be imported into another Juju model and shared with others. Bundles can also be uploaded to the Charm Store, allowing others to deploy them.
In this example bundle, two applications are modeled:MediaWiki andMySQL. Users can modify attributes declared in the bundle to customize their deployment:
services:mediawiki:charm:mediawikinum_units:1options:debug:falsename:Please set name of wikiskin:vectormysql:charm:mysqlnum_units:1options:binlog-format:MIXEDdataset-size:80%tuning-level:safestseries:trustyrelations:--mediawiki:db-mysql:db
The Juju Charm Store launched on April 3, 2012.[2] The Charm Store regularly tests charms to notify charm authors when code breaks, in addition to ensuring that Juju users have access to the latest versions of charms.
Juju is available on the Ubuntu Server, with agents available for Ubuntu,CentOS,[3] andMicrosoft Windows.[4] Support for both CentOS and Windows has been contributed byCloudbase Solutions.
{{cite web}}:Missing or empty|title= (help)