Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel bevat een oplossing voor hoge beschikbaarheid voor een webtoepassing die grote hoeveelheden gegevens beheert die binnen een bepaald tijdsbestek toegankelijk moeten zijn. De oplossing maakt gebruik van Azure Cosmos DB als het primaire gegevensarchief en gebruikt de Azure Cosmos DB wijzigingenfeed om gegevens te repliceren naar goedkope secundaire opslag. Na de opgegeven periode gebruikt de oplossing Azure Functions om de gegevens uit Azure Cosmos DB te verwijderen. De gegevens in secundaire opslag blijven langer beschikbaar voor controle en analyse door andere oplossingen. De oplossing repliceert gegevens naar verschillende gegevensservices, wat een hoge duurzaamheid biedt.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
Gegevensstroom
De volgende gegevensstroom komt overeen met het vorige diagram:
De client wordt geverifieerd met behulp van Microsoft Entra ID en krijgt toegang tot webtoepassingen die worden gehost op Azure App Service.
Azure Front Door, een firewall en een load balancer op laag 7, schakelt het gebruikersverkeer over naar de stand-byregio bij een regionale storing.
App Service host websites en RESTful-web-API's. Browserclients voeren asynchrone JavaScript- en XML-toepassingen uit die gebruikmaken van de API's.
Web-API's delegeren de verantwoordelijkheid voor door Functions gehoste code voor het afhandelen van achtergrondtaken. De taken worden in Azure Queue Storage-wachtrijen geplaatst.
De berichten in de wachtrij activeren de functies, waarmee de achtergrondtaken worden uitgevoerd.
Met Azure Managed Redis worden databasegegevens voor de functies in de cache opgeslagen. De oplossing ontlast databaseleesbewerkingen voor gegevens die langzaam veranderen en versnelt de functie-apps en web-apps door de cache te gebruiken.
Azure Cosmos DB bevat onlangs gegenereerde gegevens.
Azure Cosmos DB geeft een wijzigingenfeed uit die kan worden gebruikt om wijzigingen te repliceren.
Een functie-app leest de wijzigingenfeed en repliceert de wijzigingen in Azure-tabelopslag-tabellen. Een andere functie-app verwijdert periodiek verlopen gegevens uit Azure Cosmos DB.
Table Storage biedt goedkope opslag.
Onderdelen
Microsoft Entra-id is een service voor identiteits- en toegangsbeheer die kan worden gesynchroniseerd met een on-premises directory. In deze architectuur worden gebruikers geverifieerd en toegang verleend tot webtoepassingen die worden gehost in App Service.
Azure Front Door is een beveiligd netwerk voor contentlevering en load balancer. In deze architectuur wordt de levering van inhoud versneld, worden failovermogelijkheden geboden en worden apps beschermd tegen cyberbedreigingen.
App Service is een volledig beheerde service die ontwikkelaars gebruiken voor het bouwen, implementeren, hosten en schalen van web-apps. U kunt apps bouwen met behulp van .NET, Node.js, Java, Python of PHP. Apps kunnen worden uitgevoerd in containers, op Windows, of op Linux. In deze architectuur host App Service de webinterface en REST API's voor de toepassing. Zie RESTful web-API-ontwerp voor meer informatie over web-API's.
Functions biedt een omgeving voor het uitvoeren van kleine stukjes code, ook wel functies genoemd, zonder dat er een toepassingsinfrastructuur hoeft te worden vastgesteld. U kunt het gebruiken om bulkgegevens te verwerken, systemen te integreren, te werken met IoT-apparaten (Internet of Things) en eenvoudige API's en microservices te bouwen. U kunt microservices gebruiken om servers te maken die verbinding maken met Azure services en altijd up-to-date blijven. In deze architectuur voert Functions achtergrondtaken uit, zoals gegevensreplicatie en verlopen recordverwijdering.
Azure Storage is een set schaalbare en veilige cloudservices voor gegevens, apps en workloads. In deze architectuur biedt Storage Queue Storage voor taakberichten en Table Storage voor goedkope gerepliceerde gegevensopslag.
Queue Storage biedt eenvoudige, rendabele, duurzame berichtenwachtrijen voor grote workloads. Deze architectuur maakt gebruik van Queue Storage voor taakberichten.
Table Storage is een NoSQL-sleutel-waardearchief voor snelle ontwikkeling die gebruikmaakt van enorme semi-gestructureerde gegevenssets. De tabellen zijn schemaloos en kunnen naar behoefte worden aangepast. Access is snel en rendabel voor veel toepassingen. Deze architectuur maakt gebruik van Table Storage voor het opslaan van een gesynchroniseerde en geherstructureerde kopie van de gegevens in Azure Cosmos DB.
Azure Managed Redis is een volledig beheerde cacheservice in het geheugen en berichtenbroker voor het delen van gegevens en statussen tussen rekenresources. Als u de prestaties van OLTP-toepassingen met een hoge verwerkingssnelheid wilt verbeteren, ontwerpt u ze voor schaalbaarheid met behulp van een gegevensopslag in het geheugen, zoals Azure Managed Redis. In deze architectuur versnelt Azure Managed Redis de toegang tot veelgebruikte gegevens, waardoor de prestaties voor functie-apps en web-apps worden verbeterd.
Azure Cosmos DB is een wereldwijd gedistribueerde, multimodeldatabase die uw oplossingen mogelijk maakt om doorvoer en opslag elastisch en onafhankelijk te schalen in een willekeurig aantal geografische regio's. Het biedt garanties voor doorvoer, latentie, beschikbaarheid en consistentie met uitgebreide serviceovereenkomsten. In deze architectuur slaat Azure Cosmos DB recente gegevens op en verzendt een wijzigingenfeed die u kunt gebruiken om updates naar Table Storage te repliceren.
Alternatieven
Azure Traffic Manager stuurt binnenkomende DNS-aanvragen door in de globale Azure-regio's op basis van uw keuze aan verkeersrouteringsmethoden. Het biedt ook automatische failover- en prestatieroutering.
Azure Container Apps is een volledig beheerde, serverloze containerservice die ontwikkelaars gebruiken om moderne apps op schaal te bouwen en te implementeren.
Azure Kubernetes Service (AKS) is een volledig beheerde Kubernetes-service voor implementatie en beheer van toepassingen in containers. U kunt deze gebruiken om een microservicesarchitectuur te implementeren met onderdelen die onafhankelijk en op aanvraag worden geschaald.
Azure Container Instances voert taken uit zonder infrastructuurbeheer. Het is handig tijdens de ontwikkeling en om niet-geplande taken uit te voeren.
Azure Service Bus is een betrouwbare cloudberichtenservice voor eenvoudige hybride integratie. Het kan worden gebruikt in plaats van Queue Storage in deze architectuur. Zie Storage-wachtrijen en Service Bus-wachtrijen voor meer informatie, vergeleken en gecontrast.
Details van het scenario
Met deze oplossing worden grote hoeveelheden webtoepassingsgegevens opgeslagen in Azure Cosmos DB. Web-apps die grote hoeveelheden gegevens verwerken, gebruiken Azure Cosmos DB om doorvoer en opslag elastisch en onafhankelijk te schalen.
Wanneer er wijzigingen in de database worden aangebracht, wordt de Azure Cosmos DB wijzigingenfeed verzonden naar een gebeurtenisgestuurde Functions-trigger. Een functie voert vervolgens de wijzigingen in Table Storage-tabellen uit en repliceert deze, die een voordelige opslagoplossing bieden. U kunt ook bredere downstreamgegevensverplaatsing organiseren met behulp van Azure Data Factory pijplijnen of Fabric Data Factory om gegevens in analysezones te landen.
De web-app heeft de gegevens slechts een beperkte tijd nodig. Deze oplossing voert periodiek verlopen gegevens uit Azure Cosmos DB uit en verwijdert deze, waardoor de kosten worden verlaagd. U kunt functies op aanvraag activeren of plannen dat ze op specifieke tijdstippen worden uitgevoerd.
Potentiële gebruikscases
Deze oplossing is geschikt voor elke toepassing die:
- Maakt gebruik van een enorme hoeveelheid gegevens.
- Vereist dat gegevens beschikbaar zijn in een specifiek tijdsbestek.
- Gebruikt gegevens die verlopen.
Voorbeelden zijn apps die:
U kunt de klantervaring aanpassen en betrokkenheid stimuleren met behulp van livegegevensfeeds en sensoren op fysieke locaties.
Houd bestedingsgewoonten en winkelgedrag van klanten bij.
Houd wagenparken bij en verbeter de efficiëntie en veiligheid door gebruik te maken van voertuiglocatie, prestaties en gedragsgegevens voor bestuurders.
Weer voorspellen.
Verkeerssystemen bewaken en beheren.
De productie van IoT-gegevens analyseren.
Gegevens van slimme meters bewaken.
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Well-Architected Framework voor meer informatie.
Reliability
Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Ontwerp controlelijst voor betrouwbaarheid voor meer informatie.
De Azure Cosmos DB wijzigingenfeed garandeert ten minste één keer levering. Ontwerp uw replicatiefunctie zo dat deze idempotent is, zodat dubbele gebeurtenissen geen inconsistente gegevens genereren in Table Storage.
Azure Front Door biedt automatische regionale failover. Als de primaire regio onbeschikbaar wordt, wordt het verkeer zonder handmatige tussenkomst naar de standbyregio omgeleid.
Kostenoptimalisatie
Kostenoptimalisatie richt zich op manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie controlelijst ontwerpbeoordeling voor kostenoptimalisatievoor meer informatie.
Het primaire kostenvoordeel is het verplaatsen van verlopen gegevens van Azure Cosmos DB, dat per aanvraageenheid (RU) wordt gefactureerd in Table Storage, dat per transactie en per GB wordt gefactureerd. Dit proces is goedkoper voor gegevens die niet vaak worden geopend.
Als uw workload voorspelbare doorvoervereisten heeft, kunt u overwegen reserveerde capaciteit voor Azure Cosmos DB.
Gebruik de wijzigingenfeed voor replicatie. Deze methode vermindert het onderhoud van code in vergelijking met replicatie in de kerntoepassing.
Deze oplossing kost extra kosten voor secundaire opslag en voor de functies die gegevensreplicatie en vervaldatum beheren.
Operationele uitmuntendheid
Operational Excellence behandelt de operationele processen die een toepassing implementeren en deze in productie houden. Voor meer informatie, zie Controlelijst voor ontwerpevaluatie voor Operational Excellence.
U moet bestaande gegevens migreren. Voor het migratieproces zijn ad-hocscripts of routines vereist om oude gegevens naar opslagaccounts te kopiëren. Wanneer u de gegevens migreert, gebruikt u tijdstempels en kopieervlagmen om de voortgang van de migratie bij te houden.
Verwijderfeeds negeren die door uw functies worden gegenereerd wanneer ze vermeldingen uit Azure Cosmos DB verwijderen. Met deze methode voorkomt u dat vermeldingen uit Azure secundaire tabelopslag worden verwijderd.
Prestatie-efficiëntie
Prestatie-efficiëntie verwijst naar de mogelijkheid van uw workload om efficiënt te voldoen aan de behoeften van de gebruiker. Zie controlelijst ontwerpbeoordeling voor prestatie-efficiëntievoor meer informatie.
De verwerkingslatentie van wijzigingenfeeds is van invloed op hoe snel gegevens beschikbaar komen in Table Storage. Als u wilt voldoen aan uw latentievereisten, schaalt u het plan en de batchinstellingen van de functie-app.
Als u dynamische partities wilt voorkomen, kiest u een Azure Cosmos DB partitiesleutel waarmee schrijfdoorvoer gelijkmatig over logische partities wordt gedistribueerd.
Azure Managed Redis vermindert de leesdruk op Azure Cosmos DB voor langzaam veranderende gegevens, waardoor de latentie en het RU-verbruik worden verlaagd.
Bijdragers
Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.
Hoofdauteur:
- Nabil Siddiqui | Cloud Solution Architect - Digitaal en Toepassingsinnovatie
Andere bijdrager:
- Filipe Moreira | Cloud Solution Architect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Azure Front Door en netwerkdocumentatie voor cloudinhoudlevering
- Gebruik Azure Cosmos DB
- De juiste API kiezen voor Azure Cosmos DB
- Ontwikkeling van oplossingen met behulp van Azure Cosmos DB
- Grote hoeveelheden gegevens migreren naar Azure Cosmos DB
- Gegevens modelleren en partitioneren met behulp van een praktijkvoorbeeld
- Ontwerppatronen voor wijzigingenfeeds in Azure Cosmos DB
- Maak een serverloze architectuur op basis van gebeurtenissen met behulp van Azure Cosmos DB en Functions
- Wat is Fabric Data Factory?
- Verplaatsing en transformatie van gegevens samenvoegen met behulp van Azure Data Factory
- documentatie Fabric Data Factory