Deploying Commerce Server on Azure Cloud Service
Deploying Commerce Server on Azure Cloud Service.
Commerce Server can be installed and run from an Azure Cloud Service and connect to a SQL Server hosted on IaaS or Azure SQL. Web Apps are not supported at this point. If you have an existing Cloud Service instance, you can just RDP into the instance(s) and run the Commerce Server installer and Configuration Wizard to get set up. If you want to automate the installation and configuration as part of your startup task, then there is a bit more involved.
There are two limitations to be aware of before you get started:
The Cloud Service needs to be Windows 2012 R2 or greater. For your Azure Cloud Service configuration this means setting your osFamily=”4”. This can be set in your ServiceConfiguration.*.cscfg file.
Microsoft Distributed Transaction Coordinator (MSDTC) is not supported in Azure. The Orders/Marketing pipeline framework supports the use of MSDTC, but the only place it is used out-of-the-box is to update the inventory stock counts during a checkout. If you are using the default Commerce Server inventory store as part of your solution, or you have an existing pipeline component that is depended on MSDTC, you need to explore new strategies for handling a fallback. By default, MSDTC support is still enabled in Commerce Server, but you will need to disable it off when working in Azure. You can do this by adding
enableTransactions="false"
to the Orders element in your CommerceServer config section.
When running Commerce Server Configuration Wizard in an Azure Cloud Service, you will want to remove the Commerce Server Staging (MS.CS.CsStaging) and Profile Schema Manager (Feature.MS.CS.Misc) from the list of features configured by the Commerce Server Configuration Wizard. Neither of these features should be required on a Cloud Service, and will reduce the amount of additional configuration you need to perform. The sample script is set up to not enable these features. If you need these features, you should modify the script as needed.