See also: How to scale an application

In the context of a cloud deployment in general, scaling means modifying the amount of resources thrown at an application, which can be done vertically (modifying the memory, CPU, or disk for a cloud resource) or horizontally (modifying the number of resources), where each can be up (more) or down (less). In the context of Juju, scaling means exactly the same, with the mention that

  • Vertical scaling is handled through constraints and horizontal scaling through units.
  • Horizontal scaling up can be used to achieve high availability (HA) – though, depending on whether the charm delivering the application supports HA natively or not, you may also have to perform additional steps.