Thursday, January 17, 2013

Microsoft Dynamics GP 2013 on Windows Azure: Provisioning Process

Welcome to the second article on Microsoft Dynamics GP 2013 and Windows Azure of this installment. In the first installment, I showed how to create an Azure account and setup a subscription - see Microsoft Dynamics GP 2013 on Windows Azure: Subscription Process.

This time around I will review the virtual machines (VMs) provisioning process. For all intends and purposes, this environment will consist of an Active Directory Domain Server (AD DS), required to support authentication within our Azure environment; a Microsoft Dynamics GP application server, which will serve as a session host, therefore running GP and the Web Client Runtime; a Microsoft SQL Server database server, which will host the GP databases, the Web Management database, Session Central database, and Tenant Services database; and finally, a web server running IIS to support the Web Client itself along with the different session services required to run our web application.

For more information on Microsoft Dynamics GP 2013 web client architecture, see Dynamics GP 2013 Web Client Infrastructure Overview over at Developing for Dynamics GP.

All these VMs need to be a part of an Azure Virtual Network (AVN), so you must start by creating one. The purpose of this article is not to discuss how to setup an AVN as there are some considerations for this, especially if you are going to network with your on-premise network. For more information on the steps required see Create a Virtual Network in Windows Azure. Suffice to say, the AVN I created is a pure cloud network and will not interact with my on-premise network.

Provisioning the Virtual Machines

In order to begin the provisioning process, it is necessary to go to the Windows Azure management portal - If you have completed a new subscription, the welcome page will direct you to setup a new asset for the environment.

Azure Management Console
Active Directory VM provisioning

The first thing in my list is an Active Directory VM which I will call ip-ads01. This VM will serve up my environment's domain controller - my domain will be called ip-forest.local - and will act as a DNS server as well. It will also allow me to create my environment's users and add the necessary security groups needed for the Web Client. Please consult with a network administrator on the steps required to setup AD DS. You can find more info in the following Microsoft TechNet article: AD DS Design Guide.

One of the cool aspects of Azure is the ability to select the type of memory and core you will be needing for your VM. I decided to go with a Large server, since I will be running Windows Server 2012 and AD DS management console tends to also use up some memory.

Once the server is been provisioned, setting up AD DS and making the server a primary domain controller should be fairly straight forward (using Server Manager) - dcpromo has been deprecated in Windows Server 2012 - see Introducing the first Windows Server 2012 Domain Controller (Part 1 of 2) over at the Server and Management team blog.

Dynamics GP VM provisioning

Once we complete the AD DS server setup, it's time to move on to provisioning the Dynamics GP VM. The process is similar to the Active Directory server provisioning. Here, I am also choosing a Windows Server 2012 machine to run the Dynamics GP client and the Web Client Runtime - in conjunction our session host server.

VM OS Selection
This server will be known as ip-gp01 and I will use a Large size setup to begin with. Note that in Azure you can change your VM configuration to increase or decrease the amount of resources you are using.

VM configuration

Next is the VM mode configuration, which could pretty much be summarized as setting up the VM's DNS on your Azure network. For obvious reasons, I am removing my Azure DNS extension in the picture below.

Finally, in the step of setting up the VM, you will want to assign an availability set. Again, not a topic for this article, but suffice to say something critical to consider during your Azure planning if you are to ensure maximum application uptime - see Manage the Availability of Virtual Machines for more information.

VM Options
Once you have navigated through the simple 4 step process, the provisioning process begins. From end-to-end this should be no more than 3 minutes, which I find to be very impressive.

Provisioning process kicked off for our first machine
SQL Server Provisioning

Not to be confused with SQL Azure, we will be provisioning a standard VM running a full version of Microsoft SQL Server 2012 Evaluation Edition. Interestingly enough, you can only get this on a Windows Server 2008 R2 operating system if you decide to use the standard gallery image. The alternative, of course, is to provision a standard Windows Server 2012 VM, then manually load SQL Server 2012 on it. Again, since this is a demo environment and my intent is not to install GP on the SQL Server - just one of those best practices items that I follow - I will continue and provision the standard image available from the gallery.

Microsoft Dynamics GP is not supported on SQL Azure (yet!) due to a number of design limitations in the latter, for example, cross-database operations. This is significant since Dynamics GP makes extensive calls to the system database from within the company database.

From here on, the VM configuration is standard. I chose to name this machine ip-sql01.

The final VM to provision is the web server, for which I will be using a Windows Server 2012 image and will add IIS later. You can follow the instructions in Installing IIS 8 on Windows Server 2012 after the provisioning process has been completed to get IIS up and running.

A few notes from this exercise...

1) Once you have provisioned all machines, you will need remote into each to change the DNS settings on each to point to your DNS server on your AD DS VM. At this point, you can join them to the domain. To remote into a machine, highlight the VM and click on the Connect button at the lower end of the screen.

Management Console screen

2) On the SQL Server, you will need to open ports 1433 and 80 to the domain only. Port security is pretty tight for the provisioned VMs. In addition, you will need to change SQL Server security to Mixed Mode and configure SQL Server Reporting Services by using the standard Reporting Services Configuration tool.

3) The PING command line utility is disabled in Azure, so don't try to use it. You cannot ping a VM from another one. A good measure of success is attempting to add your servers in Server Manager on your AD DS VM. If you can add each server, you are good to go which means TCP/IP is working as expected within your Azure virtual network.

My next installment will focus on getting the GP session host up and running. As we move through each server installation, I will continue to point out other considerations in making this all work.

Until next post!

Mariano Gomez, MVP
IntellPartners, LLC


Anonymous said...

Great information Mariano. A couple of other comments from my experiences working on Windows Azure.

1. The following how to article provides good information on creating an AD forest (domain) in Azure.

2. By default, the sa account is disabled on the Microsoft SQL Server 2012 Evaluation Edition gallery image. Before installing Dynamics GP, you will need to enable this account or create another SQL Login assigned to the system administrator role.


Mariano Gomez said...


Thanks for the additional comment and yes, the 'sa' account escaped me in my original post.


Paul said...

Thanks Mariano!

As a GP nube, this information is very much appreciated.

I look forward to the next article on the implementation itself.

From one MVP to another - cheers!

Sanjay Kumar Rajarao said...


Getting the real number on azure cloud base cost has been difficult to estimate for couple of reasons -I getting connected to support and next if you get connected talking to the right person. Do you have straw man print to share ?


Anonymous said...

Mariano, is there a way to use Management Reporter when accessing GP from Azure and the Web client?

Mariano Gomez said...


You can install Management Reporter on an Azure provisioned server and deploy the Management Reporter Web View. That should work just fine.

Mariano Gomez, MVP

Anonymous said...

Hi Mariano, do you have ballpark cost for all VMs you used? it looks like it woul run into 6-700s and user VMs cost? any idea

Mariano Gomez said...

Our environment is currently running 1 small VM for Active Directory, 1 Medium for Web Server + Session Host, 1 Medium for SQL Server. This is costing us around $150 - $200 month or roughly $15 - $20 per user.

Hope this helps,


Unknown said...

HI MAriano!
Some of images are may b corrupted or missin in this article could you plz upload them again ?

Mariano Gomez said...


The images are just fine in the article. The issue may be with your browser.


Gus said...

Mariano, Is it possible to leverage the Azure Active Directory instead of deploying one server with the Active Directory role?

Mariano Gomez said...


Unfortunately, Azure AD is still not a supported feature, hence you must deploy a VM running Windows Server 2012 with AD service.


Anonymous said...

Mariano, you are the best. I am newbie and all your articles help a ton! With the VM sizing you mentioned here, would this sizing work in production for a max of 5 concurrent users with no more than 250 transactions per day?


Mariano Gomez said...


I can't specifically say that this configuration will or will not work in your case since it depends on a number of factors beyond just user count and number of transactions. But you should identify the configuration closest to the Microsoft Dynamics GP System Recommendations page for a client with the characteristics you outlined.