New Azure IT Workload: Web-based, line of business application

The new High-Availability Line of Business Application content set guides you through the end-to-end process so you can:

Understand the value of hosting a web-based, line of business application in Azure infrastructure services.
Create a proof-of-concept configuration or a dev-test environment.
Configure the production workload in a cross-premises virtual network.

The result of this process is a highly-available, web-based, intranet line of business application, accessible to on-premises users.

This configuration corresponds to the Line of Business Applications architecture blueprint.

The end-to-end configuration of this production workload using the Azure Resource Manager deployment model consists of the following phases:

Phase 1: Configure Azure. Create a resource group, storage accounts, a cross-premises virtual network, and availability sets.
Phase 2: Configure domain controllers. Create and configure replica Active Directory Domain Services (AD DS) domain controllers.
Phase 3: Configure SQL Server infrastructure. Create and configure the SQL Server and majority node server virtual machines, and then create the cluster.
Phase 4: Configure web servers. Configure an internal load balancer and the two web servers, and then and load your web application on them.
Phase 5: Create the Availability Group and add the application databases. Prepare the line of business application databases and add them to a SQL Server AlwaysOn Availability Group.

These phases are designed to align with IT departments or typical areas of expertise. For example:

Phase 1 can be done by networking infrastructure staff.
Phase 2 can be done by identity management staff.
Phases 3 and 5 can be done by database administrators.
Phase 4 can be done by web server administrators and web application developers.

To make the Azure configuration foolproof, Phases 1 and 2 contain configuration tables for you to fill out with all of the required settings. For example, here is Table V for the cross-premises virtual network settings from Phase 1.

To make the configuration of the Azure elements as fast as possible, the phases use Resource Manager-based Azure PowerShell command blocks wherever possible and prompt you to insert the configuration table settings as variables. Here is an example of the Azure PowerShell command block for creating the first replica domain controller.
# Set up subscription and key variables
Set-AzureSubscription -SubscriptionName $subscr
Switch-AzureMode AzureResourceManager

# Create the first domain controller
$vnet=Get-AzurevirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$nic=New-AzureNetworkInterface -Name ($vmName +”-NIC”) -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[1].Id -PrivateIpAddress $staticIP
$avSet=Get-AzureAvailabilitySet –Name $avName –ResourceGroupName $rgName
$vm=New-AzureVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id

$storageAcc=Get-AzureStorageAccount -ResourceGroupName $rgName -Name $saName
$vhdURI=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds/” + $vmName + “-ADDSDisk.vhd”
Add-AzureVMDataDisk -VM $vm -Name “ADDSData” -DiskSizeInGB $diskSize -VhdUri $vhdURI -CreateOption empty

$cred=Get-Credential -Message “Type the name and password of the local administrator account for the first domain controller.”
$vm=Set-AzureVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzureVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version “latest”
$vm=Add-AzureVMNetworkInterface -VM $vm -Id $nic.Id
$storageAcc=Get-AzureStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds/” + $vmName + “-OSDisk.vhd”
$vm=Set-AzureVMOSDisk -VM $vm -Name “OSDisk” -VhdUri $osDiskUri -CreateOption fromImage
New-AzureVM -ResourceGroupName $rgName -Location $locName -VM $vm

If you have any feedback on this new content set or approach to documenting Azure IT workloads, please comment on this blog post or leave Disqus comments on the individual articles.