You need a sandbox
To become good at building reliable solutions you have to be really good a breaking things. You must have a sandbox that allows you to play, experiment, and develop an intuitive sense of how things work. Over the years, I have literally spent thousands of hours in sandbox environments making a mess of things so that I can learn how not to make a mess of things. For me, there isn’t any substitute. You can’t just read it in a book, take a class, or work solely on production systems. You must have a place where you can break things and take chances.
Here are my recommendations for building a first class development/learning environment. From the PI Geek perspective, these recommendation will help for someone who is interested in developing solutions, or for someone who is interested in learning to deploy these solutions. The faster you can try things and recover when you mess things up, the faster you can learn.
MSDN is a must
First off, an MSDN subscription is a must. You are going to need a number of licensed Microsoft components in order to configure a complete development environment. Off the top of my head, I can say that you need Windows Server, Microsoft SQL Server, SharePoint Enterprise, and Visual Studio Professional. You need to be able to get your hands on these things whenever you need them. The best way to get all of these is to have an MSDN Professional subscription. I have been able to get this subscription for about $1200/year by committing to a 3 year deal. If you want details, just shoot me a message @RaesemannEnt and I’ll point you in the right direction. If you know of a better deal, please tweet me. I’ll promise to buy you a beer with some of the savings.
Go Virtual or Go Home
Next, go virtual or go home. Adopting virtualization is probably the single largest productivity increase that you can give yourself. The key to this productivity boost is the fact that you can easily back up your environment prior to making changes by taking what is known as a snapshot. This snapshot preserves the state of the system at that point. You can keep multiple snapshots making it easy to restore to different states.
Any of us who have played video games over the years has already learned this snapshot concept. You save your game progress at a dangerous point in the game so that you can start over from that point when you die. Notice that I didn’t say if you die, you always die the first several times you try. This concept of a save is not only convenient, it becomes a key strategy in learning to play the game better. Saving the game allows us to test different strategies and tactics at very little cost. Nobody wants to restart from the very beginning of the game when they die. Games that don’t let you save just end up pissing you off, so don’t play that game. Virtualization gives you this edge in real life.
I’ve used VMWare Workstation and Server for many years. I have recently, in the past year or so, decided that Hyper-V is a better solution. Hyper-V is the virtualization technology that is built into Windows Server. In my case, I use Windows Server 2008 R2 which allows you to add Hyper-V as a server role. Once you install that role, you are ready to roll. I prefer Hyper-V primarily because I find that it uses the host system resources more effectively than VMWare. In other words, I can run more virtual machines and see better performance under Hyper-V than I did under VMWare server. You can see from the screenshot below that you can stack quite a bit on a decent box and still get acceptable performance.
If you are going to be a good PI Geek you have to live on the edge. That means that you are going to download the newest available software and be the first to play with it. Betas can be ugly. I have found that while the end OSIsoft product is usually in really good shape by the time they release it to beta, the installer/installation process can have all sorts of complications that don’t pop up until it has been installed in a lot of different environments. Since you are the beta tester, that means that you are likely to be the one that discovers one of the problems. You are going to be glad that you made that snapshot prior to testing the betas.
In part 2, I’ll discuss some other strategies for installing different OSIsoft products. I am growing especially fond of Windows 2008 R2 Core as the basis for my virtual machines and I am slowing starting to migrate things over to that. You can read about my experience installing the PI Server 2012 beta in core here.