Cloud Computing — What exactly is it?


Cloud Computing — What exactly is it?

In this era where each of our actions is translated into some form of data, and with the blooming technologies like big data, AI, ML etc being completely data-driven as opposed to the traditional programming styles, larger storage, and computing capabilities have become a greater necessity.

But consider a scenario where each developer or entrepreneur who is building an application invests a huge amount of time, money and infrastructure designing data centers and maintaining them? The Return over Investment would be very less and the resources will be vastly under-utilized except for the developers’ own usage. A possible analogy would be someone building a car manufacturing company to make a car just for personal use.

With the advances in distributed computing, the advent of micro-services, web services, and the information explosion happening, the idea of providing resources as a utility just like electricity or water has come into consideration. This is from where the buzzword- Cloud Computing has taken its roots. We all must have heard of cloud computing service providers like Amazon web services, Google Cloud, Microsoft Azure, etc. Long story short- Rather than investing a lump sum on resources like storage facilities and processing capabilities, the concept is that we rent out resources from the cloud, build or deploy applications on the cloud and pay for whatever we use.

The major concepts behind cloud computing in addition to what i briefly stated above can be best described by the 3–4–5 rule of Cloud Computing in accordance with the standards prescribed by NIST (National Institute of Standards and Technology).

The 3–4–5 Rule

Cloud computing is essentially driven by :

  • 3 cloud service models or service types for any platform
  • 4 Deployment models
  • 5 essential characteristics.

Let’s start with the bigger number first.

The five essential characteristics of Cloud computing are:-

  1. On-demand Self service — A user can consume resources, computing capabilities, applications and services as and when needed without any interaction with the service provider.
  2. Broad Network Access — The resources are accessible over the standard network connections and from all the commonly used machines like a laptop, PC, tablets, etc. This would, in turn, promote the usage of cloud-based systems.
  3. Resource Pooling — All consumers share resources from a common pool which is assigned to them depending on demand, consumption, and usage. The entire pool will be scattered across different geographical locations. There is not much control over the location of the resource (storage, processing, memory, network bandwidth, etc.) which a particular user wants to consume.
  4. Rapid Elasticity — Scaling of applications has to be highly elastic — both upward and downward scaling will be seamless and in proportion to demand.
  5. Measured Service — Cloud computing advocates for the pay-per-use model. Hence all resource usages are controlled, optimized, monitored and reported frequently. In a way, there is transparency for both the consumer and the service provider regarding the resource usage.

The four deployment models of the cloud are:

  1. Private Cloud — Operated solely for a single organization. Owned and managed the firm or by a third party offshore. Used specifically when data security is the biggest concern.
  2. Public Cloud — Open to the general public managed by organizations or governments.
  3. Community Cloud — Infrastructure set up for the community of consumers or individuals from organizations with similar concerns.
  4. Hybrid Cloud — Combination of two or more of the models mentioned above which remain as separate entities but share common standards and technology which enabled the portability of data and application.

The three cloud service models are:

  1. Infrastructure as a Service (Iaas) — Basic storage and computing capabilities, servers, switches, and routers are pooled and offered as service over the network. At this level, there is no abstraction involved. It is similar to making a salad all by yourself from the various ingredients available. We get to pick and choose the components and get started from scratch.
  2. Platform as a Service (Paas)— In this service model, things are a little abstracted where we can build our applications on top of platforms which are provided. The services will be provided as APIs which can be consumed as needed. Examples of these systems would be the Google App Engine, Authentication mechanisms, Queuing systems, etc.
  3. Software as a Service (Saas)— Here the entire application is ready-to-use and multiple clients can make use of the product. The underlying details of implementation are completely hidden from the end-users. Examples are appointment scheduling systems like Practo or various CRM tools from Salesforce.

Thus to summarize, the cloud has the potential to give developers and businesses a huge monetary benefit where they can iterate and prototype their ideas at a minimal cost and achieve a shorter time to market.

References:-

  1. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf
  2. Cloud Computing — Principles and Paradigms(Rajkumar Buyya, James Broberg, Andrzej Goscinski).

Leave a Reply

Your email address will not be published. Required fields are marked *