The cloud and the Web 2.0 have contributed to democratize the Internet, allowing everybody to share information, services, and IT resources around the network. With the arrival of digital social networks and the introduction of new IT infrastructures in the business world, the Internet population has grown enough to make the need for computing resources an important matter to be handled. While few years ago enterprises had all their IT infrastructures in privately owned data centers, nowadays the big IT corporations have started a data-center race, offering computing and storage resources at low prices, looking for outside companies to trust them for their data or IT needs.A single web application in the cloud can be easily used by people from around the world, so data and computation need to be available from everywhere, having in mind things such as the quality of service (QoS) and the service-level agreements (SLAs) between users and servers. Services offered by Google and YouTube, for example, must be replicated around the globe or just be efficient enough to move data, jobs, or applications among the data-center farms spread along the planet. Given the amount of applications running now on the cloud and the amount that will come, coordinating all its applications, resources, and services becomes by itself a hard optimization problem.