Stroomverwerking met volledig beheerde opensource-gegevensen engines

Event Hubs
Kubernetes-service
Cosmos DB
Database for PostgreSQL
Cache voor Redis

In dit artikel wordt een voorbeeld van een streamingoplossing beschreven. Volledig beheerde Azure-gegevensservices die opensource-engines uitvoeren, zijn de oplossing:

  • Azure Event Hubs biedt een Kafka-implementatie voor stroom opname.
  • Azure Cosmos DB biedt ondersteuning voor gebeurtenisopslag in Cassandra.
  • Azure Kubernetes Service (AKS) host Kubernetes-microservices voor stroomverwerking.
  • Azure Database for PostgreSQL beheert relationele gegevensopslag in PostgreSQL.
  • Azure Cache voor Redis redis in-memory gegevensopslag beheert.

Opensource-technologieën bieden veel voordelen. Organisaties kunnen bijvoorbeeld opensource-technologieën gebruiken voor het volgende:

  • Bestaande workloads migreren.
  • Maak kennis met de brede opensource-community.
  • Beperk de vergrendeling van leveranciers.

Door opensource-technologieën toegankelijk te maken, kunnen organisaties met hulpprogramma's en services van Azure profiteren van deze voordelen en de oplossingen van hun keuze ontwikkelen.

Deze oplossing maakt gebruik van volledig platform as a service (PaaS)-services. Als gevolg hiervan verwerkt Microsoft patching, sla-onderhoud (Service Level Agreement) en andere beheertaken. Een ander voordeel is de systeemeigen integratie met de beveiligingsinfrastructuur van Azure.

Potentiële gebruikscases

Deze oplossing is van toepassing op verschillende scenario's:

  • Azure PaaS-services gebruiken om moderne streamingoplossingen te bouwen die gebruikmaken van opensource-technologieën
  • Opensource-stroomverwerkingsoplossingen migreren naar Azure

Architectuur

Architectuurdiagram waarin wordt weergegeven hoe streaminggegevens door een systeem stromen. Kafka-, Kubernetes-, Cassandra-, PostgreSQL- en Redis-onderdelen maken het systeem uit.

Een Visio-bestand van deze architectuur downloaden.

  1. De Event Hubs voor Apache Kafka functie streamt gebeurtenissen van Kafka-producenten.

  2. Apache Spark verbruikt gebeurtenissen. AKS biedt een beheerde omgeving voor de Apache Spark taken.

  3. Een toepassing die gebruikmaakt van de Cassandra-API voor Azure Cosmos DB schrijft gebeurtenissen naar Cassandra. Deze database fungeert als een opslagplatform voor gebeurtenissen. AKS host de microservices die naar Cassandra schrijven.

  4. De functie voor het wijzigen van Azure Cosmos DB gebeurtenissen in realtime verwerkt.

  5. Geplande toepassingen voeren batchgeoriënteerde verwerking uit op gebeurtenissen die zijn opgeslagen in Cassandra.

  6. Opslag van referentiegegevens verrijken gebeurtenisinformatie. Batchgeoriënteerde toepassingen schrijven de verrijkte gebeurtenisgegevens naar PostgreSQL. Typische referentiegegevensopslag zijn onder andere:

  7. Een batchgeoriënteerde toepassing verwerkt Cassandra-gegevens. Die toepassing slaat de verwerkte gegevens op in Azure Database for PostgreSQL. Dit relationele gegevensopslag biedt gegevens aan downstreamtoepassingen waarvoor verrijkte informatie is vereist.

  8. Rapportagetoepassingen en hulpprogramma's analyseren de PostgreSQL-databasegegevens. U kunt bijvoorbeeld Power BI verbinding maken met de database met behulp van de Azure Database for PostgreSQL-connector. Deze rapportageservice geeft vervolgens uitgebreide visuals van de gegevens weer.

  9. Azure Cache voor Redis biedt een cache in het geheugen. In deze oplossing bevat de cache gegevens over kritieke gebeurtenissen. Een toepassing slaat gegevens op in de cache en haalt gegevens op uit de cache.

  10. Websites en andere toepassingen gebruiken de gegevens in de cache om de reactietijden te verbeteren. Soms zijn gegevens niet beschikbaar in de cache. In dergelijke gevallen gebruiken deze toepassingen het cache-aside-patroon of een vergelijkbare strategie om gegevens op te halen uit Cassandra in Azure Cosmos DB.

Onderdelen

  • Event Hubs is een volledig beheerd streamingplatform dat miljoenen gebeurtenissen per seconde kan verwerken. Event Hubs biedt een eindpunt voor Apache Kafka, een veelgebruikt opensourceplatform voor stroomverwerking. Wanneer organisaties de eindpuntfunctie gebruiken, hoeven ze geen Kafka-clusters te bouwen en te onderhouden voor stroomverwerking. In plaats daarvan kunnen ze profiteren van de volledig beheerde Kafka-implementatie die Event Hubs biedt.

  • Azure Cosmos DB is een NoSQL-database met meerdere modellen die replicatie voor meerdere masters biedt. Azure Cosmos DB ondersteunt opensource-API's voor veel databases, talen en platforms. Enkele voorbeelden:

    Via de Cassandra-APIhebt u toegang tot Azure Cosmos DB gegevens met behulp van Hulpprogramma's, talen en stuurprogramma's van Apache Cassandra. Apache Cassandra is een open-source NoSQL-database die zeer geschikt is voor zware schrijfintensieve workloads.

  • AKS is een uiterst beschikbare, veilige en volledig beheerde Kubernetes-service. Kubernetes is een snel ontwikkelend opensource-platform voor het beheren van workloads in containers. AKS host opensource-big data verwerkingsen engines zoals Apache Spark. Met AKS kunt u grootschalige stroomverwerkingstaken uitvoeren in een beheerde omgeving.

  • Azure Database for PostgreSQL is een volledig beheerde relationele databaseservice. Het biedt hoge beschikbaarheid, elastisch schalen, patchen en andere beheermogelijkheden voor PostgreSQL. PostgreSQL is een algemeen gebruikt opensource relationeel databasebeheersysteem.

  • Azure Cache voor Redis biedt een gegevensopslag in het geheugen op basis van de Redis-software. Redis is een populair opensource-gegevensopslag in het geheugen. Sessieopslag, inhoudscaches en andere opslagonderdelen gebruiken Redis om de prestaties en schaalbaarheid te verbeteren. Azure Cache voor Redis biedt opensource Redis-mogelijkheden als een volledig beheerde aanbieding.

Alternatieven

U kunt de opensource-compatibele producten en services in deze oplossing vervangen door andere. Zie Open source op Azure voor meer informatie over opensource-services die beschikbaar zijn in Azure.

Overwegingen

Ontwerp en implementeert elke service met best practices in gedachten. Zie voor richtlijnen voor elke service Microsoft Docs. Bekijk ook de informatie in de volgende secties:

Prestatieoverwegingen

  • Implementeert u verbindingspooling voor Azure Database for PostgreSQL. U kunt een bibliotheek voor verbindingspooling in de toepassing gebruiken. U kunt ook een verbindingspooler gebruiken, zoals PgBouncer of Pgpool. Het tot stand brengen van een verbinding met PostgreSQL is een dure bewerking. Met pooling van verbindingen kunt u voorkomen dat de prestaties van toepassingen worden gedegraded.

  • Configureer Azure Cosmos DB Cassandra-API beste prestaties met behulp van een geschikte partitioneringsstrategie. Bepaal of u een primaire sleutel met één veld, een samengestelde primaire sleutel of een samengestelde partitiesleutel wilt gebruiken bij het partitioneren van tabellen.

Schaalbaarheidsoverwegingen

  • Rekening houden met uw streamingvereisten bij het kiezen van een Event Hubs laag:

    • Voor doorvoervereisten voor een halverwege bereik van minder dan 120 MBps kunt u de Premium overwegen. Deze laag wordt elastisch geschaald om te voldoen aan de streamingvereisten.
    • Voor high-end streamingworkloads met een ingress van gigabytes aan gegevens, kunt u de Dedicated-laag overwegen. Deze laag is een aanbieding met één tenant met een gegarandeerde capaciteit. U kunt toegewezen clusters omhoog en omlaag schalen.
  • Overweeg automatisch in te schalen in te Azure Cosmos DB als uw workloads onvoorspelbaar en piekend zijn. U kunt deze Azure Cosmos DB handmatig inrichtende doorvoer of automatisch inrichtende doorvoer te gebruiken. Met automatisch schalen schaalt Azure automatisch en onmiddellijk de aanvraageenheden per seconde op basis van uw gebruik.

Beveiligingsoverwegingen

  • Gebruik Azure Private Link om Azure-services deel uit te maken van uw virtuele netwerk. Wanneer u Private Link, loopt het verkeer tussen de services en uw netwerk via de Azure-backbone zonder het openbare internet te doorlopen. De Azure-services in deze oplossing ondersteunen Private Link voor geselecteerde SKU's.

  • Controleer het beveiligingsbeleid van uw organisatie. Met Azure Cosmos DB Cassandra-API bieden sleutels toegang tot resources zoals sleutelruimten en tabellen. Het Azure Cosmos DB slaat deze sleutels op. Voor uw beveiligingsbeleid moet u deze sleutels mogelijk doorgeven aan een sleutelbeheerservice, zoals Azure Key Vault. Zorg er ook voor dat u sleutels roteert volgens het beleid van uw organisatie.

Overwegingen voor tolerantie

Overweeg het gebruik van beschikbaarheidszones om bedrijfskritieke toepassingen te beschermen tegen storingen in datacenters. De services van deze oplossing ondersteunen beschikbaarheidszones voor geselecteerde SKU's in regio's met beschikbaarheidszone ingeschakeld. Bekijk de lijst met services die ondersteuning bieden voor beschikbaarheidszones voor actuele informatie.

Dit scenario implementeren

Houd rekening met de volgende punten wanneer u deze oplossing implementeert:

  • Wanneer u een Event Hubs kafka implementeert, raadpleegt u Quickstart: Gegevens streamen met Event Hubs met behulp van het Kafka-protocol. Dit artikel bevat de volgende informatie:

    • Berichten verzenden en ontvangen met Kafka in Event Hubs
    • Voorbeeldcode voor een publicatietoepassing
    • Bestaande Kafka-toepassingen overschakelen naar Event Hubs voor Kafka door configuratiewijzigingen aan te brengen
  • Met betrekking tot Apache Spark:

  • Overweeg het gebruik van een Java-toepassing om gebeurtenissen naar Cassandra te schrijven. Zie Snelstart: Een Java-app bouwen voor het beheren van Azure Cosmos DB Cassandra-API gegevens (v4-stuurprogramma) voor meer informatie.

  • Wanneer u de Azure Cosmos DB gebruikt,raadpleegt u de feed Change in de Azure Cosmos DB API voor Cassandra voor deze informatie:

  • Voor informatie over het verwerken van de gebeurtenissen die u in Cassandra hebt opgeslagen, raadpleegt u Zelfstudie: Gegevens opvragen uit een Cassandra-API-account in Azure Cosmos DB. Dit artikel bevat ook Java-voorbeeldcode voor het gebruik van CQL-opdrachten om gegevens op te halen uit tabellen.

  • Zie Snelstart: Java en JDBC gebruiken met Azure Database for PostgreSQL voor informatie over het schrijven van gegevens naar Azure Database for PostgreSQL met een batchgeoriënteerde toepassing. Dit artikel bevat ook Java-voorbeeldcode voor het opslaan van gegevens.

  • Zie Quickstart:Use Azure Cache voor Redis in Java (Snelstart: Azure Cache voor Redis in Java) voor meer informatie over het opslaan en ophalen van gegevens met een Azure Cache voor Redis. Dit artikel bevat ook Java-voorbeeldcode voor toegang tot een cache.

Prijzen

Gebruik de Azure-prijscalculator om de kosten van deze oplossing te schatten. Houd ook rekening met de volgende punten:

  • Event Hubs is beschikbaar in de lagen Basic, Standard, Premium en Dedicated. De Premium of Dedicated-laag is het beste voor grootschalige streamingworkloads. U kunt de doorvoer schalen, dus overweeg om klein te beginnen en vervolgens omhoog te schalen naarmate de vraag toeneemt.

  • Azure Cosmos DB biedt twee modellen:

    • Een inrichtend doorvoermodel dat ideaal is voor veeleisende workloads. Dit model is beschikbaar in twee opties voor capaciteitsbeheer: standaard en automatisch schalen.
    • Een serverloos model dat zeer geschikt is voor het uitvoeren van kleine, piekende workloads.
  • Een AKS-cluster bestaat uit een set knooppunten of virtuele machines (VM's) die worden uitgevoerd in Azure. De kosten van de berekenings-, opslag- en netwerkonderdelen zijn de primaire kosten van een cluster.

  • Azure Database for PostgreSQL is beschikbaar in de lagen Single Server, Flexible Server en Hyperscale (Citus). Verschillende lagen zijn geschikt voor verschillende scenario's, zoals prediceerbare, burstable- en high-performance workloads. De kosten zijn voornamelijk afhankelijk van de keuze van rekenknooppunten en opslagcapaciteit.

  • Azure Cache voor Redis is beschikbaar in meerdere lagen. Deze lagen zijn geschikt voor caches van 250 MB tot verschillende terabytes. Naast de grootte zijn andere vereisten ook van invloed op de keuze van de laag:

    • Clustering
    • Persistentie
    • Actieve geo-replicatie

Volgende stappen

Zie de volgende informatie voor meer informatie over gerelateerde oplossingen:

Overzicht van analyse

Ontwerp van analysearchitectuur

Architectuurhandleidingen

Referentie-archtecturen