Introduction to Cloud Computing
Introduction to Cloud Computing
As we all are aware of a typical java web application architecture, Its generally follows a multi-tier architecture. Generally one tier for UI (user interface), one for business logic and one for data base. For a web application we need an application server or web server e.g. JBOSS or Apache tomcat and a database server like Oracle 10g. If your application is for small number for users or customesr then you need not to think about scalability and availability, but if your application is going to be use by huge numbers of users e.g. google and facebook than you must think if you application is able to handle huge number of request per second, or in simple words, you must need to think about the load your application can handle.
If we are thinking about Load, the first few words click in our mind are Scalability, clustering and Availability. lets have a look on these terms one by one:-
1. Scalability:- Scalability is simply increasing the resource in your System to handle the increased load, for example just increase the number of server so that your application will be able to serve more number of request per unit time. (just like, one person can write 1 page per minute and you want 10 pages per minute the hire 10 people, where people and server are called resources )
we have two type of scalability, Vertical scalability and Horizontal scalability. let see what dose they mean:-
Vertical scalability: Just increase the number of resources like CPU memory or servers to serve the requests.
Horizontal Scalability: Make one logical unit of multiple resources for example make use of more the one server using loadbalancer. all requests will come to loadbalancer and load balancer will decide to redirect the request on available server.
Availability: think If our application is making use of only one server and that server get crashed then your application will be not available to serve requests. but if your application is running on multiple servers and one of the got crashed then also your application will be available to serve the request. This concept is known as Availability.
Almost all web application perform availability and scalability concept for continues business.
Now think, if we are providing our application to user for our business purpose then we need to implement all the hardware like multiple servers and machines at our end. Means we need to host a data center, servers and network.
In our growing world, we have increasing number of web applications and due to same increase number of hardware implementation. just think, when space was available in city, people like to have their own land and home but when population increased, people moved to apartments. apartments are buildings shared by several family. The same concept can be applied to our web application. instead of building individual house(having all the hardware, servers dedicated to our own Application) for a web application, we can go for a apartment( a big platform compose of several servers which implements scalability and availability). this apartment is nothing but our cloud.
Cloud is a huge platform available for huge number of application. no need to implement hardware for an individual application. several application can share the same hardware. cloud is a multi-tenant platform. so just code your application and put it on cloud and don’t worry about hardware. In other words, cloud provide Hardware as a service (HaaS)