Virtualization in the Cloud
Cloud Computing is based on the concept of shared server resources. As such, servers running in remote data centers are not dedicated to a single application or customer. Instead, several applications belonging to multiple customers may exist on the same physical server. Conversely, a single application belonging to a single customer may utilize resources from several physical servers. In addition, the cloud must manage spikes in usage that may temporarily require additional processing power. In order to provide the resource sharing and dynamic scalability required by a robust Cloud Computing environment, the data centers often employ virtual servers.
The server virtualization process is the act of ‘masking’ server resources from the user of the server. This masking process abstracts the physical server and operating system from the user of the virtual server. The virtual server may be comprised of one or more physical servers. In addition, the operating system of the virtual server may not be the same operating system as the underlying physical servers.
The virtual server can then be allocated to the customer, while any number of physical servers may actually be used. In addition, multiple virtual servers running on a single physical server allows multiple customers to share physical hardware while it appears that each has a dedicated environment. The elastic nature of these virtual servers allows dynamic load balancing as they pull in and release physical hardware resources as needed. With this design, processing power not needed by one customer is made seamlessly available to others, thereby eliminating or reducing system idle time. This reduction in idle time is the perfect complement to a billing model that charges based on actual usage.