How to scale out Dynamics 365 for Finance and Operations on-premises

How to scale out Dynamics 365 for Finance and Operations on-premises

 

In this post I’m going to explain how to scale out Dynamics 365 for Finance and Operations on-premises by adding new VMs to your instance.

 

Overview

The process is quite straight forward and Service Fabric is going to do the remaining jobs once a new node added to Service Fabric Cluster. In this post, I’m going to showcase it by adding a new AOS node to an existing Dynamics 365 for Finance and Operations 7.3 with Platform Update 12 on-premises instance. Basically, the procedure is as follows.

  1. Update Dynamics 365 for Finance and Operations on-premises configurations for new AOS node
  2. Setup new AOS machine for Dynamics 365 for Finance and Operations on-premises
  3. Add new AOS machine as an AOS node in Service Fabric Cluster
  4. Verify new AOS node is functional

Prerequisites

  1. New AOS machine must fulfill the system requirements documented in here
  2. Basic configurations on new AOS machine like join domain, IP assignment, enable File and printer sharing… are done

Procedures

Update Dynamics 365 for Finance and Operations on-premises configurations for new AOS node

  1. Update ConfigTemplate to include new AOS node. For detailed instructions, please refer to documentation in here.
    a. Identify which fault and upgrade domain new AOS node will belong to
    b. Update AOSNodeType section to include new AOS machine
  2. Add A record for new AOS node in DNS Zone for Dynamics 365 for Finance and Operations on-premises. For detailed instructions, please refer to documentation in here.
  3. Run cmdlet Update-D365FOGMSAAccounts to update Grouped Service Accounts. For detailed instructions, please refer to documentation in here.
  4. Grant Modified permission of file share aos-storage to new AOS machine. For detailed instructions, please refer to documentation in here.

Setup new AOS machine for Dynamics 365 for Finance and Operations on-premises

  1. Install prerequisites. For detailed instructions, please refer to documentation in here
  2. a. Integration Services
  3. b. SQL Client Connectivity SDK
  4. Add gMSA svc-AXSF$ and domain user AxServiceUser to local administrators group
  5. Setup VM. For detailed instructions, please refer to documentation in here.D365FFO-LBDNOTE: D365FFO-LBD folder is generated by cmdlet Export-Scripts.ps1 when deploy Dynamics 365 for Finance and Operations on-premises per document in hereConfigure-PreReqs.ps1``.\Add-GMSAOnVM.ps1``.\Import-PfxFiles.ps1``.\Set-CertificateAcls.ps1
  6. a. Copy
  7. folder from an existing AOS machine, then run below steps in powershell as an administrator from D365FFO-LBD folder
  8. b. Run
  9. to install pre-req softwares on new AOS machine
  10. c. Run below cmdlets to complete pre-reqs on new AOS machine
  11. Run Test-D365FOConfiguration.ps1 to verify all setup is done correctly on new AOS machine
  12. Install ADFS certificate and SQL Server certificateTrusted Root Certification AuthoritiesLocal MachineTrusted Root Certification AuthoritiesLocal Machine
  13. a. Install ADFS SSL certificate to
  14. of
  15. store
  16. b. Install SQL Server (the .cer file) in
  17. of
  18. store

Add new AOS machine as an AOS node in Service Fabric Cluster

  1. The full instructions about how to add or remove a node in a existing Service Fabric Cluster could be found in here. Below steps are performed in new AOS machine.
  2. Download, unblock and unzip the same version of standalone package for Service Fabric for Window Server for existing Server Fabric Cluster
  3. Run Powershell with elevated privileges, and navigate to the location of the unzipped package in above step
  4. Run below cmdlet to add new AOS machine as an AOS node in Service Fabric cluster.\AddNode.ps1 -NodeName <AOSNodeName> -NodeType AOSNodeType -NodeIPAddressorFQDN <NewNodeFQDNorIP> -ExistingClientConnectionEndpoint <ExistingNodeFQDNorIP> :19000 -UpgradeDomain <UpgradeDomain> -FaultDomain <FaultDomain> -AcceptEULA -X509Credential -ServerCertThumbprint <ServiceFabricServerSSLThumbprint> -StoreLocation LocalMachine -StoreName My -FindValueThumbprint <ServiceFabricClientThumbprint> AOSNodeName – Node name of a Service Fabric Cluster. Refer to configuration file or Service Fabric Cluster explorer to see how existing AOS nodes namedAOSNodeType – the node type of new node isNewNodeFQDNorIP – FQDN or IP of new nodeExistingNodeFQDNorIP – FQDN or IP of an existing nodeUpgradeDomain – upgrade domain specified in ConfigTemplate for new nodeFaultDomain – fault domain specified in ConfigTemplate for new nodeServiceFabricServerSSLThumbprint – thumbprint of Service Fabric server certificate, star.d365ffo.onprem.contoso.comServiceFabricClientThumbprint – thumbprint of Service Fabric client certificate, client.d365ffo.onprem.contoso.comLocal Machine, My – where certificates installedNOTEAddNode.ps1
  5. Note the following elements in above cmdlet
  6. : Internet access is required as
  7. script will download Service Fabric runtime package
  8. Once new node added, set anti-virus exclusions to exclude Service Fabric directories and processes
  9. Get and edit existing Service Fabric Configuration once new node synced$ClusterName= "<ExistingNodeFQDNorIP>:19000"``$certCN ="<ServiceFabricServerCertificateCommonName>"Connect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 -X509Credential -ServerCommonName $certCN -FindType FindBySubjectName -FindValue $certCN -StoreLocation LocalMachine -StoreName MyExistingNodeFQDNorIP – FQDN or IP of an existing nodeServiceFabricServerCertificateCommonName – common name of Service Fabric Server certificate, *.d365ffo.onprem.contoso.comLocal Machine, My – where certificate installedGet-ServiceFabricClusterConfigurationClusterConfigurationVersionWindowsIdentitiesEnableTelemetryFabricClusterAutoupgradeEnabled
  10. a. Run below cmdlet to connect to Service Fabriccluster
  11. Note the following element in above cmdlet
  12. b. Run cmdlet
  13. and save output as a JSON file
  14. c. Update
  15. with new version number in JSON file
  16. d. Remove
  17. section from JSON file
  18. e. Remove
  19. f. Remove
  20. Start Service Fabric configuration upgradeStart-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>``Get-ServiceFabricClusterUpgrade
  21. a. Run below cmdlet to start Service Fabric configuration upgrade
  22. ;
  23. b. Run below cmdlet to monitor upgrade progress

Verify new AOS is functional

  1. Confirm new AOS machine is added as AOS node successfully
    Before After
  2. Validate new AOS is functional as expected