In his great thesis, Benjamin Erb says about scalability, reliability and availability:
The essential technique for ensuring availability and reliability is redundancy and the overprovisioning of resources. From a methodical viewpoint, this is very similar to horizontal scaling. However, it is important not to conflate scalability and availability. Spare resources allocated for availability and failover can not be used for achieving scalability at the same time. Otherwise, only one requirement can be guaranteed at once.
This means that if I want to achieve availability of a resource A then I have to deploy, for example, a cluster with 2 nodes serving this resource but the load will go always to the first node (no load balancing!) and if that node crashes the load will be routed to the second node?
If the load increases I not be able to distribute the load between both nodes?
If I distribute the load between both nodes and one crashes then all the load will go to the remaining node (maybe applying some strategy for back-pressure) and I'll be using the second node for both availability and scalability?