İki farklı ortam arasında yüksek oranda kullanılabilir bir MongoDB Azure Stack Hub dağıtma

Bu makale, iki farklı ortamda olağanüstü durum kurtarma (DR) sitesi ile temel bir yüksek oranda kullanılabilir (HA) MongoDB kümesi otomatik dağıtımında size Azure Stack Hub adım adım gösterir. MongoDB ve yüksek kullanılabilirlik hakkında daha fazla bilgi edinmek için bkz. Çoğaltma Kümesi Üyeleri.

Bu çözümde, şunları yapmak için bir örnek ortam oluşturabilirsiniz:

  • İki farklı Hub'da Azure Stack düzenleme.
  • Azure API profilleriyle ilgili bağımlılık sorunlarını en aza indirmek için Docker'ı kullanın.
  • Olağanüstü durum kurtarma sitesiyle temel bir yüksek oranda kullanılabilir MongoDB kümesi dağıtın.

İpucu

Hibrit ipucu simgesi. Microsoft Azure Stack Hub, Azure'ın bir uzantısıdır. Azure Stack Hub, bulut bilişimin çeviklik ve yeniliklerini şirket içi ortamınıza getirerek her yerde karma uygulamalar derlemenize ve dağıtmanıza olanak sağlayan tek hibrit buluta olanak sağlar.

Karma uygulama tasarımı konusunda dikkat edilmesi gerekenler makalesi, karma uygulamaları tasarlama, dağıtma ve çalıştırmaya yönelik yazılım kalitesinin (yerleştirme, ölçeklenebilirlik, kullanılabilirlik, dayanıklılık, yönetilebilirlik ve güvenlik) temellerini gözden almaktadır. Tasarımla ilgili önemli noktalar, karma uygulama tasarımını iyileştirmeye yardımcı olarak üretim ortamlarındaki zorlukları en aza indirmeye yardımcı olur.

Azure Stack Hub ile MongoDB mimarisi

Diyagramda, Azure Stack Hub'de yüksek oranda kullanılabilir bir MongoDB mimarisi Azure Stack Hub.

Azure Stack Hub ile MongoDB için önkoşullar

  • İki bağlı Azure Stack Hub tümleşik sistem (Azure Stack Hub). Bu dağıtım, Azure Stack Geliştirme Seti (ASDK) üzerinde çalışmıyor. Daha fazla bilgi Azure Stack Hub için bkz. Azure Stack Hub?
    • Her abonelikte bir kiracı Azure Stack Hub.
    • Her abonelik kimliği ve her abonelik için Azure Resource Manager uç noktasını not Azure Stack Hub.
  • Her Azure Active Directory kiracı aboneliği üzerinde izinleri olan bir hizmet sorumlusu (Azure AD) Azure Stack Hub. Azure Stack Hub'ları farklı Azure AD kiracılarına dağıtılırsa iki hizmet sorumlusu oluşturmanız gerekir. Hizmet sorumlusu oluşturma hakkında bilgi edinmek Azure Stack Hub bkz. Azure Stack Hub kaynaklara erişmek için uygulama kimliği kullanma.
    • Her hizmet sorumlusunun uygulama kimliğini, istemci gizli adını ve kiracı adını (xxxxx.onmicrosoft.com.
  • Ubuntu 16.04, her bir Azure Stack Hub Market'e göre bir dağıtımdır. Market dağıtım hakkında daha fazla bilgi edinmek için bkz. Market öğelerini Azure Stack Hub.
  • Docker for Windows yerel makinenize yüklenir.

Docker görüntüsünü al

Her dağıtım için Docker görüntüleri, farklı dağıtım sürümleri arasındaki bağımlılık Azure PowerShell.

  1. Windows için Docker'ın Windows olun.

  2. Dağıtım betikleriyle Docker kapsayıcısını almak için yükseltilmiş komut isteminde aşağıdaki komutu çalıştırın:

    docker pull intelligentedge/mongodb-hadr:1.0.0
    

Kümeleri dağıtma

  1. Kapsayıcı görüntüsü başarıyla alındıktan sonra görüntüyü başlatabilirsiniz:

    docker run -it intelligentedge/mongodb-hadr:1.0.0 powershell
    
  2. Kapsayıcı başlatıldıktan sonra, kapsayıcıda size yükseltilmiş bir PowerShell terminali verilir. Dağıtım betiğine almak için dizinleri değiştirme:

    cd .\MongoHADRDemo\
    
  3. Dağıtımı çalıştırın. Gerektiğinde kimlik bilgilerini ve kaynak adlarını girin. HA, HA Azure Stack Hub dağıtılacağı kümeyi ifade eder. DR, DR Azure Stack Hub dağıtılacağı kümeyi ifade eder:

    .\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. Y"2018-03-01-hybrid" modüllerini yükecek olan NuGet sağlayıcısının yüklemesine izin vermek için yazın.

  5. Önce HA kaynakları dağıtacak. Dağıtımı izle ve bitsin diye bekleyin. HA dağıtımının tamam olduğunu belirten iletiyi edindikten sonra, dağıtılan kaynakları görmek Azure Stack Hub portalına bakabilirsiniz.

  6. DR kaynaklarının dağıtımına devam eder ve kümeyle etkileşim kurmak için DR Azure Stack Hub bir atlama kutusunu etkinleştirmek istediğinize karar verin.

  7. DR kaynağı dağıtımının bitip bitimini bekleyin.

  8. DR kaynağı dağıtımı tamam olduktan sonra kapsayıcıdan çıkın:

    exit
    

Sonraki adımlar

  • DR sanal makinesi üzerinde atlama kutusu VM'sini Azure Stack Hub SSH aracılığıyla bağlanıp mongo CLI'yi yükleyerek MongoDB kümesiyle etkileşim kurabilirsiniz. MongoDB ile etkileşim kurma hakkında daha fazla bilgi edinmek için bkz. mongo Kabuğu.
  • Hibrit bulut uygulamaları hakkında daha fazla bilgi edinmek için bkz. Karma Bulut Çözümleri..
  • kodunda bu örnekteki kodu GitHub.