Szerző: Gálffy Csaba

2012. szeptember 5. 14:17

Újabb amazonos hiányt pótol a Netflix

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.

Nagy pénz, nagy szívás: útravaló csúcstámadó IT-soknak

Az informatikai vezetősködés sokak álma, de az árnyoldalaival kevesen vannak tisztában.

Nagy pénz, nagy szívás: útravaló csúcstámadó IT-soknak Az informatikai vezetősködés sokak álma, de az árnyoldalaival kevesen vannak tisztában.

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.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról