Application high-availability

In the event of an outage affecting one’s backing cloud, application high availability strives to ensure that not all units of an application will become unresponsive at the same time. This default behaviour in Juju thus maximises your application’s availability.

Distribution groups

Each deployed application is considered a distribution group. Every time a unit is added to a distribution group, Juju will spread out units to best ensure high availability. As long as the charmed operator and the charmed operator’s application are well written, you can rest assured that IaaS downtime will not affect your application.

See Controller high availability for details on enabling high availability for the controller.

Commands you already use for scaling now ensure your applications are always available. e.g.

juju deploy -n 10 <application>

The way this works depends on whether Juju uses availability zones or availability sets.

Availability zones

Availability zones allow for the automatic and uniform distribution of units across a region. A new instance, for example, will be allocated the zone with the fewest members of its distribution group.

Juju supports such zones on Google Compute Engine, VMware vSphere, Amazon’s EC2, OpenStack-based clouds, and MAAS. See the Clouds page for more details on these and other cloud-specific settings.

If you do not specify a zone explicitly, Juju will automatically and uniformly distribute units across the available zones within the region. This can be overridden with a placement directive:

juju bootstrap --to zone=us-east-1b

juju add-machine zone=us-east-1c

Last updated a month ago.