Stroomverwerking met volledig beheerde opensource-gegevensengines

Azure Event Hubs
Azure Kubernetes Service (AKS)
Azure Cosmos DB
Azure Database for PostgreSQL
Azure Cache for Redis

Dit artikel bevat een voorbeeld van een streamingoplossing die gebruikmaakt van volledig beheerde Azure-gegevensservices.

Architectuur

Architectuurdiagram waarin wordt getoond hoe streaminggegevens via een systeem stromen. Kafka-, Kubernetes-, Cassandra-, PostgreSQL- en Redis-onderdelen vormen het systeem.

Download een Visio-bestand van deze architectuur.

Workflow

  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 Azure Cosmos DB voor Apache Cassandra schrijft gebeurtenissen naar Cassandra. Deze database fungeert als een opslagplatform voor gebeurtenissen. AKS fungeert als host voor de microservices die naar Cassandra schrijven.

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

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

  6. Archieven van referentiegegevens verrijken gebeurtenisinformatie. Batchgeoriënteerde toepassingen schrijven de verrijkte gebeurtenisgegevens naar PostgreSQL. Typische referentiegegevensarchieven zijn:

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

  8. Rapportagetoepassingen en hulpprogramma's analyseren de PostgreSQL-databasegegevens. Power BI maakt bijvoorbeeld verbinding 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 opensource-platform 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 volledig beheerde NoSQL- en relationele database die replicatie met meerdere masters biedt. Azure Cosmos DB ondersteunt opensource-API's voor veel databases, talen en platforms. Voorbeelden zijn:

    Via Azure Cosmos DB voor Apache Cassandra hebt u toegang tot Azure Cosmos DB-gegevens met behulp van Apache Cassandra-hulpprogramma's, -talen en -stuurprogramma's. Apache Cassandra is een opensource NoSQL-database die geschikt is voor zware schrijfintensieve workloads.

  • AKS is een maximaal beschikbare, veilige en volledig beheerde Kubernetes-service. Kubernetes is een snel evoluerend opensource-platform voor het beheren van workloads in containers. AKS host opensource-engines voor het verwerken van big data, zoals Apache Spark. Met behulp van 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 veelgebruikt opensource relationeel databasebeheersysteem.

  • Azure Cache voor Redis biedt een gegevensarchief in het geheugen op basis van de Redis-software. Redis is een populair opensource-gegevensarchief in het geheugen. Sessiearchieven, inhoudscaches en andere opslagonderdelen maken gebruik van 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 anderen. Zie Open source in Azure voor meer informatie over opensource-services die beschikbaar zijn in Azure.

Scenariodetails

Volledig beheerde Azure-gegevensservices met opensource-engines vormen deze streamingoplossing:

  • Azure Event Hubs biedt een Kafka-implementatie voor streamopname.
  • Azure Cosmos DB ondersteunt 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 beheert Redis-gegevensarchieven in het geheugen.

Opensource-technologieën bieden veel voordelen. Organisaties kunnen bijvoorbeeld opensourcetechnologieën gebruiken om:

  • Bestaande workloads migreren.
  • Maak gebruik van de brede opensource-community.
  • Beperk de vergrendeling van de leverancier.

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

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

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-oplossingen voor stroomverwerking migreren naar Azure

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Ontwerp en implementeer elke service met aanbevolen procedures in gedachten. Zie de microsoft-documentatiesite voor richtlijnen voor elke service. Bekijk ook de informatie in de volgende secties:

Prestaties

  • Verbindingspooling implementeren voor Azure Database for PostgreSQL. U kunt een bibliotheek voor groepsgewijze verbindingen in de toepassing gebruiken. U kunt ook een verbindingspooler zoals PgBouncer of Pgpool gebruiken. Het tot stand brengen van een verbinding met PostgreSQL is een dure bewerking. Met groepsgewijze verbindingen kunt u voorkomen dat de prestaties van toepassingen afnemen. PgBouncer is ingebouwd in Azure Database for PostgreSQL Flexible Server.

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

Schaalbaarheid

  • Houd rekening met uw streamingvereisten bij het kiezen van een Event Hubs-laag:

    • Houd rekening met de Premium-laag voor doorvoervereisten van minder dan 120 MBps. Deze laag wordt elastisch geschaald om te voldoen aan streamingvereisten.
    • Voor high-end streamingworkloads met een inkomend aantal 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 automatische schaalaanpassing van ingerichte doorvoer voor Azure Cosmos DB als uw workloads onvoorspelbaar en stekelig zijn. U kunt Azure Cosmos DB configureren voor het gebruik van handmatig ingerichte doorvoer of automatische schaalaanpassing van ingerichte doorvoer. Met automatische schaalaanpassing worden de aanvraageenheden automatisch en onmiddellijk geschaald op basis van uw gebruik.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

  • Gebruik Azure Private Link om Azure-services onderdeel te maken van uw virtuele netwerk. Wanneer u Private Link gebruikt, stroomt 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 voor Apache Cassandra bieden sleutels toegang tot resources, zoals sleutelruimten en tabellen. De Azure Cosmos DB-instantie 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.

Tolerantie

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

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Als u de kosten van deze oplossing wilt schatten, gebruikt u de Azure-prijscalculator. Houd ook rekening met deze punten:

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

  • Azure Cosmos DB biedt twee modellen:

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

  • Azure Database for PostgreSQL is beschikbaar in de lagen Enkele server en Flexibele server. Verschillende lagen zijn geschikt voor verschillende scenario's, zoals predicable, burstable en high-performance workloads. De kosten zijn voornamelijk afhankelijk van de keuze van rekenknooppunten en opslagcapaciteit. Voor nieuwe workloads kunt u overwegen de laag Flexibele server te kiezen, omdat deze een breder scala aan ondersteunde mogelijkheden heeft dan de laag Enkele server. Houd er ook rekening mee dat enkele server zich op het pad bevindt om te worden afgeschaft.

  • Azure Cache voor Redis is beschikbaar in meerdere lagen. Deze lagen bieden plaats aan caches die variëren van 250 megabytes tot verschillende terabytes. Naast grootte zijn andere vereisten ook van invloed op de keuze van de laag:

    • Clustering
    • Persistentie
    • Actieve geo-replicatie

Dit scenario implementeren

Houd rekening met deze punten wanneer u deze oplossing implementeert:

Medewerkers

Dit artikel wordt bijgewerkt en onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Volgende stappen

Zie de volgende informatie voor meer informatie over gerelateerde oplossingen: