Understanding Cloud Computing and Application Architecture

Kartik SangalKartik Sangal
4 min read

What is Cloud Computing?


  • Providing on-demand IT resources over the internet is called as Cloud Computing.

  • There are several cloud providers available in the market to provide resources over the internet

    (AWS, Azure, GCP, Salesforce)

  • IT resources means computing, network, power, security, storage, servers, etc.

If you want to deliver one project to the client, we need to set the infrastructure :

  1. Purchase computers

  2. Purchase servers to run an application

  3. Setup a room to run our servers (Server Room)

  4. Setup network for our computers

  5. Setup power connection for computers

  6. Setup power backup to run our computers 24*7

  7. Setup AC for server room

  8. Purchase a Database Server for our application

  9. Recruit administrators to configure everything required for the application to run

  10. Take a security guard to protect our server room

→ Setting up 'application infrastructure' is a costly operation and it is a time-consuming process.

→ Instead of purchasing and setting up infrastructure, we can use Cloud Providers' help.

→ Cloud providers are available in the market to provide rent infrastructure using the 'Pay As You Go' model.

(Note: Use services and pay the money for usage)

Ex: Credit cards, postpaid bills etc…

Ex: When we have a function in our house we are not going to purchase chairs and tables. We will take them for rent and will use them for our function. After the function, we will return that material to the owner and will pay the rent amount for usage.

  • Similarly whatever the infrastructure (machines, servers, network, power, storage) required for our application we can take it for rent instead of purchasing.

  • How much do we use that much we need to pay for them (Pay As You Go, Model)

  • AWS is one of the famous cloud providers available in the market which will provide IT infrastructure for Rent.

→ The functional team is responsible for collecting requirements from the client

→ The development team is responsible for writing the code for the client-given requirements. Developers will develop the project by using the programming language.

→ The testing team is responsible for testing the code which is done by developers. Testers will verify whether the application functionality is working as per the client's expectation or not.

→ The operations team is responsible for building, deploying and delivering projects to the client

Note: After learning DevOps with AWS you will become an Application Operations Engineer

→ A DevOps engineer is called an Operations Engineer

→ As a DevOps engineer you will perform Operations Required For the Application.

→ The DevOps team is also called as Release Team.

→ Release Team is responsible for releasing the project to the client (Deploy & Deliver)


Application Architecture


→ Every web application comes under Client-Server Architecture

→ Server is a container that is going to run our web application

Ex: Apache Tomcat, Weblogic, Websphere, Glassfish, IIS etc…

→ Client means the user who is accessing a web application running on the server. Clients will use Browser to access the application running the server.

  • A web application running inside the server

  • Clients will send requests to the server to access our web application

  • The server will process the request and it will send the response to the client

  • Multiple clients can access our web applications at a time

  • If so many requests are coming to the server then the burden will be increased on the server

  • If the burden increased on the server then,

    1. Requests processing will take time

    2. Responses will be delayed for clients

    3. Server might crash

  • To overcome the above problems we will use Load Balancing


Load Balancing

The process of deploying our application in multiple servers to distribute the load is called as Load Balancing.

Use case:

Flipkart application running on 10 servers

Flipkart has 1 Lakh RPM (request per minute)

Note: With 10 node cluster Flipkart able to handle 1 Lakh RPM

Flipkart announced Big Billion Days on April 2nd (50% Offer)

Flipkart Expecting 3 Lakh RPM on April 2nd

To handle 3 Lakh RPM Flipart has done 30 nodes cluster setup

-> April 2nd morning Big Billion Day started

-> 9:00 AM they have 1 Lakh RPM

-> 9.30 AM they have 2.5 Lakh RPM

-> 10.00 AM they have 4.5 Lakh RPM (Increased cluster to 45 nodes)

-> 10.15 AM breaking news (Bollywood hero died in an accident)

-> 10.20 AM Flipkart having 50k RPM (Flipkart should remove nodes from cluster because traffic is reduced)

Note: Adding and removing nodes is a difficult process and it is a costly operation

-> To overcome this problem we will use cloud computing

-> If we go for cloud computing we can use resources on-demand basis with Pay As You Go Model

-> Every cloud provider has an AutoScaling option

-> AutoScaling means that based on traffic it will add and remove servers from the Load Balancer.

0
Subscribe to my newsletter

Read articles from Kartik Sangal directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Kartik Sangal
Kartik Sangal