I'm currently working for a very small start up company (I'm one of 3 employees) and am generally in charge of application development, in that I'm coding our leading product all by myself. Now my responsibilities have grown to network admin/engineer, which I am far less experienced with, and I have to make the most out of the small amount of funds we have to play with currently.
Our development server, which is our only server right now, is supplied by ServerBeach. Our needs have grown to needing a second server, a production server, as the web application I'm in charge of has been licensed to its first client. I'm currently playing out three options in my head:
1. Dedicated Hosting - getting a second server through ServerBeach, which makes the least financial sense. One server is $600 a month for the power we need, so $1200 a month seems a bit ridiculous to me.
2. Managed Hosting - I've done the least research on this, but based on price to power I've found, from places actually posting their prices online, it's laughable to think we can afford it.
3. Co-Location - Here in Chicago, I can get a 1/4 cabinet (more space than we need currently, but room for growth is good) for $525 a month. This includes the necessary bandwidth. This, plus the cost of hardware, is far cheaper in the not-so-long-run, but does put more risk on our shoulders.
In options 2 & 3, the current ServerBeach dedicated server would be abandoned.
Am I making a mistake by leaning towards co-location? Am I not thinking of something? I'm asking for honest opinions. I'm pretty close to making a decision, but I would love a second opinion.
Also, as far as hardware goes, here's what I was thinking:
http://www.newegg.com/Product/Product.aspx?Item=N82E16816110025
4x
http://www.newegg.com/Product/Product.aspx?Item=N82E16822136218
2x (8 gb total)
http://www.newegg.com/Product/Product.aspx?Item=N82E16820134273http://www.newegg.com/Product/Product.aspx?Item=N82E16819117166
If we went co-location, I'd put one of these together now and throw a server of my own in there as a dev box, until the money was there to get a second machine. On the production machine, I'd be running virtualization software to isolate critical apps and make the most out of the resources.
Obviously, a dell poweredge server would be awesome, but it's money that is making decisions here. I apologize for the wall of text. Thanks in advance!
Posts
I say this because I was in a very similar position at my current (and, as of 10 days from now, former) job. I too was the only software engineer, and I too was working with a system that was outgrowing its current solution.
The problem is that they never had any intent of having anyone other than me do both programming and administration... and eventually (because they chose the cheapest do-it-all-yourself option for hosting) I ended up spending WAY too much time doing stupid administrative tasks rather than focusing on bringing the product forward. (EDIT: there were other problems as well keeping me from work, such as them having me doing tech support directly for all of our customers etc... but the point is that these administrative/support tasks can KILL development efforts if you have to do both)
My advice would be that a co-location could be fine if you have someone other than you willing to do the maintenance work. Otherwise... biting the bullet on managed hosting might even be a better solution. If you're the only software developer, the entire company can crumble if you're too busy working on maintenance tasks to move significantly forward on projects... that's what happened to us. Don't let your company make that mistake, pay that premium to have a firm separation of responsibilities and workload sharing.
EDIT: Also, if it helps, I believe Rackspace has some (maybe not cheap, but reasonable and easily expandable) solutions for a fair market price, and they provide a lot of both managed support and even expert advice. It was the solution I proposed to my boss when I realized how much of my time I was wasting with our existing solution. He balked at the price, but I think we would've been better off biting the bullet for the sake of offloading all those (important, but secondary to development) responsibilities.
While I'm strongly for co-location, I'm not so hot on the idea of rolling your own server. If you do, you're entirely responsible for repairing it. If a piece of hardware goes bad, you have to diagnose it, source replacements, and then do the actual part swapping. It may make more sense to spend more up front and get a Dell or HP server complete with a support contract. A disk goes bad? You call 'em up and schedule a tech to go onsite. You're not sure what the problem is, but you're pretty certain it's hardware? Check the Insight / OpenManage web console, it should highlight most hardware issues quickly. I know you said money is tight, but winging it with a self-built server could end up being penny-wise in the short term but pound-foolish in the long run.
If you are going to roll your own server, you really need to buy faster RAM than what you've got specced there. You've got a motherboard and processor running on a 1333MHz FSB, you will hobble them to some extent if you've only got RAM running at 400MHz. In fact, according to the spec page for that server it supports DDR2 533/667/800 Unbuffered ECC. It might be able to run with DDR2 400, or it might just not POST at all. There's a nice 2x2GB DDR2-667 unbuffered ECC kit made by Crucial on newegg that would be even cheaper than the DDR2-400 kits anyway:
http://www.newegg.com/Product/Product.aspx?Item=N82E16820148115
Or you could spend some extra for DDR2-800:
http://www.newegg.com/Product/Product.aspx?Item=N82E16820148189
I'd probably go with the 667 kit, spending twice as much on the DDR2-800 kits would only likely net you a performance increase of ~5% overall, except on synthetic RAM benchmarks.
Finally, there are three other things that would worry me with this setup. Backups, backups, oh and did I mention backups? You're going to be running your server on consumer-grade hard drives using a consumer-grade RAID controller. Under absolutely no circumstances should you even begin to think that this is disaster-proof. At a minimum, you'll want some kind of automated periodic download to two or more systems outside the colo facility. You don't have to do the whole server, since a catastrophic RAID failure (e.g. one of the mirror sets gets entirely trashed) will likely mean a rebuild anyway, but you'll want to at least backup the application and/or its settings, and any databases on there.
And I have absolutely no faith in that RAID controller, I'll have daily backups of source and databases
(encrypted) to an offsite location, replicated across 3 or 4 locations from there. Using the RAID controller that's on board in this instance is more of a convenience for avoiding downtime (and still not much faith in that) and in no way will I be relying on it. I am considering going with an external array with hardware raid instead of relying on the motherboard's own raid controller.
I'm pretty committed to going with co-lo now, the only piece that is still worrying me is hardware. I'm not too keen on going with our a-la-carte server, but I was given a budget and unfortunately, there's probably not much room for persuasion to increase that budget.
VThornheart, thanks for the warning. We're looking into hiring a secondary programmer anyways, so my job will probably go from doing the actually grunt work of writing the code (as much, at least) to design and system support. We're more or a less a virtual company, all of us working from home, and I'm the closest to the potential co-lo center, besides my boss, so I'm already anticipating a bulk of the administration falling in my lap. I'll take a look at Rackspace, regardless.
Thanks a lot VThornheart and vonPoonBurGer. I really appreciate the input. I'm probably going to spend the next few hours playing with hardware configurations so I may end up back here asking for some more input.
One other thing you may want to look at is getting some kind of IP-based KVM solution. StarTech has a single-server dongle style IP KVM adapter for 60 bucks on newegg:
http://www.newegg.com/Product/Product.aspx?Item=N82E16817707168&Tpk=sv5usbs
I have no idea if it's any good, but if you ever find yourself in a situation where you need to get into the BIOS or RAID controller, or you need to see what's going on during POST, it could be a godsend. I've used larger IP-based KVM switches, but those are usually significantly more expensive. Anyway, as far as I'm concerned you can never have too many remote connectivity pathways. If one of them isn't working it's always nice to have a fallback option.
Our current budget is based on the hosting fees charged to a SINGLE client. Even one more client greatly increases our hardware/co-lo budget, without a huge increase in performance needs. Gotta spend money to make money so I'm going to try to convince my boss to go with the following:
Powervault MD1120
- 4x300gb SAS drives, initially (3 actually implemented, the fourth running as a hot spare)
Dell PowerEdge R200
- Quad Core Intel Xeon 3360 (2.83ghz)
- 8gb DDR2 800
- Integrated RAID 1 on two 160gb hard drives (where the OS will sit)
- External PERC6E to connect to power vault, probably running RAID 5
And that's not really to far over budget (less than 10%)...if I at least get a certified refurbished powervault, otherwise I'd probably have to go with the MD1000, but that's 3U, where the MD1120 is 2U. Is refurbished a bad idea?
Good idea with the IP KVM, I wouldn't have thought of that, or rather, thought it would be affordable. I'm willing to gamble $60 on that thing working.
As a side note, I'd obviously still be doing the offsite backups under that setup.
Ya, I think that's going to be the best way for me to sell it to my boss. The reason it's only 10% over budget is because in theory, I should be able to take out some of the cost of me having to administer and troubleshoot the system, not just due to the support, but because of the OpenManager and items like that that are time savers. I'm crossing my fingers he okays it.
That way, somebody else manages the hardware, and you manage the software. You're still responsible for backups and the like, but that wouldn't be any different than if you ran your own hardware. Don't underestimate the labor costs of hardware management, installation, and maintenance. If an image on one of these services goes down, and you have a backup, you can be up in minutes. If your PowerEdge decides to eat itself, what are you gonna have to do? You're gonna have to diagnose it yourself, get somebody to come out, negotiate with the colocation facility to let the tech in, spend hours fixing it, start screwing with replacement parts, you name it. One incident like that and the extra costs of managed virtual private hosting are going to look awfully small.
That basically boils down to needs. The first two you linked are unix only, we need windows server 2003 at the least, preferably 2008. Obviously, those are only three places, but everything I've seen when it comes to managed hosting or VPS stuff, is either too expensive and barely meets our needs or doesn't come even close to meeting our needs. I would love to use EC2, and I probably will for some personal stuff, but I'm not sure if it would cut it for what we need. We're running predictive analytics, which on the database end is a RAM fiend and from a computing standpoint, we would really be best served by a Xeon quad core.
I'd love for someone to prove me a fool and to find some VPS or managed host provider that would work, but I don't see it happening from what I've found.
http://www.rackspace.com/solutions/managed_hosting/configurations/index.php
This includes:
Also Includes (according to them):
The Fanatical Support Promise (Whatever that means )
Our 100% Network Uptime Guarantee (Nice, and from what I hear of Rackspace I wouldn't doubt it)
1-Hour Hardware Replacement Guarantee (*very* nice)
Unlimited expert support, 24x7x365 (Again, *very* nice)
A Dedicated Support Team (ditto)
Full root-level access to your server (cha-ching)
MyRackspace Customer Portal (uh... whatever)
So... $450 could start you off with some nice managed hosting solutions potentially.
They offer any kind of configuration you can imagine too, however you'd have to get in touch with them for that kind of stuff.
Oh, and they also manage your backups for you, too. If they offer all this, it sounds to me that it's almost like hiring your own server admin and getting hosting for $450/month.
This is the kind of thing I tried to tell to my boss... but the unwillingness to part with $450/month costed us at least twice that month in terms of me having to maintain the system instead of develop (if not more) .