Virtualization and Cloud Computing Essentials