A Few System Design Principles

This might seem like an IT specific post, but stick with me. I think there are principles that can apply to any type of system you're designing and be helpful. First, a little background. Upper Room started as a sub-minisry of Christ Presbyterian Church. As a sub-ministry, we've been utilizing the IT resources of CPC since our inception. And for the most part, that's been fine. However, with the planting of Upper Room as an independent church, we had to start looking into our own IT system. As the resident geek (and with no budget to hire a real IT guy), the task fell to me. And I'm not completely unqualified, I've been doing IT related stuff on and off since 1991 when I convinced my then employer to fire the company we bought our new computer system from and promote me to IT Director. And that worked out OK, so...

Anyway, I digress. The task at hand was to build a new IT system. Our needs are really pretty modest. We need to access the internet quickly and without at lot of barriers. We need to share and store some files on a central drive accessible by all. We need mail and some basic calendar sharing. And we need a way to back up our laptop and desktop machines. As with a lot of things, there are many different ways we could accomplish that. And therein lies the first principle.

Decide what the real priorities are.

I spent several hours with the church leadership trying to figure out exactly what the real needs where. Not the stated needs, but the real ones. The biggies turned out to be network backup, e-mail and calender sharing (actually, that last one was for one person only, but he's the boss so...). The trick to this step is that sometimes people will say one thing, but mean another. For example, I know of one church that wanted to ban all cords from the stage. They wanted a clean look, and wanted to go all wireless...for everything. That was the stated need. Then they were presented with the cost. The real need turned out to be a neat stage. After the sound guys learned this, they started dressing cables neater, and keeping the stage tidy. As far as I know there hasn't been a huge desire to go all wireless anymore.

Next, determine the timeline.

If I were looking at a short-term solution, I could accomplish the above goals pretty simply. Finding a solid internet connection isn't that hard, and a garden variety firewall would keep out most of the bad guys. We had already switched to Google apps for our e-mail, and it's working well enough, so that's solved. I could easily throw a simple NAS (network attached storage) drive on the network and call that shared storage. And I could have picked up some inexpensive USB drives and enabled Time Machine.

However, we're in a very unique situation right now. We are not really a church plant, because we have a staff of 8-10 people. And we've become very used to things working at an enterprise-class of service. And since we're "planting" with probably 600-700 people on day one, we can expect some significant growth over the next year or two. So this means I can't lowball the system. Even if I only spent a few thousand dollars on some hardware, it would be largely wasted when we upgraded to a "real" network system in a year or two. We're also in a situation where we are being graciously supported by CPC, which means we have a few more dollars at our disposal than we might in a few years. So I had to start thinking long-term. What type of system would work for us in 3-5 years, if not longer?

Immediately, I thought XServe. It's way more hardware than we need right now, but it will take a while for us to outgrow it. I also started thinking of going with a hardware RAID 5 for network storage and Time Machine backup. Storage is pretty cheap right now, so I budgeted for 4.5 TB. It's probably 3-4 times what we need right now, but I'm thinking about what will work in 3 years. I also started looking at a hardware-based firewall that is designed to protect small enterprises. I put together the budget and turned it in. Amazingly, it was approved! Which brings me to my next principle.

Well almost. I'll bring you that one (and a few more) tomorrow.