We routinely use online services for web search, social networks, maps, email and other tasks. Applications that we used to run on our personal devices, such as music or movie players, office software, ebook readers, now have an online component to access media content, host application functionality, or synchronize state across multiple user devices. As the use of online services grows, so does the size and number of data centers that host them. In this talk, we discuss how to design highly efficient data centers. Specifically, we will discuss how data centers are built for Bing and Hotmail, large scale online applications that serve millions of users every day. We will discuss the computational needs of these applications and discuss how data center servers and facilities are designed to match up to them. Continuing above the infrastructure and hardware layers, we explore how software can use a data center effectively. Cloud computing interfaces have made sophisticated global scale data center infrastructures accessible to almost any programmer with an Internet connection. We will discuss software techniques to efficiently run multiple applications in a data center. Increasing data center efficiency will make the cloud cost-effective for more scenarios and extend the benefits of online computing to many more aspects of human life.