Development Sandbox Philosophy
Over the years, I have created my fair share of virtual machines and the usage of virtualization has reached a point of being the norm and not the exception. The problem with this approach is that most developers miss the opportunity to truly replicate a real test environment and instead create the all in on sandbox. The developer sandbox is great, but when trying to replicate enterprise environments and create enterprise applications, it masks many of the problems that developers run into when moving from one environment to another (security, caching, high availability, load balancing, scaling, etc.).
To avoid these common pitfalls, I have always believed that a developer should create and use a simulated enterprise environment. To me this means AD VM, SQL Server VM, Web/BizTalk VM(s) and a Developer Tools VM. I have to give kudos to Marty Waznicky for starting me down this path. Specifically for BizTalk Server environments, having this setup is critical. There are so many things you can test is this type of environment that the typical sandbox just won’t do.
So what’s the problem?
The problem with the simulated enterprise environment approach is that most of us are constrained to the access of hardware. Unless your running a beefy development desktop, own a powerful laptop or have your own personal data center, the most you could do is two or three VM running at once before performance became an issue. But what if we need to simulate a real world environment, but we are limited to the resources on our desktop or laptop. Until recently, we were out of luck. Now we have a cloud-based option with infrastructure as a service.
Why use Windows Azure?
At CTS, we are fortunate to have an MSDN subscription that includes time on Windows Azure. Yes, there are other cloud options, but I wanted to really put Azure thru its paces now that persisted Virtual Machine are an option. I have a customer that needs to test some monitoring options for BizTalk Server, so I figured this was a great opportunity to create the simulated development environment.
My IAAS Architecture
Here is the high level overview of the environment we will be creating:
This layout will provide us with a base environment to do testing. Our core VM will be utilizing the Small VM instance, but when we start testing, I will be scaling this up to better simulate the customer’s environment. While I could do this with a desktop, the hardware is fixed. In this environment, I can beef up the specs with the click of a mouse. Cool stuff.
Is this supported?
In a nutshell, yes. We will be using the Azure infrastructure, but all the software features are utilized just as the would be on premises. I know there have been a few BizTalk folks out there who have posts on setting up BizTalk Server using Azure Virtual Machines, but we will be taking that a step further and truly simulating an enterprise deployment of BizTalk Server. First, let’s look at setting up the Azure Infrastructure.
What do we need to get started?
- Active Windows Live ID and Azure Account
- Remote Connection Manager for managing multiple VMs at once
Over the next few days, I will post the detailed steps on how to create your BizTalk Server Environment on Windows Azure IaaS. Stay tuned!