Basics of Cloud Computing: Virtualization

The article will provide an in-detail explanation of the concept of Virtualization which happens to be a very crucial component of Cloud Systems. This article is the third part of the ‘Basics of Cloud Computing’ blog. I would highly recommend the reader to go through previous articles of the blog.

Previously, I have mentioned the term, ‘Cloud Technology stack’ which refers to an organized view of the technologies used to build a cloud ecosystem. The stack consists of three layers – creates valued services on the top of the hardware components and delivers these services to users through their cloud clients like web browsers or native apps hosted on their personal devices. I would prefer to take the bottom-up approach while initiating the discussion.

The interconnected hardware devices that make the hardware platform serve the basis of infrastructure. I shall not discuss the physical servers, storage disks or networks as I assume it to be an obvious thing for IT users. The terminology will be plain and simple throughout the discussion.

The IaaS layer consists of a set of software tools, called Cloud toolkits, which interface with the cloud hardware layer. The toolkits comprise of two essential concepts which are namely:

  • Virtualization
  • Cloud Orchestration

While Virtualization will be covered in this article, I have decided to cover Cloud Orchestration in my next article. I believe this would make the learning curve a tad less complicated.

Virtualization is the buzz word nowadays and is the key component in building a system which runs on a Cloud-based platform. Virtualization refers to creating a virtual version of computing hardware, be it a server machine, storage container, operating system or even network resource. In simple terms, hardware virtualization pertains to the task of making a hardware platform capable of running multiple copies of operating systems or multiple sessions of single OS simultaneously. In this process, each copy of OS is isolated from all other copies in all reasonable terms while adhering to the internal communication guidelines.

The Abstraction:

The hardware platform is plain and practically useless without a software component operating on it. This software known as a Virtual Machine Manager or a Hypervisor enables the available hardware resources to be fragmented into different virtual machines each being allocated with resources like RAM, processing power, and storage etc. This software controls and manages virtual machines. An operating system on a virtual machine is treated as a bundle of programs along with their states by this parent software platform. OS in such incarnation can be readily be used without going through the process of installations and configurations. On the other hand, these virtual machines are set up to block undesired traffic from other virtual machines. In a networking framework, this mimics the traditional world. IPs and subnet masks are allocated to virtual machines to make virtualization complete.

Image result for virtualization cloud computing model

Well, as it is discussed above, it is evident that we have restricted ourselves to virtualization within a single physical machine. On the other hand, Cloud Computing has already given an adequate amount of expertise to gather multiple machines to enable a distributed environment for computing. Putting both into a single integrated perspective, we can extend the concept of Virtualization across multiple machines spread over multiple geographical locations. And for sure, we add the components like automated tools for provisioning and managing computing resources based on metered usages to realize a comprehensive picture of cloud computing. Moreover, user applications hosted on such a platform is not aware of these altered details while leveraging all advantages like scalability and redundancy associated with the new platform. Application is open to communicate with one another and even across different clouds through their API’s adhering to standard protocols like SOAP, ReST, XML-RPC; and in this way, they scale out horizontally. All these concepts and terminologies will be dealt with later.

Moving back to square one – offerings from Oracle, Microsoft, Citrix are very popular in the segment of Virtualization. Websites will provide the details of these products along with feature comparisons and other technical details. In fact, all major IT companies are investing significantly in achieving a seamless process of virtualization from hardware to application level. The drivers of such effort include the expectations of greater control over the OS and the applications hosted within, provisioning and managing applications, middleware and databases, accelerating application deployment, lower cost, scalability and high availability.

With this, I would like to end our discussion regarding Virtualization. I believe the reader has a very clear understanding of the concept and is probably a bit inquisitive about the next concept of ‘Cloud Infrastructure Orchestration’ which will be covered in-depth in my next article. It is to be noted that Cloud Computing and Virtualization are two heavily linked, yet completely different concepts. As it must be clear by now, Virtualization is nothing but the controlling of hardware components by technologies relevant to the Software Regime. Virtualization makes it unimaginably easy for the sharing of computing resources which is exactly needed by Cloud Computing to work efficiently at a considerably less cost.

Posted in Technology