What is the Cloud ?

animated cloud image

   I am not talking about the clouds up in the sky. We are interested in the Cloud computing services offered by different cloud providers. In simple terms, these are IT resources or services such as networking, storage, computing, analytics etc… that can be accessed over the internet, usually with pay-as-you-go billing.

   You can imagine Cloud as a collection of different IT resources that are available for rent or use with a subscription fee. These resources are located in data centres all over the globe, maintained by Cloud Service Providers (CSP). By using cloud services, you do not have to deal with setting up and managing a physical data centre or running applications on your machines. Some of the popular cloud providers are AWS, Google Cloud, and Azure.

   Let's discuss some of the characteristics of the cloud. These include Scalability, Elasticity, Agility, High Availability, and Fault Tolerance.

Scalability: Imagine that there is a sudden increase in traffic to your server and you require some extra servers to handle the load. In a typical scenario, you need to order the servers with a vendor, who delivers them after several days or even months. By the time the servers are configured and ready to use, the traffic may go back to normal. Now you are stuck with the servers that you don’t really need.

   This can be avoided with the cloud. You can purchase and use the servers as you like. It usually takes just minutes to spin up new servers. When you are done, you can delete them instantly. This process of allocating and deallocating resources is known as scalability. Scaling can be of two types: Horizontal and Vertical scaling. If the size of the resource is changing it is termed vertical scaling, like increasing the RAM or adding a drive to your system. If it’s the number of resources that is changing then it's horizontal scaling, like purchasing a new system.

 horizontal and vertical scaling

Elasticity: : It's difficult if you have to manually scale the server each time there is an unexpected spike in traffic. Instead, you can allow the cloud resources to scale with the demand. Just specify the maximum and the minimum number of resources the cloud will scale the resource according to the demand. When the demand increases, the resource will be automatically scaled up and scaled down back to the minimum when normal. This ability to dynamically scale to the demand without your intervention is known as elasticity.

High Availability: You might have heard of popular apps like Facebook, Instagram, and Gmail going down. For the users, this might not be a good experience. It's critical that the users have access to your app when they want it and ensure that your app is available all the time. This is where the term high availability comes into the picture. It is the measure of the system uptime for the user or service.

 availibility is ratio of uptime to total time

Fault Tolerant: When you have deployed an app, there are chances of technical glitches, such as server failure, network connectivity issues or even unexpected cloud failures. You need to consider all these while developing the app and find ways to overcome these unexpected failures. Simply put, your app needs to be fault tolerant. It’s the ability of the app to remain up and running during component or service failures.

   Now let's talk about the different types of services provided by cloud providers. A cloud provider usually delivers three different types of services.

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)
Iaas SaaS PaaS block diagram

Infrastructure as a Service: : In this model, you can rent infrastructures such as servers, storage or networking components from the cloud provider. Then you can use this infra to build and deploy your applications. It’s important to note that you are responsible to maintain the security and proper functioning of the application, software and OS that are deployed on the infrastructure.

Platform as a Service: In this model, you can rent the tools, operating system and software required to build your application. Here, the cloud provider manages the underlying infrastructure that supports the application so that you can spend more time developing the application. Examples of PaaS include DynamoDB by AWS and CosmosDB by Azure.

Software as a Service: Instead of developing or installing an application, you can access the application that is already made available by the cloud providers over the internet. Here, the cloud provider manages the infrastructure and platform, and you are responsible for the data stored. Examples of SaaS applications are OneDrive, Salesforce, and Outlook.


Comments (0)
empty comments

Nothing here yet

Nervo Tech Logo

Explore a treasure of technical blog posts on Android, Big Data, Cloud, Python, and More!

© 2025 Nervo Tech. All Rights reserved.