Introduction on cloud computing
Cloud computing seems to be everywhere. Many major organizations including Amazon, Google and Microsoft have already ventured into cloud computing and few others are contemplating considering the risks involved in cloud computing. However it is predicted that cloud computing would be the future of IT industry. Initially when I came across the news related to cloud computing, it was evident that cloud computing is going to make things easier and would be the next milestone in the Information industry. However I was not aware of the intricate details about cloud computing. Thanks to ISC and this article I was able to make some research on this topic which helped me gain clear understanding on cloud computing. For easier understanding of cloud computing concepts, I have given the details on cloud computing along with few diagrams which are drawn by me.
Cloud computing is the advancement in Internet. With the advent of Internet, computer experts and researchers had guessed the possibility of cloud computing concept long before. "Computation may become a public utility" was a statement given even before the origin of cloud computing in 1960 by John McCarthy. Cloud in cloud computing refers to the combination of resources such as applications, networking, database, OS and infrastructure at one place. This activity would be done by a group, company or an organization which would use these resources to provide service to the user. We call them cloud providers. These cloud providers provide service to user or enterprise using these resources in the cloud.
Both private as well as public companies are involved in cloud computing. Private companies use cloud computing over intranet in order to compute and access resources, this concept is somewhat similar to utility computing. Public companies host the cloud either to all range of companies or to public users. In both ways cloud computing is becoming highly popular. The features of cloud computing is ease of use, accessibility, multi tenancy, security at user level and flexibility. However cloud computing faces security threat in at a higher level (in the cloud).
Many compare cloud computing as that of electricity supply. We use electricity for various equipments in our household. However we are not aware of intricate details on how electricity is stored or transformed in power grid. We are also not interested in the same. We just use the power for our personal benefit. This is the concept of cloud computing. We would use the services provided by cloud computing without being aware of the underlying processes. Even in our day to day lives we use internet in a similar fashion. We are not aware how our client systems communicate with the servers using protocols in internet. Yet we perform our end user activities such as email, social networking, browsing, banking, etc at ease.
Cloud Computing vs current model
We all know that a computer, laptop or any other such devices require many features other than internet to function. From the beginning when we started to learn computers we use the term hardware and software. A computer comprises of both hardware as well as software. Hardware includes CPU, memory, hard disks, printer, keyboard, mouse etc. Overall the hardware comprises of input, output devices, memory and CPU. Softwares refers to all the applications we use to perform our tasks in computer such as Office tools, browsers, paint, CD/DVD burner, pdf readers, flash players, games and many more. These softwares are the applications that are we use day to day for our computing with or without internet.
In terms of personal computer, we would have purchased all the hardwares and few softwares. Some softwares can be obtained as freeware or open source. Initially one needs to install the Operating System, nowadays OS is inbuilt in the purchased system. However we may need to install these softwares in our systems and configure them. In case of enterprises the hardware needs to be installed first for each and every user and finally the software would be configured individually or through distributed computing. The monitor needs to be connected to the memory, CPU. In case of distributed system database and Server are also connected. This entire system is connected to internet through a switch and a router. All these require lot of effort. Similar effort is needed with respect to maintenance or upgrade of software.
It is believed that if the cloud computing becomes a success and is implemented fully fledged for public, all we would require is only the input and output devices (computer monitor, keyboard, printer, mouse, etc). All the processing would be done by the servers and resources in the cloud. The most important requirement is internet which is required to access these resources. Using this internet one can access any application from the cloud, based on the request. The cloud would be maintained and updated by the company hosting the cloud with latest applications and trends. This concept is somewhat similar to set top box services where you pay the service provider for movies or channels you need. The service provider immediately provides the access based on your request. Similarly cloud requests can be provided in minutes from cloud provider based on request. The below given diagram depicts the difference between the two architectures.
Before getting to know about cloud computing one should have an idea about grid computing, as some may confuse the concept of grid with cloud computing. Grid computing is a virtual computing which has the capacity of supercomputer where complex computations can be done easily. Grid computing is used for complex research, scientific and business related problems. In grid computing a single problem is dealt with many computers and the problem is solved quickly and efficiently. In cloud computing the concept is quite the opposite where the several user tasks may run at the same time in a single server at a particular moment.
Utility computing is another important concept that one needs to know due to its similarity with cloud computing. Customers use the utility computing system designed by the private service provider. The architecture and components of utility computing system is designed based on the requirement of the customer. However the perspective of the utilities are not as wide as cloud computing. Anyways the payment methods of utility computing is similar to that of cloud computing. Cloud computing is much broader in application and use when compared to utility computing. In cloud computing even the infrastructure can also be given as a service along with software. The cost incurred would also be less than utility computing. We can refer utility computing to be a precursor to cloud computing.
Types of cloud computing
There are three types of cloud computing namely private, public and hybrid cloud computing.
Private cloud computingPrivate cloud is similar to that of intranet. This cloud is securely allocated within an organization. This type of cloud computing has more benefits with increased security, reliability and corporate ownership of the cloud. The data and applications in an organization require a secure connection. With the advent of cloud computing, private cloud computing has become a viable choice for the organizations to implement cloud computing. It is predicted that the future IT corporations would be greatly dependent on this type of cloud computing. Examples of few implementations of private cloud are VM ware, Microsoft, Eucalyptus, etc
Public cloud computingThis public cloud computing somewhat resemble internet where the access is available to public domain. Here the service provider of the cloud provides the cloud infrastructure as a commercial entity to the user. This helps the users to create and use a service or application at a much lower cost when compared to the cost incurred in purchasing, installing, maintaining and licensing in individual computers. The examples for this type of cloud computing is Amazon Elastic compute cloud, Google app engine, IBM's Blue cloud, Sun cloud, Windows Azure etc.
Hybrid cloud computingHybrid cloud computing combines the features of both private and public cloud computing. Enterprises or organization cannot thrive on private cloud alone and they might require the public cloud to meet various organizational demands. This is where hybrid cloud comes into picture. The hybrid cloud usually would have a private cloud and at least one public cloud.
Please find my depiction of these three types of cloud computing for clear understanding.
Cloud computing architecture
First let me explain the architecture in simple terms. Mostly computer architectures comprises of a front end and a back end. Similarly cloud computing also comprises of these two components. This front end and back end are connected by means of the internet. This can be understood from my depiction of cloud computing architecture given below. The front end is the computer that is required to access the cloud for different services. All the applications that are required to access the cloud computing systems contribute the front end applications. All the servers that respond to these requests constitute the backend. Each type of request from the user requires different type of server and there would be a dedicated server for each type of application or service. For example let us consider email. Suppose we need to access mail from google cloud then the chrome, ie or firefox browser would be the front end application that is used to access the cloud. The mail server and the data center that responds to these requests constitute the backend. Similarly every other service would require a front end and one or more dedicated server at the back end. More than one server can respond to a front end application request. There is a main or central server that monitors the traffic, requests and services using the protocols and softwares (also called as middleware). This central server ensures all traffic and activities within the cloud runs without any problem.
The cloud within the cloud computing architecture is constituted by or classified into three service models. The customer or client may avail any or all the services from a cloud provider.
Infrastructure as a Service IaaSIaaS is the foundation layer for other two layers in the cloud. Using this service the user may select the type of configuration of CPU, storage and memory that is required for the application to run the service. In other words the user can develop a customized virtual computer. This infrastructure is not only limited to CPU, storage and memory, but also extended to the entire cloud infrastructure including servers, various hardwares, routers, firewalls, etc. All these infrastructure resources can be purchased from the vendor at a comparatively lesser price as a service based on the requirement. This type of service is provided by Amazon Elastic Cloud 2 (EC2).
Benefits of IaaS
Platform as a Service PaaSBy means of PaaS service the entire environment to develop software would be provided as "ready for use". There is no need for large investments on installing and configuring the development environment. This service is very useful for organizations with development projects. Even individual users can avail this facility to develop a software or application. This could be done by means of launching one's own cloud PaaS from the cloud provider. Windows Azure and Google App Engine are few cloud providers for PaaS. For example Java Developers use Google App Engine platform to create their own Cloud SaaS for developing their applications.
Benefits of PaaS
Software as a ServiceSaaS is a service where the developed software is provided as service to the user. This feature is found attractive by users and organization as it reduces the cost as well as effort for licensing and installation. The user or enterprise has to pay a reasonable price to the cloud provider based on the utilization of cloud. This type of service makes maintenance and support easier and feasible at a lower cost. This software can be accessed easily through internet. In future the cloud providers would be able to incorporate most of the softwares that are safe and inevitable for customers in the cloud. Enterprises who do not want to develop softwares but require applications for their tasks find SaaS to be very handy.
Benefits of SaaS
Pictorial representation of cloud computing architecture
Advantages of cloud computing
The advantage of cloud computing are many and attractive. Let us see about a few of them.
Disadvantages of cloud computing
Though there are very good advantages using cloud computing, the main disadvantages quoted for cloud computing are related to security and privacy.
Cloud computing being the latest development in internet has gained a lot of reputation as well as criticism throughout the world. This cloud computing seems to provide greater advantage however the risks associated with it makes everyone to think twice before implementing. Global IT giants such as Google, Amazon and Windows have already ventured into cloud computing. Obviously this decision would have been made only after calculated and thorough analysis on its benefits. Through cloud computing both users and service providers attain benefit. It is a win - win situation for both. Users save cost and effort, the organization would attain good productivity with less investment and finally cloud providers would also benefit by large scale usage of cloud computing technology.
If we are able to overcome the demerits of cloud computing then this technology would become highly popular as that of internet. Many expect the next trend in IT would be cloud computing. I think we are already half way through. Anyways IT has always been a field that experience constant change and growth in terms of technology. Let us hope that cloud computing also attains constant change and growth in order to evade the risks associated with it. Only time and effort holds the key to the future of cloud computing.
Note: All the images are created by me, no other individual or organization except for ISC can claim copyright on the same.
More articles: Cloud computing