Building a Test Environment By John O'Donnell, Microsoft CRM Most Valuable Professional  If you want to explore Microsoft CRM in a test environment, you have many options. I'll share four of my favorite experiments for creating a Microsoft CRM test environment here. Before we get started, I have one caveat: You should always tell your network administrators any plans you have to install new servers on the network, even for a testing environment. Even if you are a Microsoft Certified Systems Engineer (MCSE), you owe your administrators this courtesy. Besides, you don't want them to panic when new servers start appearing on the network. In addition, you need to make sure you fully understand the implications of installing additional servers on the network. On This Page1. Use a disconnected network and whatever servers you can find.When I was first playing with Microsoft CRM, I collected four old servers running Pentium 3600s and built my own little personal network consisting of: | • | A single domain controller running Microsoft Windows 2000 Server. | | • | A server running Microsoft SQL Server 2000. | | • | A server running Microsoft CRM 1.0. | | • | A server used as a client workstation. | | • | A cheap network hub. |
By attaching all these servers to my test hub, I was able to play with all aspects of Microsoft CRM without impacting my organization's corporate network. But as you can imagine, my desk was buried under the four tower servers humming away. My company then said to me, "Here's an AltiGen phone switch. See if you can write some software to display the appropriate contact record from Microsoft CRM in a pop-up when a call comes in to the phone switch." Using this setup, I was able to develop some C# code to integrate into a phone switch and deliver Microsoft CRM contact pop-ups to the Microsoft CRM user's desktop. Although this system worked well, I quickly tired of sitting in the middle of all these servers. I knew there had to be a better way. So I turned to Microsoft Windows Small Business Server 2003. 2. Use Microsoft Windows Small Business Server 2003.At a minimum, a Microsoft CRM system needs the following: | • | A domain controller running Microsoft Active Directory directory services in native mode. | | • | A Microsoft CRM Web server. | | • | A Microsoft CRM instance of Microsoft SQL Server. |
Small Business Server 2003 provides all these on a single physical server. This means your test environment would consist of one single box rather than four. The Microsoft Implementation Guide that ships with Microsoft CRM 1.2 walks you through installing Small Business Server 2003. You can find this guide on one of the CDs that Microsoft CRM ships with. Note that Microsoft released an update to Chapter 15 of this guide, which you can get from the Microsoft Download Center. 3. Use Microsoft Virtual PC 2004.Ever curious, I wanted to see what it was like to deploy Microsoft CRM as it would be deployed in a larger company that had hundreds of users and required multiple physical servers. Happily, I found a tool that would enable me to do this: Microsoft Virtual PC 2004. Put simply, Virtual PC allows a single computer, perhaps running Microsoft Windows XP, to pretend it has the capability of multiple servers! Each virtual server you create appears in its own window and can talk to the other servers on a virtual network. Configuration ConsiderationsThere are some issues to be aware of when doing this. The computer you use to host these virtual PCs needs to be fairly quick and have lots of RAM. For this experiment, I used a laptop running a 2.2 GHz Pentium 4 with 1 GB of RAM. I built all my C# code in a Virtual PC testing environment before sending the finished code to the Microsoft CRM production servers. On this single laptop, I ran the following three Virtual PCs: | • | Windows Server 2000 running as a native mode Active Directory domain controller with 128 MB RAM | | • | Windows Server 2003 running the Microsoft CRM 1.2 Web site and SQL Server 2000 with 256 MB RAM | | • | Windows Server 2000 with 128 MB of RAM running Microsoft Visual Studio .NET 2003 Professional Edition. This server is where I develop code against the Microsoft CRM system. |
I was highly impressed with this setup. In effect, it gave me three servers along with my day-to-day computing needs, all on a single laptop computer. This of course meant I could sit on a plane writing C# code against Microsoft CRM if I'd already seen the in-flight movie. But How Does It Perform?Although the performance of this testing environment is not lightning fast, keep in mind its virtual nature. Typically the system is slow until all the virtual servers are loaded and settle down a bit. Then the performance becomes acceptable—so much so that I've developed code just by using this setup. Trust me, if my Virtual PC environment was too slow to work with, I would be making a case for the purchase of three real servers. :) It's worth mentioning that you can dramatically increase your performance using this system by purchasing a USB hard drive. The idea is to store all your Virtual PC images on the USB hard drive and use your computer's main hard drive for your regular operating system. Hard drives on laptop computers are not always the fastest, so attaching a fast USB hard drive can give you significant performance gains. 4. Install another Active Directory forest on your production network.Gasp! Surely I am not recommending that you install another Active Directory forest. Won't that affect your production domains? Actually, it won't. Another way to install a Microsoft CRM system for users to play with is to install a new domain controller on your company's network—with their permission, of course. This domain controller should be in its own new Active Directory forest. Because no trust will exist between your test forest and your company's existing forest, your new Active Directory forest should not interfere with your company’s existing Active Directory infrastructure. Once this new domain controller is installed, you can add a second server to your new forest/domain to function as a Microsoft CRM Web server and an instance of Microsoft SQL Server. Once completed, you need to create domain accounts on the test domain for the users who will want to test Microsoft CRM. The result is that when a user on your production domain tries to connect to the Microsoft CRM test server, she will get a domain logon prompt for the test domain. She then can enter her test domain logon details and continue to play with Microsoft CRM, safe in the knowledge that it won't affect your production domain in any way. So there you have it—four ways you can create an environment where you can play with Microsoft CRM! John O'Donnell is a Microsoft CRM Most Valuable Professional (MVP). He works in the Microsoft Business Solutions (now Microsoft Dynamics) practice of Avanade as a Microsoft CRM application specialist. He is involved in all stages of the Microsoft CRM implementation process, from pre-sales to user training. If you see him in the Microsoft CRM newsgroups, be sure to say hello.
|