Geoptimaliseerde opslag - op basis van tijd - multi-schrijf schrijf schrijfervaring

Front Door
App Service
Functions
Cosmos DB
Table Storage

Oplossingsidee

Als u wilt dat we dit artikel uitbreiden met meer informatie, zoals mogelijke use cases, alternatieve services, implementatieoverwegingen of prijsinformatie, laat het ons dan weten met GitHub Feedback!

Deze architectuur maakt gebruik van meerdere opslagservices om de opslagprestaties en -kosten te optimaliseren. Azure Cosmos DB bevat recente gegevens en biedt beschikbaarheid, prestaties en tolerantie. Azure Table Storage bevat alle gegevens, zowel recent als historisch, en biedt voordelige opslag voor de historische gegevens. Met de Azure Storage replicatiemogelijkheden worden de Azure Cosmos DB gerepliceerd naar andere regio's. De Azure Table Storage-gegevens moeten ook worden gerepliceerd met behulp van systeemeigen replicatie of Azure Data Factory. Periodiek worden historische Azure Data Factory verwijderd uit Azure Cosmos DB kosten te verlagen.

In het scenario genereert de toepassing elke maand 3 TB aan gegevens, met drie maanden aan gegevens die zijn opgeslagen in Azure Cosmos DB voor hoge beschikbaarheid en prestaties. De toepassingsgegevens worden ook naar Azure Table Storage in de primaire regio geschreven, waar ze vervolgens naar een andere Azure-regio kunnen worden gedupliceerd met behulp van Azure Data Factory. Om de opslagkosten laag te houden, worden alle gegevens die meer dan drie maanden oud zijn, gewist Azure Cosmos DB.

Andere voordelen van deze benadering zijn extra tolerantie tegen fouten in afzonderlijke opslagservices en het inschakelen van aanvraagclassificatie op basis van hun kritiekheid voor het gebruik van de juiste opslagservices.

Deze techniek is vooral nuttig in scenario's waarin u uw opslagtechnologie opnieuw platformt om ervoor te zorgen dat het systeem blijft werken zoals verwacht tijdens de migratiefase.

Potentiële gebruikscases

De architectuur kan geschikt zijn voor elke toepassing die gebruikmaakt van enorme hoeveelheden gegevens die altijd beschikbaar moeten zijn. Voorbeelden hiervan zijn apps die:

  • Houd de bestedingsgewoonten en het winkelgedrag van klanten bij.
  • Weersvoorspelling.
  • Bied slimme verkeerssystemen aan of implementeert slimme verkeerssystemen of gebruik slimme technologie om verkeer te bewaken.
  • Analyseer productiegegevens Internet of Things (IoT).
  • Slimme metergegevens weergeven of slimme technologie gebruiken om metergegevens te bewaken.

Architectuur

Architectuur van een robuust systeem dat gebruikmaakt van twee typen opslag om de kosten te verlagen.

Een Visio-bestand van deze architectuur downloaden.

  1. De client wordt geverifieerd met Azure Active Directory (Azure AD) en krijgt toegang tot webtoepassingen die worden gehost op Azure App Service.
  2. Azure Front Door, een firewall en laag 7-load balancer, schakelt gebruikersverkeer over naar een andere Azure-regio in het geval van een regionale storing.
  3. Azure App Service host websites en RESTful-web-API's. Browser-clients voeren AJAX-toepassingen uit die gebruikmaken van de API's.
  4. Web-API's delegeren functie-apps voor het afhandelen van achtergrondtaken. De taken worden in de wachtrij geplaatst in Azure Queue Storage wachtrijen.
  5. De functie-apps die worden gehost door Azure Functions voeren de achtergrondtaken uit, geactiveerd door de berichten in de wachtrij. De functie-apps werken zowel Azure Cosmos DB als Tabel Storage.
  6. Azure Cache voor Redis cachet databasegegevens voor de functie-apps. Dit offloadt databaseactiviteit en versnelt de functie-apps en web-apps.
  7. Azure Cosmos DB bevat 3 tot 4 maanden van de meest recente gegevens die door de webtoepassingen worden gebruikt.
  8. Tabel Storage bevat historische gegevens die worden gebruikt door de webtoepassingen.
  9. Elke drie maanden verwijdert Azure Data Factory oude gegevens uit Azure Cosmos DB om de opslagkosten te verlagen. De gegevens blijven in tabel Storage.

Onderdelen

  • Azure Active Directory (Azure AD) is een multi-tenant identiteits- en toegangsbeheerservice die kan worden gesynchroniseerd met een on-premises directory.
  • Azure DNS is een hostingservice met hoge beschikbaarheid voor DNS-domeinen die apps voorziet van snelle DNS-query's en snelle updates van DNS-records. Het Azure DNS is hetzelfde als het beheren van andere Azure-services en maakt gebruik van dezelfde referenties, API's, hulpprogramma's en facturering.
  • Azure Front Door is een beveiligd netwerk voor contentlevering (CDN) en load balancer met directe failover. Het werkt aan de rand dicht bij gebruikers, wat de levering van inhoud versnelt en tegelijkertijd apps, API's en websites beveiligt tegen cyberbedreigingen.
  • Azure App Service is een volledig beheerde service voor het bouwen, implementeren en schalen van web-apps. U kunt apps bouwen met .NET, .NET Core, Node.js, Java, Python of PHP. Apps kunnen worden uitgevoerd in containers of op Windows of Linux. Bij een mainframemigratie kunnen de front-endschermen of webinterface worden gecodeerd als REST API's op basis van HTTP. Ze kunnen worden gescheiden en kunnen staatloos zijn om een systeem op basis van microservices te orkestreren. Zie RESTful web-API-ontwerp voor meer informatie over web-API's.
  • Azure Functions biedt een omgeving voor het uitvoeren van kleine stukjes code, functies genoemd, zonder dat u een toepassingsinfrastructuur tot stand moet brengen. U kunt deze gebruiken om bulkgegevens te verwerken, systemen te integreren, met IoT te werken 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, Azure Table Storageen Azure Queue Storage. Azure Files is vaak een effectief hulpprogramma voor het migreren van mainframe-workloads.
  • Azure Queue Storage biedt eenvoudige, rendabele en duurzame berichtenwachtrijen voor grote workloads.
  • Azure Table Storage is een NoSQL-sleutel-waardeopslag voor snelle ontwikkeling die gebruikmaakt van enorme semi-gestructureerde gegevenssets. De tabellen zijn schemaloos en kunnen gemakkelijk worden aangepast wanneer 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 in-memory cachingservice en berichtenbroker voor het delen van gegevens en status tussen rekenbronnen. Het bevat zowel de open source Redis als een commercieel product van Redis Labs als beheerde services. U kunt de prestaties van toepassingen voor onlinetransactieverwerking met hoge doorvoer verbeteren door ze zo te ontwerpen dat ze kunnen worden geschaald en door gebruik te maken van een gegevensopslag in het geheugen, zoals Azure Cache voor Redis.
  • Azure Cosmos DB is een wereldwijd gedistribueerde database met meerdere modellen waarmee uw oplossingen doorvoer en opslag kunnen schalen in een groot aantal geografische regio's. Uitgebreide serviceovereenkomsten (SLA's) garanderen doorvoer, latentie, beschikbaarheid en consistentie.
  • Azure Data Factory is een beheerde service die gegevensver movement en gegevenstransformatie in goede staat en automatiseert.

Alternatieven

  • Azure Traffic Manager inkomende DNS-aanvragen doorsturen in de globale Azure-regio's op basis van uw keuze van verkeersrouteringsmethoden. Het biedt ook automatische failover en prestatieroutering.
  • Azure Content Delivery Network (CDN) cachet statische inhoud op edge-servers voor snelle reacties en maakt gebruik van netwerkoptimalisaties om de reactie op dynamische inhoud te verbeteren. CDN is vooral nuttig wanneer het gebruikersbestand wereldwijd is.
  • 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 microservicearchitectuur 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 dat u infrastructuur moet beheren. Dit is handig tijdens de ontwikkeling of bij het uitvoeren van niet-geplande taken.
  • Azure Service Fabric is een platform voor het schalen en inschalen van containers en microservices.
  • Azure Service Bus is een betrouwbare cloudberichtenservice voor eenvoudige hybride integratie. Deze kan worden gebruikt in plaats van Storage in deze architectuur. Zie wachtrijen en Storage en Service Bus - vergeleken en contrasterendvoor meer informatie.

Overwegingen

  • Toepassingsontwikkelaars moeten multi-writes implementeren naar beide gegevensopslag. Dit kan de implementatie en het beheer van de algehele toepassing bemoeilijken.
  • U moet configureren Azure Data Factory gegevens te verwijderen op basis van tijdstempels uit Azure Cosmos DB. Zorg ervoor dat er in elke entiteit een tijdstempelkolom is gedefinieerd.
  • U kunt systeemeigen replicatiemogelijkheden van Table Storage om de architectuur te vereenvoudigen, maar dit beperkt u tot specifieke Azure-regio's die ondersteuning bieden voor tabelreplicatie.

Volgende stappen