Netflix vytváří spolehlivou a škálovatelnou platformu využívající zdroje událostí, MQTT a Alpakka-Kafka

Netflix nedávno zveřejnil podrobný blogový příspěvek Jak jsem vybudoval spolehlivou platformu pro správu zařízení použitím MQTT-na základě zdroje událostí implementace. K rozšíření řešení používá Netflix Apache KafkaA Alpaka Kafka A DB . šváb.

Platforma pro správu zařízení Netflix je systém, který spravuje zařízení používaná pro automatické testování jejích aplikací. Inženýři Netflixu Benson co? A Alok Ahuja Popište cestu, kterou platforma absolvovala:

Správné zpracování Kafkových streamů může být obtížné. (…) Naštěstí nám základy poskytované Akka Streams a Alpakka-Kafka umožňují přesně toho dosáhnout tím, že nám umožňují vytvářet streamovací řešení, která vyhovují našim pracovním postupům a zároveň zvyšují produktivitu vývojářů při vytváření a údržbě těchto řešení. S procesorem na bázi Alpakka-Kafka (…) jsme se postarali o odolnost proti chybám na spotřebitelské straně úrovně řízení, což je klíčové pro umožnění přesné a spolehlivé agregace stavu zařízení v rámci platformy pro správu zařízení.

(…) Spolehlivost platformy a úroveň kontroly jsou založeny na významné práci vykonané v několika oblastech, včetně přenosu MQTT, autentizace, autorizace a monitorování systémů. (…]V důsledku této práce můžeme očekávat, že platforma pro správu zařízení se bude časem i nadále rozšiřovat, aby se zvýšila pracovní zátěž, jak budeme do našich systémů integrovat více zařízení.

Následující diagram znázorňuje architekturu.


zdroj: https://netflixtechblog.com/towards-a-reliable-device-management-platform-4f86230ca623

Místní počítač zabudovaný v referenčním automatizačním prostředí (RAE) komunikuje s mnoha testovanými zařízeními (DUT). Místní registrační služba je zodpovědná za zjišťování, přípravu a údržbu informací o všech připojených zařízeních na RAE. Jak se atributy a charakteristiky zařízení v průběhu času mění, ukládá tyto změny do místního registru a současně se šíří na úroveň cloudového ovládání. Kromě změn atributů místní registr v pravidelných intervalech zveřejňuje kompletní snímek historie zařízení. Tyto události kontrolních bodů umožňují rychlejší obnovu stavu spotřebitelům datových zdrojů a zároveň chrání před zmeškanými aktualizacemi.

READ  Zápas Naomi Osaka na olympijských hrách mohl odkazovat na její fanouškovský účet BTS J-Hope

Aktualizace se nasazují do cloudu pomocí MQTT. MQTT je standardní protokol pro zasílání zpráv OASIS pro internet věcí (IoT). Jedná se o lehký a spolehlivý nosič zpráv pro publikování/odběr, ideální pro připojení vzdálených zařízení s malou kódovou stopou a minimální šířkou pásma sítě. Zprostředkovatel MQTT odpovídá za příjem, filtrování a odesílání všech zpráv přihlášeným klientům.

Netflix používá Apache Kafka v celé organizaci. Most tedy převádí zprávy MQTT do Kafkových nahrávek. Nastaví klíč registru pro téma MQTT, ve kterém je zpráva nastavena. Ma a Ahuja to popisují: „Protože aktualizace zařízení publikované na MQTT obsahují device_session_id. ID_zařízení V tématu se všechny aktualizace informací o zařízení pro konkrétní relaci zařízení efektivně objeví ve stejné sekci Kafka, což nám poskytne dobře definované pořadí zpráv pro spotřebu. „

Cloud Registry přijímá a zpracovává publikované zprávy a posílá fyzická data do úložiště dat poháněných CockroachDB. CockroachDB je implementace třídy RDBMS s názvem NewSQL. Ma a Ahuja vysvětlují výběr Netflixu:

CockroachDB byl vybrán jako podpůrné úložiště dat, protože poskytuje funkce SQL a náš datový model byl normalizován na strojové záznamy. Kromě toho, na rozdíl od jiných obchodů SQL, byl CockroachDB od základů vytvořen tak, aby byl horizontálně škálovatelný, čímž reagoval na naše obavy ohledně schopnosti Cloud Registry škálovat s počtem zařízení na platformě pro správu zařízení.

Následující diagram ukazuje kanál zpracování Kafky, který zahrnuje historii cloudu.


zdroj: https://netflixtechblog.com/towards-a-reliable-device-management-platform-4f86230ca623

Netflix zvažoval několik rámců pro implementaci výše popsaných kanálů pro zpracování streamů. Tyto rámce zahrnují Kafka proudíA jarní kafka poslechA Projektový reaktor, A obrovský. Nakonec si vybrala Alpakka-Kafka. Důvodem pro tuto volbu je, že ji Alpakka-Kafka poskytuje jarní boty Integrace s „přesným řízením zpracování toku, včetně automatické podpory protitlaku a dohledu nad tokem“. Kromě toho, podle Ma a Ahuja, Akr Alpakka-Kafka je lehčí než alternativy, a protože je vyspělejší, náklady na údržbu budou časem nižší.

READ  Opuštěné nákupní centrum nabízí útočiště a přátelství ukrajinským uprchlíkům uprostřed strachu

Implementace založená na Alpakka-Kafka nahradila předchozí implementaci založenou na Spring KafkaListener. Měření naměřená při implementaci nové výroby odhalují, že původní protitlaková podpora Kafka Alpaca může dynamicky rozšířit rozsah spotřeby Kafky. Na rozdíl od KafkaListener Alpakka-Kafka nespotřebovává ani nadměrně nespotřebovává Kafkovy zprávy. Snížení maximálních hodnot spotřebitelského zpoždění po vydání také ukázalo, že streamovací schopnosti Alpakka-Kafka a Akka fungují dobře v měřítku, a to i při náhlém zatížení zpráv.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.