- Every server will have limited Hardware resources, these resource can cater only certain limit
- Example Scenario:
- Our each Server component like availability checker can respond to 5000 parallel users/requests. But right now we have 10000 users
- Solution for the above scenario is Scaling. Scaling is of two types
- Increase hardware resources of the current server
- Increase number of servers doing the same job
- One unsolved puzzle over here is what will we do if the traffic comes down to 3000 users. We need a way to scale out/scale up (increase) and scale in/scale down (decrease) the number of servers based on demand
- In all the cloud, the scale in and scale out is supported and also referred as elasticity.
Terms So far
- A measure of system uptime.
- If your system is up for almost all the time it is considered to be Highly Available.
- Fault Tolerance:
- Capability of system to recover from failures/faults
- Capability of System to Scale up or down depending on need of the user is considered as elasticity
- Allows to create multiple simulated environments or dedicated resources from single physical hardware system.
To run applications we follow the above workflow
When the applications dont use your hardware resources to the maximum potential, ROI (Return on Investment) is very low
Rather than using one operating system on the physical server, we can create multiple vms on the same physical server. This kind of virtualization is called as Server Virtualization
Every VM gets
- Virtual disk
- is connected to virtual network using virtual socket
- a CPU and memory (virtual)
- Has some Opertaing system
Server virtualization is supported by Softwares like VMWare ESxi
All the clouds use Server Virtualization for creating virtual machines
- Amazon calls it as EC2
- Azure calls it as Azure VM