Kako Facebook konfiguriše milione svojih servera svakog dana

Kada je u pitanju sistem veličine Facebooka, sa više od dve milijarde korisnika na milionima servera koji pokreću hiljade konfiguracijskih promjena svakog dana (uključujući i bilione provera konfiguracija), konfigurisanje svega ovoga je velika stvar.

Kao i kod većine stvari kada je Facebook u pitanju, kompanija se suočava sa problemima sa kojima malo kompanija mora da se bavi i koji često prevazilaze granice jednostavnih i standardnih alata.

Da bi riješio svoje jedinstvene probleme, Facebook je razvio novi proces isporuke konfiguracija pod nazivom Location Aware Delivery ili LAD. Prije razvijanja LAD-a, kompanija je koristila alat otvorenog koda, pod nazivom Zoo Keeper, za distribuciju podataka, i iako je ta alatka funkcionisala, ona je imala prilično značajna ograničenja za kompaniju veličine Facebooka.

Facebook je želio da napravi alatku koja bi prevazišla ograničenja, razdvojila podatke od mehanizma za distribuciju, imala vrijeme latencije manje od pet sekundi i podržavala 10 puta više datoteka od Zoo Keeper-a. Kompanija je takođe željela da sve ovo radi na milionima klijenata i da upravlja neviđenim brzinama ažuriranja i protokom koje samo Facebook može da generiše.

Proizvod koji je napravio Facebookov inženjerski tim, Location Aware Delivery – LAD , sastoji se od nekoliko dijelova: proksija koji se nalazi na svakoj mašini u Facebookovoj porodici i isporučuje konfiguracijske datoteke na bilo koju mašinu kojoj je to potrebno. Drugi dio je distributer, koji isporučuje informacije o konfiguraciji. To postiže tako što provjerava nova ažuriranja, a kada ih pronađe, kreira stablo za distribuciju za niz mašina kojima je potrebno ažuriranje.

Ova metodologija pomaže u rješavanju većeg broja problema sa kojima se Facebook suočava pri distribuciji ažuriranja konfiguracija u ekstremnim količinama.

“Korišćenjem pomenutog stabla za distribuciju, LAD osigurava da se ažuriranja isporuče samo zainteresovanim proksijima, a ne svim mašinama. Pored toga, matična mašina može direktno da šalje ispravke ostalim mašinama, što osigurava da nijedna mašina u blizini korjena ne bude opterećena”, ističe u svojoj blog objavi Ali Haider-Zaveri, iz kompanije Facebook.

Što se tiče ograničenja, kompanija je uspjela i njih da prevaziđe. Umjesto ograničenja za ažuriranje od 5MB, povećali su ga na 100MB, a umjesto 2500 korisničkih ograničenja, ovo je povećano na 40.000.

Do ovog sistema se nije lako došlo. Bila su potrebna testiranja i nova testiranja, ali je sada dostignuta odgovarajuća funkcionalnost – barem za sada, dok se Facebook ne suoči sa novim izazovima i ne pronađe nove načine da reši probleme sa kojima niko drugi do sada nije morao da se suočava na ovom nivou.

(TechCrunch)

Related posts