Introduction To Cloud Computing or Virtualization Techniques
The word “Cloud” has become more of a fashion trend lately. Everyone is talking about it, and for probable reasons, everyone is using it. However, most of the people who use the term cloud quite freely don’t really understand the true definition of what it is exactly and the technological impact of it. So let’s try to debunk the myth in the least of technical terms as possible.
What is Cloud?
According to Wikipedia, “Cloud computing is a model for enabling ubiquitous network access to a shared pool of configurable computing resources”.
The keyword “ubiquitous” means “present everywhere”. And that’s what Cloud is all about. It is present everywhere!
Imagine you have a high-end machine, and that machine is generating a lot of “Computing Power”. This computing power can be anything, from hardware such as storage space or CPU power to even software and utility items. Before the dawn of Internet era, there was virtually no method to share your “computing power”. You purchased a system, and that was it. You can only fully use the system for your own personal needs.
Now, what cloud technology does is that it allows you to actually rent out your Computing Power! So if you want to sell your storage space, you can actually do it with the help of the cloud. To draw more analogy, compare with electricity.
Just like there is a base station which supplies electricity to different vendors who have subscribed to them using electrical wires and transformers, Cloud technology enables us to supply computing power using the internet to different vendors who are paying for it! It simply drops the idea of “Buy Your Hardware” and instead adopt the model of “Pay as You Use”.
The impact of Cloud is felt loud and wide. You can now use an entire machine at much lesser costs than the ones required to purchase it. You can rent almost anything related to computers.
From storage space to software frameworks, everything is available on Cloud, at much lesser cost than the actual purchase. This enables small or medium scale businesses to thrive, as the IT infrastructure cost associated earlier has been diminished. The popularity of Cloud can be gauged by the fact that Cloud vendors are experiencing a growth rate of 50% annually!
Types of Cloud
Cloud is such a huge thing, has been classified according to the context that has been used. There is a service model, which describes cloud computing as a service. And the vendors use different service models to sell their cloud computing power.
Then there is the deployment model. This model describes cloud computing in infrastructure terms; and describes how the cloud data would be actually deployed, stored and used from the customer side. Both these models are further divided into three types.
Cloud Service Model
- Infrastructure as a Service (IaaS): Going by the word, IaaS offers an entire IT infrastructure over the Cloud. What this essentially means is that customers are provided with entire working machines as per their required customization. This would include the OS, hardware, storage, and other such things. The end user need not worry about the actual location of the physical machine. He would be provided a complete fully fledged working machine, abstracting the underlying complexities of how the machine is working. Examples of such offerings are Amazon AWS and Microsoft Azure.
- Platform as a Service (PaaS): Platform as Service offers a computing platform as service rather than Infrastructure. What this essentially means is that PaaS service offers Software Environment. So, for example, you need to use a payment gateway platform, but don’t want to purchase and set it up all by yourself. You can then use PaaS to rent a payment platform, which would be provided by Cloud. Software developers can test and develop their software over PaaS, without purchasing a machine for the same. A prominent example of PaaS would be Google Apps Engine, which even offers automatic scaling. This means that the computing resources would be automatically adjusted according to the demands set forth by your application.
Cloud Deployment model
- Software as a Service (SaaS): The simplest model, it simply offers complete software over the Cloud. So instead of purchasing a CD and installing the software, you get complete access to the software by just using the internet. This is the most common model of Cloud offerings, and examples are paramount. Google Picasa, Salesforce and even Google Apps.
- Private Cloud: Commonly found in organizations and MNCs, these cloud deployments are solely done for a group or for private use. The entire organizational infrastructure is managed under this type of deployment. This still requires a greater degree of actual physical infrastructure changes, as the entire Cloud deployment would depend upon the organizational needs and demands. However, for private usage of Cloud, a private cloud model serves its purpose.
- Public Cloud: The more common representation of cloud, the public cloud is offered for public or individual usage. The difference between public and private cloud is the fact that public cloud offers a much lesser degree of sophistication and security than private cloud. Public cloud is relatively cheaper than private cloud. In addition to that, public cloud offerings are usually deployed with the vendor itself. So architecture wise they may be similar, but the actual infrastructure cost is shared by the vendor in case of a public offering.
- Hybrid Cloud: The more recent offering, hybrid cloud combines the best of both private and public cloud under one deployment. Under the hybrid cloud model, some of the features of the cloud would be under a private cloud and some would use public. So for example, in an organization, the billing system could be part of a private cloud, but the front end of the application doing the billing would be part of a public cloud, connected to vendors. Such complex deployment models divide the necessary infrastructure among the vendor and the customers accordingly.
Having established some idea about what cloud is and the different types of cloud floating around, it’s time to look upon the underlying architecture of the cloud and how it actually works. Although cloud architecture is different for different types of deployment and service models, the underlying fundamentals are essentially the same. Entire cloud architecture can be divided into the following fundamental parts:
- Front end: The front end comprises of the client which you would be using to access cloud services. It can comprise of anything, from the web browser to tablets to even virtual sessions. Front end platform job is to ensure that the end-user is directly connected to their respective cloud services subscribed for, abstracting the underlying implementation of how it’s actually doing it.
- Back End: The back end comprises of the actual physical infrastructure purchased by cloud vendors, on which the entire cloud offering runs. This typically comprises virtualization techniques servers, storage racks, switches, routers, and other such infrastructure. Using a technology called virtualization techniques, this infrastructure is then configured to offer their computing power on demand.
- Cloud Service Delivery platform: The 3 service models of Cloud are typically used here. The entire cloud platform setup, on whether it’s an entire infrastructure (IaaS) or just a software (SaaS) is decided here. It essentially comprises as to “what” exactly would be deployed on the back end hardware.
- Cloud Storage: The 3 deployment models are considered here. These 3 deployment models determine as to what type of storage a user would prefer. If local storage, then a private cloud would be deployed with the local storage infrastructure created at the client side. For the public, the storage would be at the vendor side. A more typical offering would of hybrid cloud, where both public and private storage options are provided.
- Cloud networking: A cloud network would comprise of the means to access the Cloud. Just like electricity wires are used to deliver electricity, Cloud services are delivered using the internet, intranet or even Intercloud, where resources of other Clouds are used to provide services. There is also a concept of local communication mechanism, where different Cloud components interact with each other. Such communication mechanism is generally done over message queue and is typically platform dependent.
How does Cloud achieve what it advertises? How is it possible? Well, Cloud does what it does, by using this fantastic piece of virtualization technology called Virtualization techniques. The virtualization process has been around for decades and has evolved into different forms and types. Earlier days of virtualization used to comprise of dividing the resources of mainframe computers.
Now, it’s used to create virtual instances of almost anything. Going by the word, Virtualization techniques enables users to create a virtual version of anything, from computer hardware to software such as Operating systems, to computer network resources such as LAN card. Virtualization techniques encompass everything and are used extensively in the Cloud domain to create virtual instances of the actual hardware.
Why was Virtualization techniques needed?
The cloud model works on the principle that the underlying hardware would be shared with different customers who are willing to pay for the resources. Now imagine you are having an entire storage platform. Essentially you want to rent out your storage space. How would you actually achieve it? The first choice is to rent out your entire hard disk to anyone who pays.
But suppose the customer is using the resource for only a few hours, and for the rest of the time your hard disk is lying idle. That won’t serve the purpose of cloud and would greatly undermine the efficiency of your cloud deployment. To enable greater efficiency and better revenue from cloud, you would be using virtualization technology to create 10 virtual storage devices from your one actual physical storage device.
So now, you can rent out the same hard disk to 10 different customers, ensuring that your entire hard disk is being used continuously. This would also allow greater transparency, as using virtualization techniques you can even let the idle disk space left by one customer be rented out to other customers. That’s why virtualization techniques came into the picture, to enable cloud deployment.
More sophisticated virtualization technology would allow you to deploy the model more efficiently, with real-time tracking of the usage of your storage disk. Scaling up, virtualization helps cloud vendors tremendously in all aspects. Suppose the customer also wants a switch, along with the storage device.
Using virtualization techniques, you can quickly integrate a virtual switch with the virtual storage device in almost a few clicks. So the ever-changing demands of customers are met including greater flexibility. This helps a lot in bigger organizations, where the “pay as you use” motto of the cloud is seen in full effect.
Virtualization techniques are almost extensively used for cloud deployment and also as cloud service models. This is because it enables better management of the existing resources and also the fact that the virtualization process machines can be redeployed in an instant. Several virtualization implementations exist, but one famous implementation technique is called Hypervisor.
A Hypervisor is a piece of software, firmware or hardware that creates virtual machines. These “virtual machines” or VM are just virtual instances of real physical machines, and it is these virtual machines that are extensively used in cloud deployment, especially of Infrastructure as a Service model.
Cloud has evolved a lot since the 60s, and along with the Virtualization process, has reshaped the world. Using the concept of renting out computing power like electricity, cloud reduces the cost of infrastructure and deployment tremendously. Any business can avail the power of IT using the cloud.
Coming into different types of service and deployment models, the cloud can be tailor-made to fit any type of organizational or individual needs. A typical cloud architecture would comprise the Front End, Back End, a delivery platform, storage and finally a cloud network.
The future of the cloud continues to advance at breathtaking speeds, with more and more organizations pooling their resources.
In 2011, Microsoft invested around 90% of their $9.6 billion R&D budget into cloud development. And with revenue growth projected to grow to $32.8 billion by 2016, the wave of cloud continues to change our lives for the better.
This has been a guide to Cloud Computing or Virtualization Techniques. Here we have discussed a brief overview, cloud service & deployment model along with virtualization techniques. You may also have a look at the following articles to learn more –