Cloud computing also known as “Internet Based Computing” or “Utility based computing” refers to a concept which has become rather common in recent years thanks to advances in computer technology. This article intends to explain the basic concept of what cloud computing is, and the basics of its implementation.
The article is intended to be rather introductory than exhaustively detailed, aimed at beginners who are interested in rapping their head around the concept of cloud computing and how it is implemented. At the end of the article useful reference materials will be suggested to help readers drive home these concepts even further. So lets get started.
The core concept behind cloud computing is the separation of the physical computer hardware from the operating system (OS) and apps running on it, and the separation of the OS and its apps from the end user application called a cloud client. Examples of cloud client are mobile app, web browser, or terminal emulator just to name a few. Cloud clients are used by the end users to connect to online services over the internet. The services are powered by one or more servers which provide computational, storage or other hardware resources. The cloud client does not know where exactly the hardware which serve it’s requests are physically located. The hardware and even the OS where the server application is running is abstracted away.
This abstraction is done in order to prevent the end user application from directly depending on an operating system and its apps to serve requests. It also prevents the OS and it’s apps from depending directly on a particular hardware. In the early 2000s if you wanted to run a web server, you would have needed to install a web server like Apache HTTP server on a windows 2000 server OS running on a given hardware. If for some reason such as a fan failures, hard disk failure, or power failure, the physical hardware was to fail, then the Windows 2000 server and Apache will all fail. Another cause of failure could also arise if the Windows 2000 server failed because of a virus, or a faulty software service. In any failure scenario all websites being served by the web server will be inaccessible and fixing the issue would take a lot of time and effort because of the tight coupling of these components.
In order to prevent OS or apps failures caused by failures in the hardware, virtualization technology is used. With the help of Virtualization it has become easy to migrate the OS with all of it’s data and applications from one piece of hardware to another. Virtualization allows for the creation of virtual computer instances or in more technical terms virtual machines (VMs) with software defined hardware such as RAM, hard disk, networking capabilities, number of processor, and so on for the operating system to run in. The OS and its application can be installed onto a virtual machine and copied from one hardware to another, just like you would copy and paste a file. So if for any reason the physical hardware was to fail, a virtualization monitor software (Hypervisor) moves the virtual machine which contains the OS and it’s apps to another working hardware and all its operation continue as usual.
Using the image above as an example, lets say our VM (VM 1) running our web server which runs on hardware A, and for some reason there is a hardware failure of A, the hypervisor will migrates the virtual machine from Hardware A to Hardware B giving B the IP address that A used. This will allow the cloud client to continue to communicate with the web server without being aware of the changes that occurred. The hypervisor can control multiple virtual machines at the same time, and transfer OS and its applications between VMs. It can also create new VMs if need be.
If there is a failure of the end user’s computer making it impossible for him or her to access his cloud client (e.g. A web browser), the users can simply use another computer to access the cloud server using similar cloud client (e.g. Web browser). This creates a more robust solution of the client server architecture.
This is the basic idea behind the catch phrase cloud computing. I hope you have learnt something new today. Feel free to drop me a comment, its always nice to hear from you.