Bewerken

Delen via


Minimale opslag: wijzigingenfeed om gegevens te repliceren

Azure Front Door
Azure App Service
Azure Functions
Azure Cosmos DB
Azure Table Storage

Dit artikel bevat een oplossing voor hoge beschikbaarheid voor een webtoepassing die te maken heeft met grote hoeveelheden gegevens die binnen een bepaald tijdsbestek toegankelijk moeten zijn. De oplossing omvat het gebruik van Azure Cosmos DB als het primaire gegevensarchief en het gebruik van de Azure Cosmos DB-wijzigingenfeed om gegevens te repliceren naar goedkope secundaire opslag. Wanneer de opgegeven periode verloopt, wordt Azure Functions gebruikt om de gegevens uit Azure Cosmos DB te verwijderen. De gegevens in secundaire opslag blijven gedurende langere tijd beschikbaar om andere oplossingen in te schakelen voor controle- en analysedoeleinden. De oplossing biedt ook een hoge duurzaamheid door gegevens te repliceren naar verschillende gegevensservices.

Architectuur

Architectuur van een flexibel systeem dat gebruikmaakt van twee soorten opslag om de kosten te verlagen.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

  1. De client wordt geverifieerd met Microsoft Entra-id en krijgt toegang tot webtoepassingen die worden gehost op Azure-app Service.
  2. Azure Front Door, een firewall en layer-7 load balancer, schakelt gebruikersverkeer over naar de stand-byregio als er sprake is van een regionale storing.
  3. App Service host websites en RESTful-web-API's. Browserclients voeren Asynchrone JavaScript- en XML-toepassingen (AJAX) uit die gebruikmaken van de API's.
  4. Web-API's delegeren de verantwoordelijkheid voor code die wordt gehost door Functions voor het afhandelen van achtergrondtaken. De taken worden in de wachtrij geplaatst in Azure Queue Storage-wachtrijen.
  5. De berichten in de wachtrij activeren de functies, waarmee de achtergrondtaken worden uitgevoerd.
  6. Azure Cache voor Redis databasegegevens voor de functies in de cache opgeslagen. Door de cache te gebruiken, wordt de databaseactiviteit door de oplossing offload en worden de functie-apps en web-apps versneld.
  7. Azure Cosmos DB bevat onlangs gegenereerde gegevens.
  8. Azure Cosmos DB geeft een wijzigingenfeed uit die kan worden gebruikt om wijzigingen te repliceren.
  9. Een functie-app leest de wijzigingenfeed en repliceert de wijzigingen in Azure Table Storage-tabellen. Een andere functie-app verwijdert periodiek verlopen gegevens uit Azure Cosmos DB.
  10. Table Storage biedt goedkope opslag.

Onderdelen

  • Azure Microsoft Entra ID is een service voor identiteits- en toegangsbeheer die kan worden gesynchroniseerd met een on-premises adreslijst.
  • Azure DNS is een hostingservice met hoge beschikbaarheid voor DNS-domeinen die apps snelle DNS-query's en snelle updates voor DNS-records biedt. Het beheren van Azure DNS is net zoals het beheren van andere Azure-services en maakt gebruik van dezelfde referenties, API's, hulpprogramma's en facturering.
  • Azure Front Door is een beveiligd CDN (Content Delivery Network) en een load balancer met directe failover. Het werkt aan de rand dicht bij gebruikers, het versnellen van de levering van inhoud tijdens het beveiligen van apps, API's en websites tegen cyberbedreigingen.
  • App Service is een volledig beheerde service voor het bouwen, implementeren en schalen van web-apps. U kunt apps bouwen met behulp van .NET, .NET Core, Node.js, Java, Python of PHP. Apps kunnen worden uitgevoerd in containers of in Windows of Linux. In een mainframemigratie kunnen de front-endschermen of webinterface worden gecodeerd als OP HTTP gebaseerde REST API's. Ze kunnen worden gescheiden en kunnen staatloos zijn om een systeem op basis van microservices te organiseren. 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. Met microservices kunt u servers maken die verbinding maken met Azure-services en altijd up-to-date zijn.
  • Azure Storage is een set zeer schaalbare en veilige cloudservices voor gegevens, apps en workloads. Het bevat Azure Files, Table Storage en Queue Storage. Azure Files is vaak een effectief hulpprogramma voor het migreren van mainframeworkloads.
  • Queue Storage biedt eenvoudige, rendabele, duurzame berichtenwachtrijen voor grote workloads.
  • Table Storage is een NoSQL-sleutel-waardearchief voor snelle ontwikkeling die gebruikmaakt van enorme semi-gestructureerde gegevenssets. De tabellen zijn schemaloos en kunnen gemakkelijk worden aangepast naarmate de behoeften veranderen. Toegang is snel en rendabel voor veel soorten toepassingen en kost doorgaans minder dan andere typen sleutelopslag.
  • Azure Cache voor Redis is een volledig beheerde cacheservice in het geheugen en berichtenbroker voor het delen van gegevens en status tussen rekenresources. Het omvat zowel de opensource Redis als een commercieel product van Redis Labs als beheerde services. U kunt de prestaties van toepassingen voor online transactieverwerking met hoge doorvoer verbeteren door ze te ontwerpen om te schalen en om gebruik te maken van een gegevensarchief in het geheugen, zoals Azure Cache voor Redis.
  • Azure Cosmos DB is een wereldwijd gedistribueerde database met meerdere modellen van Microsoft waarmee uw oplossingen elastisch en onafhankelijk doorvoer en opslag kunnen schalen in een willekeurig aantal geografische regio's. Het biedt garanties voor doorvoer, latentie, beschikbaarheid en consistentie met uitgebreide serviceovereenkomsten (SLA's).

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 Content Delivery Network slaat statische inhoud op in de cache op edge-servers voor snelle reactie en maakt gebruik van netwerkoptimalisaties om de reactie voor dynamische inhoud te verbeteren. Content Delivery Network is vooral handig wanneer de gebruikersbasis wereldwijd is.
  • Azure Container Apps is een volledig beheerde, serverloze containerservice die wordt gebruikt voor het bouwen en implementeren van moderne apps op schaal.
  • Azure Kubernetes Service (AKS) is een volledig beheerde Kubernetes-service voor het implementeren en beheren van toepassingen in containers. U kunt deze gebruiken om een microservicesarchitectuur te implementeren waarvan de onderdelen onafhankelijk op aanvraag worden geschaald.
  • Azure Container Instances biedt een snelle en eenvoudige manier om taken uit te voeren zonder infrastructuur te hoeven beheren. Het is handig tijdens de ontwikkeling of voor het uitvoeren van niet-geplande taken.
  • 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.

Scenariodetails

Deze oplossing maakt gebruik van Azure Cosmos DB om het grote aantal gegevens op te slaan dat door de webtoepassing wordt gebruikt. Web-apps die grote hoeveelheden gegevens verwerken, profiteren van de mogelijkheid van Azure Cosmos DB om doorvoer en opslag elastisch en onafhankelijk te schalen.

Een ander belangrijk oplossingsonderdeel is de Azure Cosmos DB-wijzigingenfeed. Wanneer er wijzigingen worden aangebracht in de database, wordt de wijzigingenfeedstream 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.

De web-app heeft de gegevens slechts een beperkte tijd nodig. De oplossing maakt gebruik van dat feit om de kosten verder te verlagen. Een andere functie wordt regelmatig uitgevoerd en verwijdert verlopen gegevens uit Azure Cosmos DB. Naast het activeren kunnen functies ook worden gepland om op bepaalde tijdstippen te worden uitgevoerd.

Potentiële gebruikscases

De architectuur is geschikt voor elke toepassing die:

  • Maakt gebruik van een enorme hoeveelheid gegevens.
  • Vereist dat gegevens altijd beschikbaar zijn wanneer ze nodig zijn.
  • Gebruikt gegevens die verlopen.

Voorbeelden zijn apps die:

  • U kunt de klantervaring aanpassen en betrokkenheid stimuleren via livegegevensfeeds en sensoren op fysieke locaties.
  • Houd bestedingsgewoonten en winkelgedrag van klanten bij.
  • Houd wagenparken bij door het verzamelen van gegevens over voertuiglocatie, prestaties en bestuurdersgedrag voor verbeterde efficiëntie en veiligheid.
  • Weer voorspellen.
  • Bied slimme verkeerssystemen aan of implementeer slimme verkeerssystemen of gebruik slimme technologie om verkeer te bewaken.
  • De productie van IoT-gegevens analyseren.
  • Slimme metergegevens weergeven of slimme technologie gebruiken om metergegevens te bewaken.

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.

  • Wanneer u deze oplossing implementeert en onderhoudt, worden er extra kosten in rekening gebracht.
  • Voor het gebruik van de wijzigingenfeed voor replicatie is minder codeonderhoud vereist dan het uitvoeren van de replicatie in de kerntoepassing.
  • 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, moet u tijdstempels en kopieervlagmen gebruiken om de voortgang van de migratie bij te houden.
  • Als u wilt voorkomen dat vermeldingen uit de secundaire Azure Table-opslag worden verwijderd, negeert u verwijderfeeds die worden gegenereerd wanneer uw functies vermeldingen uit Azure Cosmos DB verwijderen.

Medewerkers

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

Hoofdauteur:

  • Nabil Siddiqui | Cloud Solution Architect - Digitaal en Toepassingsinnovatie

Volgende stappen