Zpracování datových proudů s plně spravovanými Open Source datovými moduly

Event Hubs
Kubernetes Service
Cosmos DB
Database for PostgreSQL
Cache for Redis

Tento článek představuje příklad řešení streamování. Plně spravované datové služby Azure, které spouštějí Open Source moduly, tvoří řešení:

  • Azure Event Hubs nabízí Kafka implementaci pro ingestování streamování.
  • Azure Cosmos DB podporuje úložiště událostí v Cassandra.
  • Služba Azure Kubernetes Service (AKS) hostuje Kubernetes mikroslužby pro zpracování datových proudů.
  • Azure Database for PostgreSQL spravuje relační datové úložiště v PostgreSQL.
  • Azure cache pro Redis spravuje úložiště dat Redis v paměti.

Technologie Open Source nabízejí řadu výhod. Organizace můžou například používat Open Source technologie k těmto akcím:

  • Migrujte stávající úlohy.
  • Klepněte do široké komunity open source.
  • Omezte zámek dodavatele.

Díky usnadnění přístupu k technologiím Open Source můžou nástroje a služby Azure pomáhat organizacím využít tyto výhody a vyvíjet řešení podle jejich výběru.

Toto řešení používá plně spravované služby platformy jako služby (PaaS) . V důsledku toho Microsoft zpracovává opravy, údržbu smlouvy o úrovni služeb (SLA) a další úlohy správy. Další výhodou je nativní integrace s infrastrukturou zabezpečení Azure.

Potenciální případy použití

Toto řešení se týká různých scénářů:

  • Použití služeb Azure PaaS k vytváření moderních řešení streamování využívajících Open Source technologie
  • Migrace řešení pro zpracování streamování open source do Azure

Architektura

Diagram architektury znázorňující tok streamování dat systémem. Komponenty Kafka, Kubernetes, Cassandra, PostgreSQL a Redis tvoří systém.

Stáhněte si soubor aplikace Visio s touto architekturou.

  1. Event Hubs pro události Apache Kafka datových proudů funkcí od výrobců Kafka.

  2. Apache Spark spotřebovává události. AKS poskytuje spravované prostředí pro Apache Spark úlohy.

  3. aplikace, která používá rozhraní API Cassandra pro Azure Cosmos DB zapisuje události do Cassandra. Tato databáze slouží jako úložná platforma pro události. AKS hostuje mikroslužby, které zapisují do Cassandra.

  4. funkce kanálu změny Azure Cosmos DB zpracovává události v reálném čase.

  5. Naplánované aplikace spouštějí dávkové zpracování na událostech uložených v Cassandra.

  6. Ukládá informace o událostech rozšíření referenčních dat. Aplikace orientované na dávku zapisují rozšířené informace o událostech do PostgreSQL. Mezi typická úložiště referenčních dat patří:

  7. Aplikace zaměřená na dávku zpracovává Cassandra data. Tato aplikace ukládá zpracovaná data v Azure Database for PostgreSQL. Toto úložiště relačních dat poskytuje data pro podřízené aplikace, které vyžadují rozšířené informace.

  8. Aplikace a nástroje pro vytváření sestav analyzují data databáze PostgreSQL. například Power BI se připojí k databázi pomocí konektoru Azure Database for PostgreSQL. Tato služba generování sestav pak zobrazí bohatých vizuálů dat.

  9. Mezipaměť Azure pro Redis poskytuje mezipaměť v paměti. V tomto řešení mezipaměť obsahuje data na kritických událostech. Aplikace ukládá data do mezipaměti a načítá data z mezipaměti.

  10. Webové stránky a jiné aplikace používají data uložená v mezipaměti ke zlepšení doby odezvy. Někdy nejsou data v mezipaměti k dispozici. v těchto případech tyto aplikace používají model doplňování mezipaměti nebo podobnou strategii k načtení dat z Cassandra v Azure Cosmos DB.

Komponenty

  • Event Hubs je plně spravovaná platforma pro streamování, která dokáže zpracovat miliony událostí za sekundu. Event Hubs poskytuje koncový bod pro Apache Kafka, široce využívanou Open Source platformu pro zpracování datových proudů. Když organizace používají funkci koncového bodu, nepotřebují sestavovat a udržovat clustery Kafka pro zpracování datových proudů. Místo toho můžou těžit z plně spravované Kafka implementace, kterou Event Hubs nabídky.

  • Azure Cosmos DB je NoSQL databáze s více modely, která nabízí replikaci s více hlavními servery. Azure Cosmos DB podporuje open source rozhraní api pro mnoho databází, jazyků a platforem. Mezi příklady patří:

    prostřednictvím rozhraní API Cassandramáte přístup k datům Azure Cosmos DB pomocí nástrojů, jazyků a ovladačů Apache Cassandra. Apache Cassandra je open source databáze NoSQL, která je vhodná pro náročné úlohy náročné na zápis.

  • AKS je vysoce dostupná, zabezpečená a plně spravovaná služba Kubernetes. Kubernetes je rychle se vyvíjející Open Source platforma pro správu kontejnerových úloh. AKS hostuje Open Source moduly pro zpracování velkých objemů dat, jako je Apache Spark. Pomocí AKS můžete spouštět úlohy streamování ve velkém měřítku ve spravovaném prostředí.

  • Azure Database for PostgreSQL je plně spravovaná služba relačních databází. Poskytuje vysokou dostupnost, elastické škálování, opravy a další možnosti správy pro PostgreSQL. PostgreSQL je široce přijatý open source systém pro správu relačních databází.

  • Azure cache pro Redis poskytuje úložiště dat v paměti založené na softwaru Redis. Redis je oblíbený Open Source úložiště dat v paměti. Úložiště relací, mezipaměti obsahu a další součásti úložiště používají Redis ke zlepšení výkonu a škálovatelnosti. Azure cache pro Redis poskytuje možnosti Open Source Redis jako plně spravovanou nabídku.

Alternativy

Produkty a služby kompatibilní s open source v tomto řešení můžete nahradit ostatními. Podrobnosti o open source službách dostupných v Azure najdete v tématu Open Source v Azure.

Požadavky

Navrhněte a implementujte každou službu s osvědčenými postupy. Pokyny pro jednotlivé služby najdete v tématu Microsoft docs. Přečtěte si také informace v následujících částech:

Otázky výkonu

  • Implementujte sdružování připojení pro Azure Database for PostgreSQL. V rámci aplikace můžete použít knihovnu sdružování připojení. Nebo můžete použít Pooler připojení, jako je PgBouncer nebo pgpool. Navázání připojení pomocí PostgreSQL je náročná operace. Díky sdružování připojení se můžete vyhnout snížení výkonu aplikace.

  • nakonfigurujte Azure Cosmos DB rozhraní API Cassandra pro nejlepší výkon pomocí vhodné strategie dělení. Rozhodněte, jestli při dělení tabulek chcete použít primární klíč s jedním polem, složený primární klíč nebo složený klíč oddílu.

Aspekty zabezpečení

  • Při volbě Event Hubs úrovněVezměte v úvahu své požadavky na streamování:

    • v případě požadavků na propustnost střední úrovně menší než 120 mb/s zvažte Premium úroveň. Tato vrstva se škáluje elastickým škálováním, aby splňovala požadavky streamování.
    • Pro úlohy streamování s vysokým zatížením s příchozími gigabajty dat je vhodné zvážit vyhrazenou úroveň. Tato úroveň je nabídka pro jednoho tenanta se zaručenou kapacitou. Vyhrazené clustery můžete škálovat nahoru a dolů.
  • pokud vaše úlohy nepředvídatelné a nárazové, zvažte možnost automatického škálování na míru zřízení pro Azure Cosmos DB. Azure Cosmos DB můžete nakonfigurovat pro použití ručně zřízené propustnosti nebo propustnosti zřízené pomocí automatického škálování. Díky automatickému škálování Azure automaticky a okamžitě škáluje jednotky žádostí za sekundu podle vašeho využití.

Důležité informace o zabezpečení

  • Pomocí privátního odkazu Azure zpřístupníte služby Azure v rámci vaší virtuální sítě. Když použijete privátní propojení, přenosy mezi službami a vaší sítí procházejí přes páteřní síť Azure bez procházení veřejného Internetu. Služby Azure v tomto řešení podporují privátní odkaz na vybrané SKU.

  • Zkontrolujte zásady zabezpečení vaší organizace. Díky azure Cosmos DB rozhraní API Cassandra poskytují klíče přístup k prostředkům, jako jsou prostory klíčů a tabulky. Instance Azure Cosmos DB tyto klíče ukládá. Vaše zásady zabezpečení můžou vyžadovat rozšíření těchto klíčů do služby správy klíčů, jako je Azure Key Vault. Nezapomeňte také obměně klíčů podle zásad vaší organizace.

Důležité informace o odolnosti

Zvažte použití zón dostupnosti k ochraně důležitých obchodních aplikací před selháním datacentra. Služby tohoto řešení podporují zóny dostupnosti pro vybrané skladové položky v oblastech s povolenými zónami dostupnosti. Aktuální informace najdete v seznamu služeb, které podporují zóny dostupnosti.

Nasazení tohoto scénáře

Při nasazování tohoto řešení mějte na paměti tyto body:

  • Pokud nasazujete Event Hubs pro Kafka, přečtěte si rychlý start: Streamování dat s Event Hubs s využitím protokolu Kafka. Tento článek obsahuje následující informace:

    • Odesílání a příjem zpráv pomocí kafka v Event Hubs
    • Ukázkový kód pro aplikaci pro publikování
    • Jak přepnout existující aplikace Kafka na Event Hubs pro Kafka provedením změn konfigurace
  • Týká Apache Spark:

  • Zvažte použití aplikace Java k zápisu událostí do Cassandry. Další informace najdete v tématu Rychlý start: Sestavení aplikace v Javě pro správu dat rozhraní API Cassandra azure Cosmos DB (ovladač v4).

  • Pokud používáte kanál změn Azure Cosmos DB,přečtěte si následující informace v tématu Kanál změn v rozhraní API služby Azure Cosmos DB pro Cassandra:

    • Použití predikátů dotazů v jazyce CQL (Cassandra Query Language) k dotazování rozhraní API kanálu změn
    • Ukázkový kód pro aplikaci v Javě
  • Informace o zpracování událostí, které jste uložili v Cassandře, najdete v tématu Kurz: Dotazování na data z účtu rozhraní API Cassandra v Azure Cosmos DB. Tento článek také obsahuje ukázkový kód Java pro použití příkazů CQL k načtení dat z tabulek.

  • Informace o zápisu dat do Azure Database for PostgreSQL pomocí aplikace orientované na dávku najdete v tématu Rychlý start: Použití Javy a JDBCs Azure Database for PostgreSQL . Tento článek obsahuje také ukázkový kód Java pro ukládání dat.

  • Informace o ukládání a načítání dat pomocí Azure Cache for Redis najdete v tématu Rychlý start: Použití Azure Cache for Redis v Javě. Tento článek obsahuje také ukázkový kód Java pro přístup k mezipaměti.

Ceny

Pokud chcete odhadnout náklady na toto řešení, použijte cenovou kalkulačku Azure. Mějte také na paměti tyto body:

  • Event Hubs je k dispozici na úrovních Basic, Standard, Premium a Dedicated. Úroveň Premium nebo Dedicated je nejlepší pro úlohy streamování ve velkém měřítku. Propustnost můžete škálovat, proto zvažte spuštění malého rozsahu a škálování s nárůstem poptávky.

  • Azure Cosmos DB nabízí dva modely:

    • Model zřízené propustnosti, který je ideální pro náročné úlohy. Tento model je k dispozici ve dvou možnostech správy kapacity: standard a automatické škálování.
    • Model bez serveru, který je vhodný pro spouštění malých a nesnášejných úloh.
  • Cluster AKS se skládá ze sady uzlů nebo virtuálních počítačů, které běží v Azure. Náklady na výpočetní, úložné a síťové komponenty tvoří primární náklady clusteru.

  • Azure Database for PostgreSQL je k dispozici na jednoúrovňových serverech, flexibilních serverech a Hyperscale (Citus) vrstvách. Různé úrovně jsou vhodné pro různé scénáře, jako jsou predikovatelné, šedě náročné a vysoce výkonné úlohy. Náklady závisí hlavně na volbě výpočetních uzlů a kapacity úložiště.

  • Azure Cache for Redis je k dispozici ve více úrovních. Tyto úrovně pojmout mezipaměti v rozsahu od 250 megabajtů až po několik terabajtů. Kromě velikosti mají na výběr vrstvy vliv i další požadavky:

    • Clustering
    • Trvalosti
    • Aktivní geografická replikace

Další kroky

Další informace o souvisejících řešeních najdete v následujících informacích:

Přehled analýz

Návrh architektury analýzy

Průvodci architekturou

Referenční architektury