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
Stáhněte si soubor aplikace Visio s touto architekturou.
Event Hubs pro události Apache Kafka datových proudů funkcí od výrobců Kafka.
Apache Spark spotřebovává události. AKS poskytuje spravované prostředí pro Apache Spark úlohy.
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.
funkce kanálu změny Azure Cosmos DB zpracovává události v reálném čase.
Naplánované aplikace spouštějí dávkové zpracování na událostech uložených v Cassandra.
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ří:
- Azure Data Lake Storage, která může ukládat Data v otevřených formátech, jako je například Parquet.
- Open Source úložiště relačních dat, jako jsou PostgreSQL a MySQL.
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.
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.
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.
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:
- Informace o vytvoření základní aplikace Spark najdete v tématu Připojení o Apache Spark pomocí Azure Event Hubs.
- Pokud chcete hostovat aplikaci Spark v AKS, podívejte se na Apache Spark úloh v AKS.
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
- Apache Kafka příručka pro vývojáře pro Azure Event Hubs
- Nejčastější dotazy k zprostředkovateli rozhraní API Cassandra Azure Cosmos DB
- Osvědčené postupy pro vytváření aplikací pomocí Azure Database for PostgreSQL
- Nejčastější dotazy ke službě Azure Cache for Redis
Související prostředky
Další informace o souvisejících řešeních najdete v následujících informacích: