Cloud Resident Data Center
Cloud computing is transforming the way applications are created and run. The simple abstraction of leasing a virtual machine (VM) on a hosted infrastructure makes applications simple to create, rapid to expand, and economical to run. However, to gain these advantages, companies must relinquish control they have with their own private infrastructure---e.g., they cannot run their own virtualization technology or control the network elements. As a result, many companies continue to run their applications on their own private infrastructure. Rather than leasing individual VMs, we propose that customers lease an entire cloud resident data center---combining the control of private infrastructure with the flexibility of public infrastructure. With the cloud resident data center, a customer can design and manage the servers, network, storage, and middleboxes, as in a private infrastructure, while running in a public cloud. Our architecture presents each customer with a virtualized infrastructure, including a virtualized network topology that the customer can configure and servers that support nested virtualization. Rather than run virtualized network equipment that supports many kinds of configuration interfaces and control-plane software, our architecture uses a logically-centralized controller to emulate the control-plane functionality. We also introduce live data center migration, where we go beyond migrating individual VMs to migrate an entire data center as a single unit.