Mellékleteink: HUP | Gamekapocs
Keres

Újabb amazonos hiányt pótol a Netflix

Gálffy Csaba, 2012. szeptember 05. 14:17
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

Kinyitotta saját fejlesztésű Eureka terheléselosztó (load balancer) alkalmazásának forráskódját a Netflix, így bárki számára elérhető vagy épp módosítható a szoftver.

Újabb fontos, az Amazon Web Services hiányosságát pótoló szoftvert tett közkinccsé a Netflix az Eureka load balancer formájában. Az Eureka egy REST-alapú szolgáltatás, amely egyszerűbbé teszi a terheléselosztást és hiba esetén kieső szerverek pótlását (load balancing és failover). Az Eureka része egy Java-alapú kliens, amely tárolja a rendelkezésre álló kiszolgálók listáját és képes mindig a legkisebb terhelés alatt lévővel felvenni a kapcsolatot. A filmes szolgáltatás az Eurekát számtalan alrendszerében használja, a belső gépek szoftverfrissítésétől a Memcached-alapú szolgáltatás csomópontjainak azonosításáig.

A Netflix szerint az Eureka megközelítése kiválóan passzol az AWS egyedi jellegzetességeihez, különösen az egyes instance-ek időbeni instabilitására. "Az AWS természetének megfelelően a kiszolgálók jönnek, mennek. A hagyományos terheléselosztók ismert IP-címekkel és gépnevekkel működnek, az ilyen megközelítés adoptálása AWS környezetbe komplex rendszert igényel, amely folyamatosan regisztrálja és törli a kiszolgálókat, ahogy azok indulnak és leállnak. Mivel az AWS jelenleg nem kínál ilyen mid-tier terheléselosztót, az Eureka egy hatalmas űrt tölt be ezen a területen" - mondja a Netflix blogposztja.

Az Eureka szolgáltatáskínálata különbözik az Amazon által kínált Elastic Load Balancing rendszertől. Ugyanis míg az Eureka elsősorban mid-tier kiszolgálókkal dolgozik, az ELB mögé kötött szerverek látszanak kifelé (edge kiszolgálók), ami használhatatlanná teszi az AWS biztonsági csoportok alkotására vonatkozó képességét. Másik fontos különbség, hogy míg az ELB tradicionális, proxy-alapú terheléselosztó, az Eureka rendszerében az elosztás a kiszolgáló (instance) szintjén működik. A kliensek így pontosan tudják, hogy mely szerverekkel kell felvegyék a kapcsolatot, így közvetlenül tudnak kommunikálni. Ez azt is jelenti, hogy a rendszer sokkal jobb hibatűréssel bír, a terheléselosztó kiesése nem teszi működésképtelenné a mögötte sorakozó kiszolgálókat. A megközelítés hátránya, hogy az elérhető kiszolgálók listáját kliensoldalon tárolni kell, ami kicsit nagyobb memóriahasználattal jár.

Az Eureka használatának az ELB-vel szemben bizonyos korlátai is vannak, így például nem kínál automatikus "ragadós" feladatokat, vagyis kliens-szerver összekötést. Ez egyébként szándékos, a Netflix ugyanis tárolt adat nélkül működő (stateless) szervereket használ, amelyek maximálisan ki tudják használni az AWS automatikus skálázódási képességeit.

Az Eureka használatát ennek megfelelően olyan szolgáltatások számára javasolja a Netflix, amelyek sok mid-tier szervert használnak, amelyeket nem szeretnének kifelé láthatóvá tenni, és ezek egyébként stateless (tárolt adat nélküli) kiszolgálók. Az Eureka használatához szükséges a kliensoldali terheléselosztás, így szükséges, hogy a szerverekhez olyan alkalmazások kapcsolódjanak, amelyek az Eurekához szükséges képességeket is tudják integrálni.

A Netflix Eureka kódja a Githubon érhető el.

Facebook

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.