What is cloud computing?

Cloud Computing

Clouds in the air contain tons of water – but not a single drop! The water vapor is spread over the entire volume, in a low density – that makes a cloud light enough to float in the air. Cloud computing emerged from this concept.
Giants like Amazon and Google needed high performance computing. And their need had far surpassed the most powerful machines of the time. That is when they came up with the idea of forming a cloud of small capacity machines into a huge capacity. Each petty machine contributes to the massive computing power that system provides. Over time, they ended up with such a high capacity that they could think of lending it to others who need it. That is where the current form of clound computing started off.
Today, cloud computing makes a lot more sense because of the massive range of technologies required to sustain any given application, and the big inflow of smaller players. In this scenario, it is not practical for everyone to just buy hardware off the shelf and implement and maintain everything else by oneself. That would require a huge effort and expertise in a wide range of technologies. That does not make economic sense for everyone. Cloud computing provides a very simple solution to this problem.
There are several aspects of an application that are critically important, yet external to our application. For example, security, hardware maintenance etc. Now, we can easily delegate such concerns to the cloud provider. Of course giants like Amazon, Google or Oracle know these much more than we ever will. These concerns are common for almost all the applications that run on the internet. It makes a lot of sense for everyone to allow such cloud service providers handle these problems, while we focus on just our applications.
Another major advantage of cloud computing is the time sharing. Dedicated hardware or infrastructures are often wasteful if the usage is not uniform. We often see fluctuations in the usage based on the region and time of the day. Dedicated infrastructures as well as platforms need to have enough capacity to take care of the peak load. And this capacity is often wasted when the load is below the peak.
Cloud service providers that bill the users per usage help resolve this problem. Because of their wide customer base, spread across geographies and domains, they can balance the load from different customers. For example, the Indian market is normally silent when the American market is active and vice-versa. If both depend on the same cloud, the load is balanced very naturally without much effort. Such use of cloud based services helps reduce costs.
With cloud computing, almost every aspect of the application development is easily managed online, with the help of the UI provided by the service providers. That drastically reduces the timelines. For example, buying a new server, installing the operating system or a database server and getting it securely connected to the network with a firewall and a dedicated IP Address can take weeks of effort. But on a cloud, it is a matter of minutes!
The final and most important advantage of using a cloud is the rapid elasticity. Suppose you make an application that clicks overnight. You would have a hell of a time upgrading the systems to take care of this new unplanned load. But, for a cloud again, this is again a matter of minutes. It can easily scale up or down. Of course, any advantage of cloud computing is based on the assumption that you choose a service provider who is capable of his job. Else, all the advantages show up as disadvantages that are impossible to manage.

Basic Concepts

The two most basic concepts in cloud computing are: Deployment Model and Service Model. There are four types of Deployment Models: Public Cloud, Private Cloud, Hybrid Cloud and Community Cloud. These refer to the way infrastructure is laid out and who has access to the system.
  • Public Cloud: The public cloud allows systems and services to be easily accessible to the general public. Public cloud may be less secure because of its openness.
  • Private Cloud: The private cloud allows systems and services to be accessible within an organization. It is more secured because of its private nature.
  • Community Cloud: The community cloud allows systems and services to be accessible by a group of organizations.
  • Hybrid Cloud: The hybrid cloud is a mixture of public and private cloud, in which the critical activities are performed using private cloud while the non-critical activities are performed using public cloud.
And we have four types of Service Models are: Infrastructure as a Service (IAAS), Platform as a Service (PAAS), Software as a Service (SAAS) and Anything as a Service (XAAS)
  • Infrastructure as a Service: IAAS is the most basic level of cloud service. This is essentially based on virtual machines. The user is provided with defined virtual machines connected to the network – of a specified processing power and storage, and they are billed based on the capacity as well as the usage.
  • Platform as a Service: PAAS provides the runtime environment for any application. For example the operating system, the database, web server, deployment tools, etc. These are not directly used by an end customer. But they form all the supporting elements that are required by any generic application running on the network.
  • Software as a Service: SAAS provides the actual application that an end user will use. Often SAAS is based on an underlying PAAS that depends upon an IAAS.
  • Anything as a Service: This is a generic name for all others or their combinations. For example, Network as a Service, Business as a Service, Identity as a Service, etc.

Major Players

Amazon Google and Microsoft are the well known major players in Cloud Computing. All offer great services at competitive cost. But that is not all. We have several other players trying to push their way into the market. Oracle, IBM, and RedHat are some more well known names. Apart from these, there are innumerable players that provide the services for specific regions and domains.
The basic concept behind computing over the network is not new. Ages ago, mainframes provided platforms and applications on the network. In the 1990’s, we had several internet portals like Cyberspace, Geocities, Tripod, Hotmail or Yahoo that provided various net based services on various levels. They provided applications, services, platforms or infrastructures on which one could run applications. They could be considered as preliminary examples of cloud. But they were limited to the - non professional nerds.
Today, the major difference today is that the concept has a firm footing. It is well defined and formalized in terms of security, services, measurement, as well as the billing. Due to this, their usage is not limited to nerds - but many well respected organizations of good sizes are moving their systems to the cloud.