DEV Community

Cover image for Cloud Computing - What, Why and When?
KrishnenduDG
KrishnenduDG

Posted on

Cloud Computing - What, Why and When?

Well, these days "Cloud Computing" isn't a very new term and every developer comes across it once in a while.But the ways people perceive the concept about it is numerous especially due to the fact that every person has a different use case in their mind while learning or exploring something.

N.B.: You need to have some basic ideas and use cases of working with a static website and a dynamic website. Otherwise, learning Cloud Computing is just like another Theoretical Subject with no practical and real-life implications in your mind!

The Term "Cloud Computing" was coined by US National Institute of Standards and Technology. According to them,

Cloud Computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks , servers , storage , applications , and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

In simple terms, Cloud Computing is that concept or a facility through which users can get access to a shared pool of Computing resources and services through a Cloud Provider..

Why Cloud Computing?

Now the basic question which arises while exploring a new domain is that "Why should anyone use it?🤔🤔" and Cloud Computing is not an exception.

Some of the basic benefits that it provides are listed below:

  • Less Need of Management:

    While developing a production level application , the team of developers need to focus on a lot of areas like Architecture , Design and Prototyping , Coding , Testing etc. But all of this is of no use if the product couldn't be shipped to the Deployment Phase . Again, for deployment, we at least need a basic server to provide the end users with our product and a Database for obvious reasons. Now, hosting and managing the product at the same time can be very difficult for a team. And there comes the need of Cloud Computing. The Cloud Provider offers us with a lot of computing resources(like VMs , Databases , Cloud Functions etc.) to deploy our application with an added benefit of almost 0% concern for managing and maintaining those, so that the developers can very well focus on the business logic of their product.
  • Highly Customisable:

    While allocating the Resources for our application, we are provided with a large variety of customising facility through the dashboard, so that we can choose the most appropriate and efficient Infrastructure that best suits our needs. A basic example would be allocating a VM(Virtual Machine). While doing so, we are provided with the options like Allocating Region of The VM, OS to install in the VM ,GPU Configurations , Network Configurations Like Firewall etc.
  • Cost efficient:

    The Cloud Provider provides us with a very convenient and lucrative scheme of "pay-as-you-go" for our resources. Now as the term suggests, that we pay for only those units of Computing power and resources that our application uses. Also, extra usage of resources is prevented by them only through the feature of Auto-Scaling (Discussed in the next point) , which in turn reduces the risk of Increased Cost for the product.
  • Auto Scaling:

    Almost every cloud service provides us with the feature of "Auto Scaling" . The term refers to the phenomenon through which the number of Resources allocated to your service at any moment of time is decided by the factor of the Incoming Traffic . Let's understand with an example!

Let's say you have an E-Commerce Website serving an average of 10K Customers everyday. But during the Festival Days like Diwali, Christmas etc. the Traffic suddenly rises to 300-400K. Now how would you handle that? You definitely need to increase the Resources of your server . But again when the rush decreases, you don't need that much of computing power and so we need to deallocate them for avoiding increased cost (Otherwise you are gonna end Bankrupt! ☠️☠️). The most beautiful part of using a Cloud Service is that all of these upscaling and downscaling of Resources is handled by them itself and we as a user need not give any input for those. It automatically detects the change in Incoming Traffic and does the needful for serving it.

  • Speed and Availability:

    Through the Cloud Service Providers we can easily use a very high-powered VM or any other resources to cater to our needs of the customer by increasing the computational speed and thus making the UX(User Experience) way better than before. Also, since the Cloud Resources are distributed throughout the globe, we can easily configure the location and other stuffs so that customers can be served more easily and quickly from their nearest data center for much decreased latency.
  • Security:

    Since the whole infrastructure is managed by the Cloud Provider itself, so we need to have almost 0% concern of Security for our product. We can easily configure some security and access rules and regulations through the Dashboard to mitigate the potential threats of security breach in our product.
  • Monitoring and Health Checkup:

    While developing a Scalable and Distributed System , it is very important to monitor the health of each of the Computing services and resources so that our customer doesn't have to face an irritating 404 status page.Well, Cloud Providers also have a solution for that. All the resources allocated are continuously monitored and if something goes wrong, we will be immeditely notified. Also, if some service goes down, it is automatically restarted or reallocated on-the-fly.

When to use Cloud Computing?

This is the most important section of any Technical Domain.Just because something exists, doesn't necessarily mean that we have to always use it in our products.

For experimentation, we can use Cloud Computing Facilties with small to medium sized projects but that's not a must.

But for a Production Level Application which involves a lot of features like User Authentication , Database Activities , User Activity Tracking, Feedback, Analytics etc., using Cloud Computing is a must. It not only helps us manage things efficiently but also reduces the overall time of shipping the whole product to the end users.

Top comments (0)