Understanding Cloud Computing and Application Architecture
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 :
Purchase computers
Purchase servers to run an application
Setup a room to run our servers (Server Room)
Setup network for our computers
Setup power connection for computers
Setup power backup to run our computers 24*7
Setup AC for server room
Purchase a Database Server for our application
Recruit administrators to configure everything required for the application to run
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,
Requests processing will take time
Responses will be delayed for clients
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.
Subscribe to my newsletter
Read articles from Kartik Sangal directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by