Modern cloud infrastructures are geo-distributed. While geo-distribution offers many advantages, it can increase the total cloud capacity required. For instance, to achieve low latency, geo-distribution forfeits statistical multiplexing of demand that a single data center could benefit from. Geo-distribution also complicates software design due to storage consistency and other issues. On the other hand, geo-distribution offers new opportunities to lower costs such as through eliminating redundancies at individual sites, or through exploiting regional differences in energy prices. We discuss several factors that influence
capacity provisioning for a geo-distributed cloud, and quantify latency, availability, and capacity trade-offs that emerge. We describe open research challenges to design geo-distributed software for efficient use of cloud capacity.