LinkedIn | FaceBook | Twitter
I’ve used a lot of working methods for my desktop environment (not my servers) over the years, but they fall into three “buckets” of systems:
1. Big Workstation, VM Server, all tools, documentation, test environments local
2. Laptop with all tools installed, as well as Microsoft Office, hit the documentation on the web and a remote testing environment
3. Purpose-built Virtual Machines
I’m moving towards the latter model right now – I use Office in the “cloud”, Outlook on the web, and SharePoint for almost all my “office” work. I run a VM that is set up for T-SQL development and database design (with the Redgate, Quest and Embarcadero tools there, among others), another for Business Intelligence, another for SharePoint testing and so on. I find that each of these can use a different OS, patch level and so on. The only issue is that sometimes I actually want that hardware dependence, and of course I need a decent machine to run the VM’s. I don’t always run them all at the same time, so in fact that really isn’t an issue. I do have to synch between the VM’s, so I use a combination of PowerShell Scripts and Windows Live Mesh for that. So far I’m finding that I am very efficient this way, and can carry my “computer” on a USB drive assuming there’s a host machine at the conference or client where I’m travelling.
So, what are you finding to be the best way to work? Or do you have much of a choice in that?
I've just had to make a decision for myself as I just got a new machine. I'm going with option #3.
I think it's critical to still be able to setup #1 instead of relying on someone else to give you a 'just push play' solution.
I run off a 4GB mem laptop. I run VMWare Workstation. I create a VM for whatever I need. I've been doing that for several years now. Like you I don't run them all at once. I have one VM that's a working Server (Win 2003, SQL 2005) I can doing whatever I need from that if need be.
I have one VM that's Win 2008, SQL 2008 and VS2008. Then another that's Win 2008 R2, SQL 2008 R2 and VS2010. I also still have an XP VM that I use for some older things.
My laptop is loaded with Win7, Office 2010, SQL 2008 R2 and VS2010. I also have my Red-Gate tools on it. All of my VM's are on my 1TB external HD. I also have a smaller USB (320GB) drive. It needs no external power. I have copied a couple of my VM's onto it and I can use it on the go (where ever).
I also have a personal laptop (Toshiba) that runs Win7 Ultimate and has the same software installed as my work laptop. My work laptop stays at work and I can RDP into it from home if I need to.
I also have a 16GB and 8GB flash drive. I have my scripts and whatever else I might need in a pinch on them. They are with me at ALL times.
If I travel I do so with my personal laptop.
Since I joined my existing team I gave up the desktop and work with a laptop only. It is decently powerful with Windows 7, 4GB, dual core proc, and ssd. I also have a usb drive that I can store VMs, etc on. I have all of my tools, etc, loaded here and this is where I do 90% of my work. I also have a quad core box with 8GB of ram running Hyper-V that I use for testing/dev work. I have several stock VMs I use such as a standalone Server 2003, standalone Server 2008R2, and a Server2008R2 cluster. Each VM runs multiple instances of SQL 2005, 2008, and 2008R2.
Like Buck I also use Live Mesh, it is a god send. It syncs all of my scripts between multiple machines as well as allows web access to the files when necessary. I also sync quite a few ebooks with Live Mesh. The books are either something I am currently reading or something I have previously read and kept around as a good searchable resource.
I'm moving toward #3. I have a MacBook Pro with 8GB of memory and I use that for SQL Server work. There are several different VM configurations that I have based on what I need. Everything else is synced through dropbox, Google, and github.
In the last few months, I've started actively evaluating different 2U and 4U servers to replace my aging web host. The only reason I'm looking into co-locating my own server is that I can use it to host as many VMs as I want. That makes it a lot easier to keep them up and running or just spin them up as I need them.
I am definitely moving towards #3, if only because it means the inevitable move to a new / different computer is not a 8-12 hour affair with re-installing and configuring all applications I need. Plus it means patching and other update-like actions aren't quite as dangerous.
My choice is closer to #1 at the moment bu I am liking the cloud. I do have purpose built VM's for differeing server editions. I like the system on a USB drive. Even without my primary machine I am able to work on other machines with basic components.
Buck this is a very interesting post and I too want to move to number 3. My problem is that ads a developer who has all my environments created for me by my lovely CM team, I have no idea how to achieve number 3..... can you point me in the direction of any good blogs/articles to read on the steps on what I need to do to set myself some up, so I can start playing :-)
Any assistance would be greatly appreciated.
TJ - I just treat my VM like a regular system. To your CM folks, as long as they are controlling all of that with software, they don't even have to know it's a VM. I'd let them know anyway, of course, but the process should not change for them.