Een MongoDB-oplossing met hoge beschikbaarheid implementeren in twee Azure Stack Hub omgevingen

In dit artikel wordt u stapsgewijs door een geautomatiseerde implementatie van een mongoDB-cluster met hoge beschikbare basis (HA) met een noodherstelsite (DR) in twee Azure Stack Hub omgevingen. Zie Replica Set Members (Leden van replicasets) voor meer informatie over MongoDB en hoge beschikbaarheid.

In deze oplossing maakt u een voorbeeldomgeving om het volgende te doen:

  • Een implementatie in twee Azure Stack Hubs.
  • Gebruik Docker om afhankelijkheidsproblemen met Azure API-profielen te minimaliseren.
  • Implementeer een standaard MongoDB-cluster met hoge beschikbare gegevens met een noodherstelsite.

Tip

Het pictogram van de hybride tip.
Microsoft Azure Stack Hub is een uitbreiding van Azure. Azure Stack Hub brengt de flexibiliteit en innovatie van cloud-computing naar uw on-premises omgeving, waardoor de enige hybride cloud waarmee u hybride apps overal kunt bouwen en implementeren.

Het artikel Ontwerpoverwegingen voor hybride apps bespreekt de pijlers van softwarekwaliteit (plaatsing, schaalbaarheid, beschikbaarheid, tolerantie, beheersbaarheid en beveiliging) voor het ontwerpen, implementeren en gebruiken van hybride apps. De ontwerpoverwegingen helpen bij het optimaliseren van het ontwerp van hybride apps, waardoor de uitdagingen in productieomgevingen worden geminimim hetzelfde.

Architectuur voor MongoDB met Azure Stack Hub

In het diagram ziet u een MongoDB-architectuur met hoge Azure Stack Hub.

Vereisten voor MongoDB met Azure Stack Hub

  • Twee verbonden Azure Stack Hub geïntegreerde systemen (Azure Stack Hub). Deze implementatie werkt niet op de Azure Stack Development Kit (ASDK). Zie Wat is Azure Stack Hub? voor meer informatie over Azure Stack Hub?
    • Een tenantabonnement op elk Azure Stack Hub.
    • Noteer elke abonnements-id en het Azure Resource Manager eindpunt voor elke Azure Stack Hub.
  • Een Azure Active Directory -service-principal (Azure AD) die machtigingen heeft voor het tenantabonnement op elke Azure Stack Hub. Mogelijk moet u twee service-principals maken als de Azure Stack Hubs worden geïmplementeerd op verschillende Azure AD-tenants. Zie Use an app identity to access Azure Stack Hub resources (Een app-identiteit gebruiken om toegang te krijgen tot Azure Stack Hub resources) voor meer informatie over het maken van een service Azure Stack Hub-principal.
    • Noteer de toepassings-id, het clientgeheim en de tenantnaam van elke service-principal (xxxxx.onmicrosoft.com).
  • Ubuntu 16.04 is voor elke Azure Stack Hub Marketplace van de organisatie. Zie Marketplace-items downloaden naar Azure Stack Hub voor meer informatie over marketplace-syndicatie.
  • Docker voor Windows geïnstalleerd op uw lokale computer.

De Docker-afbeelding op te halen

Docker-installatiepunten voor elke implementatie elimineren afhankelijkheidsproblemen tussen verschillende versies van Azure PowerShell.

  1. Zorg ervoor dat Docker voor Windows gebruik maakt van Windows containers.

  2. Voer de volgende opdracht uit in een opdrachtprompt met verhoogde opdracht om de Docker-container op te halen met de implementatiescripts:

    docker pull intelligentedge/mongodb-hadr:1.0.0
    

De clusters implementeren

  1. Zodra de containerafbeelding is binnengehaald, start u de afbeelding:

    docker run -it intelligentedge/mongodb-hadr:1.0.0 powershell
    
  2. Zodra de container is gestart, krijgt u een PowerShell-terminal met verhoogde bevoegdheid in de container. Wijzig de directories om naar het implementatiescript te gaan:

    cd .\MongoHADRDemo\
    
  3. Voer de implementatie uit. Geef waar nodig referenties en resourcenamen op. Ha verwijst naar de Azure Stack Hub waar het ha-cluster wordt geïmplementeerd. DR verwijst naar de Azure Stack Hub waar het cluster voor dr.s. wordt geïmplementeerd:

    .\Deploy-AzureResourceGroup.ps1 `
    -AzureStackApplicationId_HA "applicationIDforHAServicePrincipal" `
    -AzureStackApplicationSercet_HA "clientSecretforHAServicePrincipal" `
    -AADTenantName_HA "hatenantname.onmicrosoft.com" `
    -AzureStackResourceGroup_HA "haresourcegroupname" `
    -AzureStackArmEndpoint_HA "https://management.haazurestack.com" `
    -AzureStackSubscriptionId_HA "haSubscriptionId" `
    -AzureStackApplicationId_DR "applicationIDforDRServicePrincipal" `
    -AzureStackApplicationSercet_DR "ClientSecretforDRServicePrincipal" `
    -AADTenantName_DR "drtenantname.onmicrosoft.com" `
    -AzureStackResourceGroup_DR "drresourcegroupname" `
    -AzureStackArmEndpoint_DR "https://management.drazurestack.com" `
    -AzureStackSubscriptionId_DR "drSubscriptionId"
    
  4. Typ om toe te staan dat de Y NuGet-provider wordt geïnstalleerd. De modules 2018-03-01-hybrid van het API-profiel worden dan geïnstalleerd.

  5. De HA-resources worden eerst geïmplementeerd. Controleer de implementatie en wacht tot deze is klaar. Zodra u het bericht hebt dat de ha-implementatie is voltooid, kunt u de portal van de ha-Azure Stack Hub controleren om de geïmplementeerde resources te zien.

  6. Ga door met de implementatie van dr-resources en besluit of u een jumpbox wilt inschakelen op de DR-Azure Stack Hub met het cluster wilt communiceren.

  7. Wacht tot de implementatie van de DR-resource is voltooien.

  8. Nadat de implementatie van de DR-resource is voltooid, sluit u de container:

    exit
    

Volgende stappen

  • Als u de jump box-VM hebt ingeschakeld op de DR-Azure Stack Hub, kunt u verbinding maken via SSH en communiceren met het MongoDB-cluster door de mongo CLI te installeren. Zie Mongo Shell voor meer informatie over interactie met MongoDB.
  • Zie Hybride cloudoplossingen voor meer informatie over hybride cloud-apps..
  • Wijzig de code in dit voorbeeld op GitHub.