Dataströmbearbetning med fullständigt hanterade datamotorer med öppen källkod

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

I den här artikeln visas ett exempel på en strömningslösning. Fullständigt hanterade Azure-datatjänster som kör motorer med öppen källkod utgör lösningen:

Tekniker med öppen källkod har många fördelar. Organisationer kan till exempel använda tekniker med öppen källkod för att:

  • Migrera befintliga arbetsbelastningar.
  • Utnyttja den breda communityn med öppen källkod.
  • Begränsa leverantörslåsning.

Genom att göra tekniker med öppen källkod tillgängliga hjälper Azure-verktyg och -tjänster organisationer att dra nytta av dessa fördelar och utveckla de lösningar som de väljer.

Den här lösningen använder fullständigt hanterade PaaS-tjänster (plattform som en tjänst). Därför hanterar Microsoft korrigering, underhåll av serviceavtal (SLA) och andra hanteringsuppgifter. En annan fördel är den inbyggda integreringen med Azures säkerhetsinfrastruktur.

Potentiella användningsfall

Den här lösningen gäller för olika scenarier:

  • Använda Azure PaaS-tjänster för att skapa moderna strömningslösningar som använder tekniker med öppen källkod
  • Migrera lösningar för dataströmbearbetning med öppen källkod till Azure

Arkitektur

Arkitekturdiagram som visar hur strömmande data flödar genom ett system. Kafka-, Kubernetes-, Cassandra-, PostgreSQL- och Redis-komponenter utgör systemet.

Ladda ned en Visio-fil med den här arkitekturen.

  1. Den Event Hubs för Apache Kafka strömmar händelser från Kafka-producenter.

  2. Apache Spark förbrukar händelser. AKS tillhandahåller en hanterad miljö för Apache Spark jobb.

  3. Ett program som använder API för Cassandra för Azure Cosmos DB skriver händelser till Cassandra. Den här databasen fungerar som en lagringsplattform för händelser. AKS är värd för mikrotjänster som skriver till Cassandra.

  4. Ändringsflödesfunktionen i Azure Cosmos DB bearbetar händelser i realtid.

  5. Schemalagda program kör batchorienterad bearbetning på händelser som lagras i Cassandra.

  6. Lagrar referensdata som berikar händelseinformation. Batchorienterade program skriver den berikade händelseinformationen till PostgreSQL. Vanliga referensdatalager är:

  7. Ett batchorienterat program bearbetar Cassandra-data. Programmet lagrar bearbetade data i Azure Database for PostgreSQL. Det här relationsdatalagret tillhandahåller data till underordnade program som kräver berikad information.

  8. Rapporteringsprogram och verktyg analyserar PostgreSQL-databasdata. Du kan till Power BI ansluta till databasen med hjälp av Azure Database for PostgreSQL anslutningsappen. Den här rapporttjänsten visar sedan omfattande visuella objekt av data.

  9. Azure Cache for Redis en minnescache. I den här lösningen innehåller cachen data om kritiska händelser. Ett program lagrar data till cachen och hämtar data från cachen.

  10. Webbplatser och andra program använder cachelagrade data för att förbättra svarstiderna. Ibland är data inte tillgängliga i cacheminnet. I dessa fall använder dessa program cache-aside-mönstret eller en liknande strategi för att hämta data från Cassandra i Azure Cosmos DB.

Komponenter

  • Event Hubs är en helt hanterad strömningsplattform som kan bearbeta miljontals händelser per sekund. Event Hubs en slutpunkt förApache Kafka, en plattform för strömbearbetning med öppen källkod som används ofta. När organisationer använder slutpunktsfunktionen behöver de inte skapa och underhålla Kafka-kluster för bearbetning av dataströmmar. I stället kan de dra nytta av den fullständigt hanterade Kafka-implementering som Event Hubs erbjuder.

  • Azure Cosmos DB är en NoSQL-databas med flera modeller som erbjuder replikering med flera original. Azure Cosmos DB har stöd för API:er med öppen källkod för många databaser, språk och plattformar. Exempel:

    Via API för Cassandrakan du komma åt Azure Cosmos DB data med hjälp av Apache Cassandra-verktyg, språk och drivrutiner. Apache Cassandra är en NoSQL-databas med öppen källkod som passar bra för tunga skrivintensiva arbetsbelastningar.

  • AKS är en mycket tillgänglig, säker och fullständigt hanterad Kubernetes-tjänst. Kubernetes är en snabbt växande plattform med öppen källkod för hantering av arbetsbelastningar i containrar. AKS är värd för stordatabearbetningsmotorer med öppen källkod, till exempel Apache Spark. Med hjälp av AKS kan du köra storskaliga strömbearbetningsjobb i en hanterad miljö.

  • Azure Database for PostgreSQL är en fullständigt hanterad relationsdatabastjänst. Den ger hög tillgänglighet, elastisk skalning, korrigeringar och andra hanteringsfunktioner för PostgreSQL. PostgreSQL är ett vanligt hanteringssystem för relationsdatabaser med öppen källkod.

  • Azure Cache for Redis tillhandahåller ett minnesbaserat datalager baserat på Redis-programvaran. Redis är ett populärt datalager med öppen källkod i minnet. Sessionslager, innehållscacheminnen och andra lagringskomponenter använder Redis för att förbättra prestanda och skalbarhet. Azure Cache for Redis tillhandahåller Redis-funktioner med öppen källkod som ett fullständigt hanterat erbjudande.

Alternativ

Du kan ersätta de produkter och tjänster som är kompatibla med öppen källkod i den här lösningen med andra. Mer information om tjänster med öppen källkod som är tillgängliga i Azure finns i Öppen källkod på Azure.

Överväganden

Utforma och implementera varje tjänst med bästa praxis i åtanke. Riktlinjer för varje tjänst finns i Microsoft Docs. Granska även informationen i följande avsnitt:

Saker att tänka på gällande prestanda

  • Implementera anslutningspooler för Azure Database for PostgreSQL. Du kan använda ett bibliotek för anslutningspooler i programmet. Eller så kan du använda en anslutningspool, till exempel PgBouncer eller Pgpool. Att upprätta en anslutning med PostgreSQL är en dyr åtgärd. Med anslutningspooler kan du undvika att försämra programmets prestanda.

  • Konfigurera Azure Cosmos DB API för Cassandra för bästa prestanda med hjälp av en lämplig partitioneringsstrategi. Bestäm om du vill använda en enskild fältnyckel, en sammansatt primärnyckel eller en sammansatt partitionsnyckel vid partitionering av tabeller.

Skalbarhetsöverväganden

  • Ta hänsyn till dina strömningskrav när du väljer Event Hubs nivå:

    • För dataflödeskrav på mindre än 120 MBps i medelintervallet bör du Premium nivån. Den här nivån skalas elastiskt för att uppfylla strömningskraven.
    • För avancerade direktuppspelningsarbetsbelastningar med en ingress på flera gigabyte data kan du använda den dedikerade nivån. Den här nivån är ett erbjudande för en enskild klientorganisation med en garanterad kapacitet. Du kan skala dedikerade kluster upp och ned.
  • Överväg att automatiskt skala etablerat dataflöde för Azure Cosmos DB om dina arbetsbelastningar är oförutsägbara och toppar. Du kan konfigurera Azure Cosmos DB att använda manuellt etablerat dataflöde eller automatiskt skalningsetableerat dataflöde. Med autoskalning skalar Azure automatiskt och omedelbart enheter för begäran per sekund enligt din användning.

Säkerhetsöverväganden

  • Använd Azure Private Link att göra Azure-tjänster till en del av ditt virtuella nätverk. När du använder Private Link flödar trafiken mellan tjänsterna och ditt nätverk via Azure-stamnätet utan att gå via det offentliga Internet. Azure-tjänsterna i den här lösningen stöder Private Link valda SKU:er.

  • Kontrollera organisationens säkerhetsprinciper. Med Azure Cosmos DB API för Cassandra ger nycklar åtkomst till resurser som nyckelutrymmen och tabeller. Den Azure Cosmos DB instansen lagrar dessa nycklar. Dina säkerhetsprinciper kan kräva att du sprider dessa nycklar till en nyckelhanteringstjänst, till exempel Azure Key Vault. Se även till att rotera nycklar enligt organisationens principer.

Att tänka på om återhämtning

Överväg att använda tillgänglighetszoner för att skydda affärskritiska program mot datacenterfel. Den här lösningens tjänster stöder tillgänglighetszoner för valda SKU:er i tillgänglighetszonaktiverade regioner. Om du vill ha uppdaterad information kan du läsa listan över tjänster som stöder tillgänglighetszoner.

Distribuera det här scenariot

Tänk på följande när du distribuerar den här lösningen:

Prissättning

Om du vill beräkna kostnaden för den här lösningen använder du priskalkylatorn för Azure. Tänk också på följande:

  • Event Hubs finns på nivåerna Basic, Standard, Premium och Dedikerad. Nivån Premium dedikerad är bäst för storskaliga strömningsarbetsbelastningar. Du kan skala dataflödet, så överväg att starta i liten skala och sedan skala upp när efterfrågan ökar.

  • Azure Cosmos DB erbjuder två modeller:

    • En modell för etablerat dataflöde som är perfekt för krävande arbetsbelastningar. Den här modellen är tillgänglig i två kapacitetshanteringsalternativ: standard och autoskalning.
    • En serverlös modell som passar bra för att köra små, högbelastningsarbetsbelastningar.
  • Ett AKS-kluster består av en uppsättning noder eller virtuella datorer (VM) som körs i Azure. Kostnaden för beräknings-, lagrings- och nätverkskomponenter utgör ett klusters primära kostnader.

  • Azure Database for PostgreSQL är tillgängligt på nivåerna Enskild server, Flexibel server Hyperskala (Citus) servernivå. Olika nivåer kan hantera olika scenarier, till exempel predikatbara, burst-sbara och högpresterande arbetsbelastningar. Kostnaderna beror huvudsakligen på valet av beräkningsnoder och lagringskapacitet.

  • Azure Cache for Redis är tillgänglig på flera nivåer. Dessa nivåer kan hantera cacheminnen som sträcker sig från 250 megabyte till flera terabyte. Förutom storlek påverkar andra krav även valet av nivå:

    • Klustring
    • Bevarande
    • Aktiv geo-replikering

Nästa steg

Mer information om relaterade lösningar finns i följande information:

Analysöversikt

Design av analysarkitektur

Arkitekturguider

Referenserarkitekturer