Schaalbare orderverwerking

Azure Cosmos DB
Azure HDInsight

Dit voorbeeldscenario is relevant voor organisaties die een zeer schaalbare en flexibele architectuur nodig hebben voor online orderverwerking. Mogelijke toepassingen zijn onder andere e-commerce en verkooppunt, orderafhandeling en voorraadreservering en -tracering.

Architectuur

Diagram van voorbeeldarchitectuur voor een schaalbare pijplijn voor orderverwerking.

Download een Visio-bestand van deze architectuur.

Gegevensstroom

Deze architectuur bevat informatie over de belangrijkste onderdelen van een pijplijn voor orderverwerking. De gegevens stromen als volgt door het scenario:

  1. Gebeurtenisberichten voeren het systeem in via klantgerichte toepassingen (synchroon via HTTP) en verschillende back-endsystemen (asynchroon via Apache Kafka). Deze berichten worden doorgegeven aan een pijplijn voor het verwerken van opdrachten.
  2. Elk gebeurtenisbericht wordt opgenomen en toegewezen aan een van een gedefinieerde set opdrachten door een opdrachtprocessormicroservice. De opdrachtprocessor haalt de huidige status op die relevant is voor het uitvoeren van de opdracht uit een momentopnamedatabase van een gebeurtenisstroom. De opdracht wordt vervolgens uitgevoerd en de uitvoer van de opdracht wordt verzonden als een nieuwe gebeurtenis.
  3. Elke gebeurtenis die als uitvoer van een opdracht wordt verzonden, wordt doorgevoerd in een gebeurtenisstroomdatabase met behulp van Azure Cosmos DB.
  4. Voor elke database die is doorgevoerd in de gebeurtenisstroomdatabase, wordt er een gebeurtenis gegenereerd door de Azure Cosmos DB-wijzigingenfeed. Downstreamsystemen kunnen zich abonneren op alle gebeurtenisonderwerpen die relevant zijn voor dat systeem.
  5. Alle gebeurtenissen van de Azure Cosmos DB-wijzigingenfeed worden ook verzonden naar een microservice voor momentopnamegebeurtenissenstromen, waarmee eventuele statuswijzigingen worden berekend die worden veroorzaakt door gebeurtenissen die zijn opgetreden. De nieuwe status wordt vervolgens doorgevoerd in de momentopnamedatabase van de gebeurtenisstroom die is opgeslagen in Azure Cosmos DB. De momentopnamedatabase biedt een wereldwijd gedistribueerde gegevensbron met lage latentie voor de huidige status van alle gegevenselementen. De gebeurtenisstroomdatabase biedt een volledige record van alle gebeurtenisberichten die zijn doorgegeven via de architectuur, waarmee robuuste scenario's voor testen, probleemoplossing en herstel na noodgevallen mogelijk zijn.

Onderdelen

  • Azure Cosmos DB is de wereldwijd gedistribueerde database met meerdere modellen van Microsoft waarmee uw oplossingen doorvoer en opslag elastisch en onafhankelijk kunnen schalen in een willekeurig aantal geografische regio's. Het biedt garanties voor doorvoer, latentie, beschikbaarheid en consistentie met uitgebreide serviceovereenkomsten (SLA's). In dit scenario wordt Azure Cosmos DB gebruikt voor opslag van gebeurtenisstreams en momentopnameopslag. Azure Cosmos DB-wijzigingenfeedfuncties worden toegepast om gegevensconsistentie en foutherstel te bieden.
  • Apache Kafka in Azure HDInsight is een beheerde service-implementatie van Apache Kafka, een opensource gedistribueerd streamingplatform voor het bouwen van pijplijnen en toepassingen voor realtime streaminggegevens. Kafka biedt ook berichtbrokerfunctionaliteit die vergelijkbaar is met een berichtenwachtrij, voor het publiceren en abonneren op benoemde gegevensstromen. In dit scenario wordt Kafka gebruikt om binnenkomende en downstreamgebeurtenissen te verwerken in de pijplijn voor orderverwerking.

Scenariodetails

In dit scenario wordt gebruikgemaakt van een functionele programmeermodel dat is geïmplementeerd via microservices. Elke microservice wordt behandeld als een streamprocessor en alle bedrijfslogica wordt geïmplementeerd via microservices. Deze aanpak maakt hoge beschikbaarheid en tolerantie, geo-replicatie en snelle prestaties mogelijk.

Het gebruik van beheerde Azure-services zoals Azure Cosmos DB en HDInsight kan helpen de kosten te verlagen door gebruik te maken van de expertise van Microsoft in wereldwijd gedistribueerde gegevensopslag op cloudschaal en het ophalen van gegevens. Dit scenario heeft specifiek betrekking op een e-commerce- of handelsscenario; Als u andere gegevensservices nodig hebt, moet u de lijst met beschikbare volledig beheerde intelligente databaseservices in Azure bekijken.

Potentiële gebruikscases

Andere relevante use cases zijn:

  • E-commerce of retail point-of-sale back-endsystemen.
  • Voorraadbeheersystemen, voor de detailhandel of productiebranche.
  • Orderafhandelingssystemen.
  • Andere integratiescenario's die relevant zijn voor een pijplijn voor orderverwerking.

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.

Er zijn veel technologieopties beschikbaar voor realtime berichtopname, gegevensopslag, stroomverwerking, opslag van analytische gegevens en analyses en rapportage.

Microservices zijn een populaire architectuurstijl geworden voor het bouwen van robuuste en zeer schaalbare en onafhankelijk implementeerbare cloudtoepassingen die snel met veranderende vereisten kunnen meegroeien. Voor microservices is een andere benadering vereist voor het ontwerpen en ontwikkelen van toepassingen. Zie Microservices ontwerpen in Azure voor hulp bij het bouwen en uitvoeren van een architectuur op basis van microservices.

Beschikbaarheid

Met de gebeurtenisbronnenbenadering van dit scenario kunnen systeemonderdelen losjes worden gekoppeld en onafhankelijk van elkaar worden geïmplementeerd. Azure Cosmos DB biedt hoge beschikbaarheid en helpt organisaties bij het beheren van de compromissen die zijn gekoppeld aan consistentie, beschikbaarheid en prestaties, allemaal met bijbehorende garanties. Apache Kafka in HDInsight is ook ontworpen voor hoge beschikbaarheid.

Azure Monitor biedt geïntegreerde gebruikersinterfaces voor bewaking in verschillende Azure-services. Zie Bewaking in Microsoft Azure voor meer informatie. Event Hubs en Stream Analytics zijn beide geïntegreerd met Azure Monitor.

Zie de controlelijst voor beschikbaarheid voor andere overwegingen voor beschikbaarheid.

Schaalbaarheid

Kafka in HDInsight maakt het mogelijk om opslag en schaalbaarheid voor Kafka-clusters te configureren. Azure Cosmos DB biedt snelle, voorspelbare prestaties en schaalt naadloos naarmate uw toepassing groeit. De architectuur op basis van microservices op basis van gebeurtenissen in dit scenario maakt het ook eenvoudiger om uw systeem te schalen en de functionaliteit ervan uit te breiden.

Zie de controlelijst voor prestatie-efficiëntie die beschikbaar is in het Azure Architecture Center voor andere overwegingen voor schaalbaarheid.

Beveiliging

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

Het Azure Cosmos DB-beveiligingsmodel verifieert gebruikers en biedt toegang tot de gegevens en resources. Zie Azure Cosmos DB-databasebeveiliging voor meer informatie.

Zie de Documentatie voor Azure-beveiliging voor algemene richtlijnen voor het ontwerpen van beveiligde oplossingen.

Tolerantie

De architectuur voor gebeurtenisbronnen en de bijbehorende technologieën in dit voorbeeldscenario maken dit scenario zeer tolerant wanneer er fouten optreden. Zie Tolerante toepassingen ontwerpen voor Azure voor algemene richtlijnen voor het ontwerpen van flexibele oplossingen.

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 het uitvoeren van dit scenario wilt onderzoeken, worden alle services vooraf geconfigureerd in de kostencalculator. Als u wilt zien hoe de prijzen voor uw specifieke scenario veranderen, wijzigt u de juiste variabelen zodat deze overeenkomen met het verwachte gegevensvolume. Voor dit scenario omvatten de voorbeeldprijzen alleen Azure Cosmos DB en een Kafka-cluster voor het verwerken van gebeurtenissen die zijn gegenereerd vanuit de Wijzigingenfeed van Azure Cosmos DB. Gebeurtenisprocessors en microservices voor oorspronkelijke systemen en andere downstreamsystemen zijn niet inbegrepen en hun kosten zijn sterk afhankelijk van de hoeveelheid en schaal van deze services, evenals de technologieën die zijn gekozen voor de implementatie ervan.

De valuta van Azure Cosmos DB is de aanvraageenheid (RU). Met aanvraageenheden hoeft u geen lees-/schrijfcapaciteiten te reserveren of CPU, geheugen en IOPS in te richten. Azure Cosmos DB ondersteunt verschillende API's met verschillende bewerkingen, variërend van eenvoudige lees- en schrijfbewerkingen tot complexe grafiekquery's. Omdat niet alle aanvragen gelijk zijn, krijgen aanvragen een genormaliseerde hoeveelheid aanvraageenheden toegewezen op basis van de hoeveelheid rekenkracht die nodig is om de aanvraag te verwerken. Het aantal aanvraageenheden dat door uw oplossing is vereist, is afhankelijk van de grootte van het gegevenselement en het aantal databaselees- en schrijfbewerkingen per seconde. Zie Aanvraageenheden in Azure Cosmos DB voor meer informatie. Deze geschatte prijzen zijn gebaseerd op Azure Cosmos DB die wordt uitgevoerd in twee Azure-regio's.

We hebben drie voorbeeldkostenprofielen verstrekt op basis van de hoeveelheid activiteit die u verwacht:

  • Klein: dit prijsvoorbeeld correleert met 5 RU's die zijn gereserveerd met een gegevensarchief van 1 TB in Azure Cosmos DB en een klein Kafka-cluster (D3 v2).
  • Gemiddeld: dit prijsvoorbeeld correleert met 50 RU's die zijn gereserveerd met een gegevensarchief van 10 TB in Azure Cosmos DB en een middelgrote Kafka-cluster (D4 v2).
  • Groot: dit prijsvoorbeeld correleert met 500 RU's die zijn gereserveerd met een gegevensarchief van 30 TB in Azure Cosmos DB en een groot Kafka-cluster (D5 v2).

Medewerkers

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

Belangrijkste auteurs:

Volgende stappen

Dit voorbeeldscenario is gebaseerd op een uitgebreidere versie van deze architectuur die is gebouwd door jet.com voor de end-to-end orderverwerkingspijplijn. Zie het jet.com technische klantprofiel en de presentatie van jet.com bij Build voor meer informatie.

Bekijk deze andere inhoud:

Bekijk de gerelateerde architectuurinhoud: