# Basic Terms

## High availability

* **Minimize the outages and downtime and ensuring an agreed level of uptime/downtime.**

## Fault tolerance

* **Ability for a system to remain in operation even if some of the components used to build the system fail.**

## Disaster recovery

* **Ensure that a company can respond to a disaster or other failure that affects systems** and minimize the effect on business operations.

## Scalability

* 2 types of scalability:
  * **Horizontal Scalability - Increasing your number of resources** - Adding - Aka elasticity.
  * **Vertical Scalability - Making your current resources better** - Upgrading.<br>
* Being scalable means your app can handle bigger loads/more traffic by either adding more resources (horizontal scaling) or upgrading the current resources (vertical scaling).<br>
* **Horizontal scaling does not cause any downtime as it doesn't do anything to the instance**; it only adds more instances.
* **Vertical scaling changes the instance itself** so it will require a reboot, which will cause downtime.
