Przy zwiększonym ruchu na serwerze wąskim gardłem stanie się ta maszyna, którą bezpośrednio wskazuje DNS. W prostych aplikacjach i standardowych stronach internetowych jest to serwer HTTP obsługujące poszczególne zapytania. W bardziej zaawansowanych infrastrukturach jest to load balancer lub serwer reverse proxy.
Technika horyzontalnego skalowania serwerów HTTP jaką wam zaprezentuję jest znana od 1995 roku, ponieważ opisano ją w dokumencie RFC 1794. nadal może być przydatna a jej zrozumienie będzie bardzo rozwojowe i przydatne przy rozwijaniu dużej aplikacji w warunkach… niskobudżetowych.
Round robin na DNSie, bo tak nazywa się ta technika to wybieranie przez przeglądarkę losowego adresu IP z puli dostępnych adresów jaką serwuje DNS. Okazuje się, że w rekordzie „A” domena może mieć przypisanych więcej niż jeden adresów IP.

Choć karuzela DNS jest uważana za prymitywny i prześmiewczo uznawana za „load balancing dla biedaków” (bo faktycznie jest to dobry wybór w przypadku duzych projektów o małym budżecie) z powodzeniem jest wykorzystywana choćby przez wyszukiwarkę. Polecenie Dig A dla domeny google.com zwraca następujące adresy IP:

Oczywiście to nie jest tak że tam siedzą serwery Front-Endowe wyszukiwarki. To adresy load balancerów albo serwerów typu reverse proxy, które dalej rozdzielają ruch. Netflix też korzysta z tego triku:

Jak wykonać taki load balancing?
Nie ma nic prostszego. W strefie DNS domeny dodajemy kolejne rekordy „A”. Nie ma sztywnego limitu ilości adresów IP ale zaleca się stosować maksymalnie kilkanaście adresów.
Zalety równoważenia obciążeń za pomocą DNS
- Niski koszt -nic nie kosztuje
- Prostota działania
- Możliwość szybkiego wdrożenia
Wady techniki DNS round robin
- DNS nie kieruje konkretnych klientów pod te same adresy tak jak inteligentny load balancer, dlatego aplikacja PHP będzie gubić (zapominać) sesje. Należy zapisywać sesje we współdzielonej przez serwery pamięci masowej.
- DNS nie ma możliwości monitorowania obciążenia ani stanu serwera dlatego w przypadku awarii jednego z serwerów aplikacja może działać nieprawidłowo. Metoda ta nie eliminuje w 100% pojedynczego punktu awarii.
Podsumowanie
Choć DNS round robin to prosta i prymitywna technika równoważenia obciążeń nadal może być stosowana w skalowalnych aplikacjach internetowych we wczesnych etapach ich rozwoju.
Źródła
https://tools.ietf.org/html/rfc1794
Odpowiedz lub skomentuj