Key concepts and definitions
Virtualization has become a critically important focus of the IT world in recent years. Virtualization technologies are used by countless thousands of companies to consolidate their workloads and to make their IT environments scalable and more flexible. If you want to learn cloud computing, you'll simply have to absorb the basic virtualization technology concepts at some point.
This course will give you all the fundamental concepts to understand how Virtualization works: why it's so important and how we moved from Virtualization to cloud computing. As a beginner course, you will find how Virtualization helps companies and professionals achieving better TCO and how it works from a technical point of view. Learn what is an hypervisor, how virtual machines are separated inside the same physical host and how they communicate with lower hardware levels. If you want to start a career in the cloud computing industry, you will need to know how the most common virtualization technologies works and how they are used in cloud infrastractures.
A consistent part of this course is dedicated to the description of the most common technologies like: VMware, XEN, KVM and Microsoft Hyper-V. You will learn how they are used in the most common public cloud infrastructures and when to use them based on your needs.
Why you should know about Virtualization
As a fundamental technology for the cloud computing industry, learning how Virtualization works will give you several advantages for your career. You will understand technical and economical advantages introduced by Virtualization in the modern public cloud environments. You should watch this course before start learning about cloud computing and other cloud related technologies.
In order to understand how a hypervisor works, you need to know how operating systems manage the underlying hardware.
Think about a simple application task like Open Cloud Academy website or print a document. If you want to browse our website, your browser application has to use the network card and it has to make a system call in order for that to occur.
Some operating system components can directly access your hardware. In order to manage these different privilege levels, modern x86 CPUs have different execution privilege groups called rings. Each ring has different restrictions on the type of operations that can be performed by the CPU. For example, device drivers and the kernel usually run in Ring 0 which grants the highest permission level, while user applications always run in the least privilege ring. This also applies to virtual machine themselves. Virtual machines require an operating system and this OS requires Ring 0 authority. As a guest OS unable to access Ring 0 directly, it must obtain Ring 0 privilege to a complex work ground. Hypervisors usually solve this problem with either Para or Full Virtualization.
In the Paravirtualization method when a privilege command must be executed on the Guest OS, it is delivered to the hypervisor through a hypercall, a kind of system call, and the hypervisor receives this hypercall, accesses the hardware and returns the result. Paravirtualization requires some modifications to the guest operating system kernel in order to use the hypercall mechanism. Thanks to hypercalls, virtual machines applications and operating systems run in CPU Ring 3, the least privileged CPU mode.
Full Virtualization provides a complete simulation of the underlying hardware allowing execution of unmodified operating systems in the virtual machines. It requires that every salient feature of the hardware be reflected into every one of several virtual machines. In Full Virtualization machine language code of the guest OS is converted into the machine language code of the host through a binary translation process.
Unfortunately, the speed reflects this additional step. CPU manufacturers provide a variety of functionalities to reduce Full Virtualization overhead at the hardware level. A CPU supporting hardware assisted virtualization additionally provides Ring -1 level and the hypervisor runs on this ring while the guest OS runs on Ring 0. Consequently, it essentially circumvents the binary translation process with privilege commands and each command is executed directly on the hardware via the hypervisor. Thanks to CPU virtualization instructions, the performance gap between the Full Virtualization method and the Paravirtualization one has been significantly reduced. Here you can see a recap of the pros and cons for both techniques.
About the Author
Antonio is an IT Manager and a software and infrastructure Engineer with 15 years of experience in designing, implementing and deploying complex webapps.
He has a deep knowledge of the IEEE Software and Systems Engineering Standards and of several programming languages (Python, PHP, Java, Scala, JS).
Antonio has also been using and designing cloud infrastructures for five years, using both public and private cloud services (Amazon Web Services, Google Cloud Platform, Azure, Openstack and Vmware vSphere).
During his past working experiences, he designed and managed large web clusters, also developing a service orchestrator for providing automatic scaling, self-healing and a Disaster Recovery Strategy.
Antonio is currently the Labs Product Manager and a Senior DevOps Engineer at Cloud Academy; his main goal is providing the best learn-by-doing experience possible taking care of the Cloud Academy Labs platform.