Posts

Load balancing & consistent hashing

LOAD BALANCING Load balancing  refers to efficiently distributing incoming network traffic across a group of backend servers, also known as a  server farm  or  server pool . Modern high-traffic websites must serve hundreds of thousands, if not millions, of concurrent requests from users or clients and return the correct text, images, video, or application data, all in a fast and reliable manner. To cost-effectively scale to meet these high volumes, modern computing best practice generally requires adding more servers. A  load balancer  acts as the “traffic cop” sitting in front of your servers and routing client requests across all servers capable of fulfilling those requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked, which could degrade performance. If a single server goes down, the load balancer redirects traffic to the remaining online servers. When a new server is added to the serve...

Horizontal & Vertical Scaling

Image
                                                                                      Horizontal scaling means that you scale by adding more machines  into your pool of resources whereas  Vertical scaling means that you scale by adding more power (CPU, RAM) to an existing machine . An easy way to remember this is to think of a machine on a server rack, we add more machines across the  horizontal  direction and add more resources to a machine in the  vertical  direction.                                                                           ...