Mellékleteink: HUP | Gamekapocs
Keres

Terheléselosztót dobott a közösbe a Google

Gálffy Csaba, 2016. február 01. 16:46

Újabb technológiával gazdagítja a szabad szoftveres világot a Google, a cég ezúttal az adatközponti terheléselosztó kódját tette elérhetővé.

Új load balancert mutatott be a Google és egyúttal közzé is tette a megoldás forráskódját. A Seesaw ("mérleghinta") kódnevű szoftvert a cég élesben használja saját adatközpontjaiban a szerverek közötti terhelés elosztására. A saját fejlesztés alatt a Linux LVS dolgozik, az extra funkciókat a fejlesztők Góban írták meg.

A bejegyzés szerint a Google korábban két, egymástól eltérő terheléselosztó technológiát használt házon belül, azonban a cég mérnökei mindkettővel elégedetlenek voltak - stabilitási és kezelhetőségi kihívásokat támasztott e két megoldás. Google-ről lévén szó a mérnökök végül nekiláttak egy saját megoldás fejlesztésének, amely a cég egyedi igényeit maximálisan ki tudja elégíteni. Ezek érdekes módon nem funkciógazdagságra, hanem a kiszámítható viselkedésre vonatkoznak, a képességlistán csupán olyan elvárások szerepeltek, mint a unicast és anycast virtuális IP-k forgalmának kezelése, NAT és Direct Routing illetve a backend rendszerek monitorozása. Ez utóbbi azért fontos, hogy a load balancer csak olyan szervernek küldjön forgalmat, amely azt helyesen fel is tudja dolgozni, így a terheléselosztó egyúttal a redundanciát is egy csapással megoldja.

Egyszerűnek tűnik? Nem az

Mivel a két létező rendszer egyike Linux LVS (Linux Virtual Server) alapokon működött és ezzel a fejlesztők elégedettek is voltak, az új, saját főzésű megoldáshoz is ezt az alapot vitték tovább. Az LVS saját hatáskörben elvégzi a szükséges feladatok jelentős részét, így logikus választásnak bizonyult erre a szerepre. A további képességeket a Google mérnökei fejlesztették a rendszerhez - ezek az alkalmazások pedig a cég saját programnyelvén, Góban íródtak.

A bejegyzés szerint ez is jó döntésnek bizonyult az évek során, a Go ugyanis fejlett szálkezeléssel bír, így a rengeteg párhuzamos feladattal járó hálózatos feladatra is alkalmasnak bizonyult. Ugyanígy a folyamatok közötti kommunikáció megvalósítására is alkalmas, a net/rpc könyvtárnak köszönhetően az üzenetek küldése-fogadása is megoldott. Szintén induláskor hozott döntés volt a moduláris, többfolyamatos architektúra és a kiszámítható viselkedést leíró elv: ha egy folyamat szokatlan állapotba kerül (nem válaszol, kifagy, stb.), akkor azt a rendszer leállítja és újraindítja.

A fejlesztés eredményeként jött létre a Seesaw v2, amely immár élesben is ki tudta váltani a korábban párhuzamosan használt két terheléselosztót. A szoftver a reményeket is beváltotta, lényegesen jobb rendelkezésre állást és hatékonyabb kezelhetőséget biztosított - igaz, a mutatószámokat a Google nem közölte.

A Seesaw a projekt GitHub oldaláról tölthető le, itt olvasható a függőségek listája is. A szoftver Apache 2.0 licenc alatt érhető el, így értelemszerűen szabad, nyílt forráskódú. Ahogy arra az oldal felhívja a figyelmet, a Seesaw nem hivatalos Google-termék, így támogatás sem jár mellé.

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.