Virtualization can provide several key benefits including increased flexibility, predictable scaling, disaster recovery capabilities, server consolidation, and green computing. There are different types of virtualization including full virtualization, paravirtualization, and hardware assisted virtualization. Virtualization can be used for server consolidation, fast and effortless provisioning, simplifying development and testing environments, supporting zero downtime hardware maintenance, and adding disaster recovery capabilities to virtualized server farms. Desktop virtualization can help reduce the cost of desktop maintenance and support, improve regulatory compliance and data security, and provide greater user flexibility and business continuity. It is a complementary technology to server virtualization.