Wednesday, 6 June 2018

How To Build An IaaS Test Lab In Windows Azure


Whether you work in development or IT operations, you must ensure the changes you make in your company's environment will go as expected. The best way to be 100 percent (or perhaps 95 percent) sure -- okay, maybe just 90 percent sure -- that nothing is going to break when you flip the switch on a massive infrastructure or code change, is to test, test, and test some more. The topic of testing typically isn't too exciting, but what better way to spice it up than to throw in the cloud? Everyone loves the cloud, right?
Testing is sexy again when you get to play with really cool public cloud services, like Microsoft's Azure infrastructure as a service (IaaS) cloud platform. But why even look to a public cloud at all? Couldn't you simply build out a free Hyper-V or VirtualBox environment for a couple of servers? You could, but making a good decision for doing so would depend on multiple factors, including these, among others:
  • Workloads being tested: Cloud services or an on-prem process?
  • Performance considerations: Do you need 100 Input/Output Operations Per Second (IOPS) or 100,000 IOPS?
  • Time commitment: How much time do you want to invest?
  • Availability: Do you need to access from everywhere?
In this guide we'll cover two fundamental phases that must be followed in order to successfully provision a Microsoft Azure IaaS test lab:
  1. Planning.
  2. Provisioning Resources.
To help illustrate the process, we'll use a fictional IT pro from a fictional company. Our IT pro has a need to test various Active Directory changes, such as database schema modifications, replication tweaks, and Group Policy Object (GPO) modifications, which are fairly common. Our IT pro also wants a guinea pig to test various scripts against the domain. He doesn't need anything fancy; perhaps a domain controller and a couple of clients.
First, we'll be covering the planning phase. We'll go over what kind of power our IT pro's test lab will need, selecting operating systems, and what kind of budget he has to work with. On the following page we continue our example by moving on to provisioning resources.

Sizing And Performance

Although our IT pro doesn't need anything fancy, he looks up Microsoft's list of Azure instances anyway. Checking an existing domain controller in production yields only 30GB of used space, 2GB of RAM, and a single core. Matching this configuration up to an Azure instance yields an A1 instance. This will be plenty to mimic the production domain controller. The clients will need even less power. The A0 instance will be plenty for them.

Operating System Selection

Our IT pro might be out of luck if he needs to test with Windows Server 2003 in Azure as the OS is no longer supported. If, for some reason, you need to test on a legacy operating system, be sure to first check the available OSes in Azure. Chances are, however, if you're testing on any semi-current operating system, it will be supported.
Finally, if you're in need of client operating systems, like Windows 7 and Windows 8, you might have some trouble. Just recently, Microsoft allowed client operating systems on Azure, but they're only available now for development and testing purposes.

Azure Budget

The biggest downside to using Microsoft Azure as a test lab is that it's not free -- it's definitely convenient, but it will cost you. The good news is that it's extremely cheap. Before you get too far along, be sure to check Azure's pricing page. Prices range widely, but when staying in the shallow end of the pool like our IT pro is doing, it typically requires less than $0.10/hr. It's a good idea to use the Azure pricing calculator with real-world performance considerations of your existing production servers.
Now that we've got some basic planning out of the way, let's get our hands dirty, dig into the Azure portal, and begin provisioning the virtual machines and resources.
2. Provisioning Resources
So you've made the decision to use Microsoft Azure as your next test lab environment. You've gone through the brief planning phase, and you're not scared off yet. Welcome to the Azure cloud. It's now time to start provisioning the resources you'll need in order to build your virtual machines (VMs).
Let's continue with our example of a fictional IT pro who needs to do some Active Directory testing. Our IT pro just needs a couple of servers, a domain controller, and a client.Now it's time to get down to business and get everything set up.
Before we get too far, I should remind you that Azure requires a subscription. Microsoft offers a free trial, which you'll need to sign up for if you don't already have an account, so you can test that lab setup and impress your coworkers with your super cloud skills.

Creating An Azure Virtual Network

A traditional test lab preferably needs its own non-routable network. You never want to accidentally stomp on your production network with your test network. Azure is no different. We must set up a virtual network ahead of time -- prior to creating our VMs. Later, we'll assignour VMs to these virtual networks.This is important because it is not possible to create a virtual network after the virtual machines are set up. You'll be sorry if you spend a long time setting up VMs and then decide to create the virtual network!
Microsoft has the detailed steps to create a cloud-only virtual network here.There are multiple ways to configure virtual networking in Azure. Our scenario is a simple example of two VMs in the cloud talking to one another only. This is why we need a cloud-only virtual network; this means the network doesn't extend down to our on-prem network.
When setting up your network, be sure to assign the DNS server on the virtual network the same as the domain controller you'll be building later.
That's about it. After you've gone through the prompts, you should have a new, shiny virtual network set up.

Building Azure Virtual Machines

After you've gotten your virtual network set up, it's on to building the first VM. There are just a few simple steps you'll need to follow here.
  1. Choose your OS image.
  2. Select the size and configuration of the VM.
  3. Set the virtual network you'd like the VM to be in.
When choosing your OS image, ensure that you stay as close to production as possible. If your production domain controller is Windows Server 2008, choose that; if it's Windows Server 2012 R2, choose that one.You're trying to replicate the production environment as closely as possible, so don't get sidetracked by the bright and shiny new things in Azure.
From the planning phase, you should already know the instance type you'll be choosing. However, you may not know some of the other configuration items, like the name of the test lab, the username you should use, and so on. Remember that this is a test lab. If you will be testing anything related to having the name and username match, go ahead and do that in the test lab as well. If the name and username will not be related to any testing you'll be performing, feel free to use whatever you'd like.
Our IT pro needs to create two VMs; a domain controller and a client. We will go through this process twice, but as you'll see, the process is very simple and much easier and faster than provisioning these servers yourself.
For detailed instructions on creating the VMs Microsoft has a great tutorial that goes step-by-step through the entire process.
After following the instructions to build his virtual network and the VMs, our IT pro now has a functioning test lab

No comments:

Post a Comment