This document discusses scaling heterogeneous systems on the cloud. It notes that complex systems will not be homogeneous, with different subsystems scaling in different ways. It emphasizes that high availability is critical and that scaling can be done vertically by upgrading hardware or horizontally by adding more nodes. The document provides advice on choosing scale-friendly systems like key-value stores as well as caveats about properly estimating cluster size and non-linear scalability.