Back in November 2009 after getting a bunch of requests I elected to put a post up that explained the hardware I use when doing day-to-day SharePoint 2010 Development. Seems that was quite popular... but recently I've been getting the same question a lot in my classes with people asking if that old it still applied. So I figure it is about time to refresh this.
I'd like to break this down into two categories. First, what's my portable rig, the thing I use when I'm not in my office and traveling. Second, what's in my non-portable rig, the setup I use when I'm in my office & not traveling. These are two very different scenarios. It also helps to keep in mind what my scenario is:
- Work primarily from a home office.
- Primary work outside of the office is presentations and teaching classes where I need my own hardware.
- Primary work inside my office is typical SharePoint development tasks, hosting a site within my office supporting my company, Critical Path Training.
- Maintain two relatively small SharePoint 2010 farms for my company, Critical Path Training. One is a 2007 farm, one a 2010 farm. Both of these farms are hosted at one of the leading hosting facilities (we pay a monthly fee to rent a few servers where the facility maintains the backups & uptime, we maintain SharePoint, SQL, etc).
What Type of People can Benefit from this Setup?
Great question as you'll see some stuff I'm doing is not for the average SharePoint developer. Because my primary business is conducting SharePoint classes (teaching) and presenting at community events as well as conferences, it is very important that my portable/traveling hardware is as fast as possible. I need for it to boot up very quickly (sometimes you have less than 15 minutes to get your entire machine setup for a presentation at a conference) and I also want the demos running as fast as possible. My portable rig would work for most SharePoint developers as their only environment.
In my office (a home office) I have custom built two servers that serve as Hyper-V rigs simply hosting multiple virtual machines. Many of these are SharePoint VMs but others are more infrastructure stuff (SQL Server VM, production SharePoint VM, VM that hosts source control, etc). These virtualization rigs would be ideal for a small consulting shop in my mind that need to provide SharePoint VMs for development to their staff instead of shelling out for a bunch of expensive laptops. In this scenario, I think it's a very low-cost way to provide environments to your developers.
What's the Traveling/Portable Rig look like?
As I've written in the past, I have jumped between a few things. From a Dell to an Apple MacBookPro and back to the PC platform. Right now I'm a huge fan of Lenovo's. They are built so incredibly sturdy, have a great form factor and are relatively light for the power they punch. My current laptop is about seven (7) months old as I got it at the end of 2010:
- Lenovo ThinkPad w510
- Intel Core i7 CPU (Q820) 1.73Ghz
- 16GB RAM (aftermarket from Crucial)
- Primary HDD: 256GB SSD (Crucial C300)
- Secondary HDD (swappable modular bay with DVD drive): 256GB SSD (Crucial C300)
- I also carry a 300GB 7200RPM drive that came with the Lenovo w510. It is always an exact copy of the secondary SSD I carry. This is in case something goes very wrong at a conference/class and I can swap out the drive and be up and running usually within about 5-10 minutes.
This setup is great and I love it. When in Windows 7 x64, the experience index reports a 6.4 with the lowest numbers coming from the graphics categories. I'm not much of a gamer so I didn't go for a crazy powerful video card. The other ratings come in at the following:
- Processor - 7.1
- Memory - 7.4
- Primary HDD - 7.7
If I was buying another laptop today, I'd get the Lenovo ThinkPad w520 after reading Keith Combs' mini review. Obviously the two SSD drives are pricy, but they provide me the speed in booting up, warming up and getting ready for a presentation at a moment's notice. They are also more durable for someone who travels a ton.
So how do I have it configured? On the primary HDD I have Windows 7 x64 installed natively. It takes up the whole drive and it's where I primarily spend my time when not teaching/presenting. On the second HDD I install Windows Server 2008 R2 and have it setup as a boot-to-VHD setup. I used this fantastic Windows PowerShell script to to do this. Within that OS I enable the Hyper-V role and run all my VMs from there (all the VHDs are on the secondary HDD.
Why Hyper-V & not VMWare? Man, I get this a lot. We at Critical Path Training primarily teach at Microsoft Technical Centers. I'm not about to ask them to put VMWare on their machines. Plus, Hyper-V just works and I find it very intuitive.
What's the non-Traveling/Portable Rig look like?
A few years ago I started an adventure to get a server in my office. My office is a home office. At first I tried a real server (Dell PowerEdge) failing to realize those guys would be very loud with all the fans. I ended up building a machine that is virtually silent & very powerful. This machine can run quite a few VMs at one time. His specs are as follows:
- Motherboard: ASUS DSEB-DG (with a slick iKVM module)
- Two (2) Intel Quad Core XEON (E5410 2.33Ghz)
- 32GB RAM
- Four (4) 750GB Western Digital 7200RPM drives
- The configuration is RAID 0+1; two pairs of striped drives for 3TB of total storage. I then mirrored the two stripes for fault tolerance. Thank goodness as the drives have failed a few times. After replacing them (under warranty), a few hours later and the whole RAID array is rebuilt and I'm back in business. This gives me 1.5TB of redundant storage.
This machine runs Windows Server 2008 R2 w/ the Hyper-V role enabled. When I'm working in my home office, this is where I do 100% of my SharePoint work connecting to the VMs over RDP. That's pretty much it. I love this machine as it's incredibly silent. When the A/C kicks in, it makes more noise than the server. The XBOX 360 in my office, when on, makes more noise. As you can see from the build out (and subsequent improvements), the only fans on this machine are on the server. They are nice and quiet 120mm fans. The CPUs and RAM are all passively cooled. Running in a closet in my home office, the CPUs never spike above 45 degrees Celsius (they are rated up to 75 degrees).
As I said before, this is a great affordable and powerful solution for a small development shop. A nice SharePoint development machine would likely run $2,500-$3,500. That is for just one developer. Two years ago this machine cost about $5,500 but lately I've seen the parts come down to where it would run closer to $3,000. Not bad to provide environments to a handful of developers.
After two years I've become so reliant on this server that it started to scare me a bit. At times when something would go haywire with it for one reason or another (a bad Windows Update for instance), it would cripple me for a day. Not only do I have SharePoint VMs on this machine, but I also had things like QuickBooks, Active Directory domain controllers, source control... you get the picture. So, taking advantage of a IRS write off for small businesses, at the end of last year I built another server with mostly the same parts.
- Motherboard: ASUS Z8PE-D12 (with a slick iKVM module)
- Two (2) Intel Quad Core XEON (E5620 2.4Ghz)
- 48GB RAM
- Six (6) 2TB Western Digital 7200RPM drives
- Like the other server, RAID 0+1 for 6TB redundant storage.
When I built the first, what I call, "Quiet Custom vRig Server", I wrote a lengthy article with part numbers and loads of details. I know of about 5 or 6 friends who built the exact same machine & seem to run into folks here and there . Later this week I'll write up the specs on the new server.
This server is setup the same way with Windows Server 2008 R2 w/ the Hyper-V role enabled. I've balanced VMs across both (ie: primary & secondary Active Directory DC's on different servers) and every two weeks back the VMs up from one server to the other just in case.
That's basically it! Hopefully this will help someone out there when you go to get your next SharePoint development machine. Maybe you work for a big company, maybe you are a development manager for a small consulting shop or maybe you're like me: an independent developer or small business owner who needs a reliable setup. At any rate, I hope this is beneficial to someone out there!