By Blain Barton
I wrote this article about Don Noonan, a Cloud Architect from Skylera and his overview of “Infrastructure as a Service” platform. Don and I met at TechEd in Orlando 2012 last year and I interviewed him on the newest technologies around Windows Azure. Don has experience working at Microsoft, Boeing and has been working with storage technologies, virtual machines, workloads and desktop client deployment using cloud services - instead of the usual on-premise infrastructure services.
We start by discussing the working components or parts of cloud deployment in a real customer scenario. His current customer had a future mobile application on .Net but wanted to sell more of their current classic products. The customer had many servers to manage, with their IT staff on call to manage their on-premise infrastructure. Given the new technology, Don’s customer decided to look at Windows Azure to scale their applications and workloads on Microsoft’s Infrastructure cloud services.
So they started with a collection or set of functional groups within IaaS. They separated their virtual machines by roles such as Active Directory and other core services. This was a basic implementation of Windows Azure availability sets, which means at the datacenter level there is a promise that at least one member of a group of virtual machines will remain available while updates are being made to the Windows Azure platform.
You should use a combination of availability sets and load-balancing endpoints to make sure that your application is always available and running efficiently. For more information about using load-balanced endpoints, see Load Balancing Virtual Machines.
This task includes the following steps from the Windows Azure website below:
· Step 1: Create a virtual machine and an availability set
· Step 2: Add a virtual machine to the cloud service and assign it to the availability set during the creation process
· Step 3: (Optional) Create an availability set for previously created virtual machines
· Step 4: (Optional) Add a previously created virtual machine to an availability set
Don wanted to make sure that the cloud services and hypervisor have the appropriate virtual machines and that the compute resources will remain there. In this project, they had availability sets around there SQL virtual machines and the goal was that the system understands that one of the SQL instances is always highly available. Even though they have availability sets, you still have to implement failover at the database level, either using a witness, or the new Always On capability in SQL Server 2012.. They also have a custom management service specific to their mobile solution so their customers can look at logs and activities as well as their custom C++ sync service application used to sync data between the mobile phone application and backend database. Don explains that from a Windows Azure Mobile Services context, he likes to group the virtual machines, define what roles they will be playing and how the networking might be specifically laid out like load balancers and endpoints. Don shows in the IT Time Radio interview the Windows Azure portal and shows the interface with virtual machines within an availability set with 2 Domain Controllers paired up running. Don configures the DC availability set that has Active Directory running and AD Domain Services itself has built-in replication giving it high availability capabilities. The demo in the video shows setting up affinity groups and we explain how they are used in the Windows Azure datacenter which keeps your resources closely together like a high-level container that has compute and storage can be close together for provisioning. So for instance, since we’re here on the East Coast we would pick EAST US and build out Affinity Groups close to where we are physically located. Datacenters are large so you would first set up an Affinity Group and then within the Affinity Group you can build out your storage and virtual networks. For security reasons, within virtual networking you may want to divide out or subnet out the virtual networks so that the services are segregated and only certain ports can talk to each other which in common within public clouds services. You could say that you only want to have Windows firewall rules that say I only want external servers to talk to me on port 443, or only have SQL traffic go from the middle-tier to the database-tier.
So the nice part about IaaS is that each customer can have their own management network with an instance of their own virtual machines so you can segregate customers and services. I had a chance to explain the overview picture with segregating the workloads with first discussing Directory Services, Database Services, Management Services, Sync Services, and then wrapping around the whole thing with an Affinity Group and around that the virtual networking. We took a look at building this out in the video and Don shows how to use Powershell scripts and the Windows Azure IaaS cmdlets that makes the actual application work. What he likes to do is break them out into chucks like core infrastructure and back-end management servers like Active Directory Domain Controller, the middleware tier in the front-end like in this case SharePoint Server. So similar to how he segmented the network out and Don shows the scripts he uses to provision objects using Windows Azure and Powershell. He shows how to script out an Affinity Group so that the resources are not a football field away from each other for performance reasons. XML is used to do many of the functions within the portal that you can create from scratch or you can also find pre-canned management scripts up on http://www.windowsazure.com and Don has been working with the Windows Azure team to get more scripts up after they have had time to test these “real world” proof of concepts.
Don shows the foundation including the networking, affinity groups and storage he then shows how to create a virtual machine. He creates the management service layer which contains two Domain Controllers, with the same header information he then tells the default storage account to put new objects in the same storage account like for instance, 5 virtual machines within that storage account. Don explains what cmdlets do what functions like setting up instance variables for his two domain controllers to be in the same availability set. When the DC’s are being configured he explains the beauty of Windows Azure in that it has an existing gallery or catalogue of pre-built virtual machines so he builds it off the Windows Server 2008 R2 SP1 install and then he tells it what subnet and then he shows the cmdlet New-AzureVMConfig command and create the first and second virtual machine and added them to the same availability set name. If we did not include them they would be independent and therefore might be serviced at the same time which would not give you high availability. The last thing he configures is the cloud service for the management network. He explains that this is where you would open ports and configure the connection to the virtual machines to service them via RDP. He finishes the overview of the real world Windows Azure application covering computing power, administrative privileges and adding a set of disks to the database tier like adding a 100GB LUN for data and a 50GB LUN for log files, and you can add lots of disks. Up to 16 data disks at 1TB a piece so that give you room for expansion. There are over 2400 cmdlets for Powershell in Windows Server 2012 and you can get the Windows Azure PowerShell cmdlets from the Windows Azure manage area on http://www.windowsazure.com . The last piece is the web-tier on the newly created subnet that is public facing and two web front-ends and he explains the setup at the end of (Part 1 of 5) Real World Azure - Migrating a Classic 3-Tier Application to Windows Azure IT Time Radio – TechNet Episode .
Catch the previous episodes of “IT Time Radio” below -
TechNet Radio: IT Time – (Part 2 of 5) Real World Azure - Deploying a Custom SharePoint Application to Windows Azure
TechNet Radio: IT Time – (Part 3 of 5) Real World Azure – Moving an All-In-One Server from Co-location to Windows Azure
TechNet Radio: IT Time – (Part 4 of 5) Real World Azure – Implementing RemoteApp for Client / Server Applications on Windows Azure
TechNet Radio: IT Time – (Part 5) Real World Azure – Real World Azure - Migrating a Classic 3-Tier Application to Windows Azure
Try Windows Azure http://aka.ms/try-azure – (Free account requires credit card but not charged)
Get your Microsoft Trial Products at http://aka.ms/msproducts
In case you missed any of the series here is a list to all of the articles: http://aka.ms/31azure