Ask HN: Anyone hosting their site on servers in their garage?
I'm all done with slow disk on cloud hosts. I have no budget to pay for a colo or a dedicated host. I'm planning on building a server with commodity components and an Intel SSD. I figure I can build a server with a quad core AMD chip, an Intel SSD and extra memory and Disks I have lying around for about $500.
A Comcast Business Broadband package gets me 22 Mbps/5 Mbps for $100 a month. Double that for 50Mbps/10Mbps.
I don't need 5 nines of reliability. I'm willing to deal with a couple of hours of down time in an emergency while we're getting off the ground.
Why aren't more startups doing this? I understand that you might want to buy decent "enterprise" hardware at some point if your site takes off. But, hardware is dirt cheap compared to the crap offerings you get on cloud hosts. Am I missing something?
93 comments
[ 572 ms ] story [ 1807 ms ] threadThose things are unlikely, but even with a backup you're going to have pretty horrendous amounts of downtime. You could lessen the impact by having some off-site secondary system ready to go at any moment, but then at that point you might as well be renting a server.
LOL now this would be a friend.
[1]: http://www.washingtonpost.com/wp-srv/artsandliving/homeandga...
backup.
if your data is gone, well, I can't help you.
For me, it's a peace of mind thing. I have better things to worry about than hardware.
Also, read the fine print on that Comcast plan. Their residential service is now capped at 250GB (not sure about business-class). In my experience, Comcast is the last company I would want involved anyways. Our service goes out frequently enough that I now have a backup WiMAX modem for my laptop.
Edit: thanks olalonde
Like you I build a fast box myself from parts and made sure I had a good broadband provider with consistent upstream speeds.
If you're idea's successful, you'll soon know about it.
However, while I use extremely cheap hardware (i build a server for about $300 retail quantity one), the power supplies will fail. The time that they choose to fail will not be in alignment with your choice of time to fail. If you live in an area subject to power failures, you are down if it lasts longer than say 30 minutes. If someone in your neighborhood sucks too much bandwidth, it is likely to pull from your allotment. If your lawnmower or the neighbor's lawnmower cuts the cable, who knows how long it will take to fix.
I have several UPS units essentially for transient protection, and two or three internet providers (cable plus dsl) and a verizon cellular internet access.
If I were looking for users in the hundreds or thousands or more, I would certainly go for a low-cost provider with a good stack. These are not that expensive and I hear that many do an excellent job.
Do you want more?
- because a good ssd costs A LOT and ssd's have some Disadvantages http://en.wikipedia.org/wiki/Solid-state_drive#Disadvantages - because two (or even four?) 10k rpm hdd's (you will need raid after all, right?) costs pretty much
Do you still want more?
- because a VPS is pretty cheap http://www.slicehost.com/ :)
$135 / month buys you two 1.5GB Linode instances or one 2GB Slicehost instance (I use Slicehost but they seem to be much more expensive compared to Linode).
The reason I see renting VPSs, especially at the beginning, as a smart thing is that you are postponing the actual hardware costs towards a later time, when you are (presumably) profitable. And if you decide to cancel the whole thing, it's just a matter of shutting down the instances and that's it. It just seems much more convenient.
Now, if you already have the hardware and you trust the electricity/bandwidth provider you could self-host. But investing time and money in hardware and self-hosting might just be the one thing that stops you from doing the right job software-wise. (Of course, unless your service depends precisely on the fine-tuned hardware that you might manage yourself, but I don't think you are in this situation -- it's just a cost discussion).
It's about getting an order of magnitude more CPU ( Quad ore at 3 Ghz rather than single compute instance on EC2, which is spec'd at a single core 1.0 to 1.2 Ghz Opteron or Xeon from 2007. Ref: http://aws.amazon.com/ec2/faqs/#What_is_an_EC2_Compute_Unit_.... I need the extra CPU for what I'm doing.
But, the killer feature for me is about getting several orders of magnitude better on disk IO by using SSD's. I'm doing a ton of relational queries for my site, and the IO speeds on EC2 are killing me. Linode or Rackspace Cloud might be a bit faster than EC2, but the speed differential between SSD's and rotating disk is huge.
Running my datastore off of SSD's rather than spinning disks allows me to stick with postgres as my db. While sexy and quite fun, I'm very leery of choosing a NoSQL solution. I really don't want to spend the extra development time bolting the relational features I need onto a non-relational database.
So, while it might take me time maintaining the server, it's going to save me a crap load of time.
That way you pay 103 EUR/mo (about 134 USD) and skip a lot of headache.
Note that you might want to check if hosting in Germany has any legal implications for you - German data protection laws are vastly more strict than the US, say.
1. The company is so un-automated that it actually needs considerable human intervention to prepare a server and doesn't actually bother to include this basic operation into their total cost (they sell servers after all).
2. It's a trick to squeeze at least the 150 euro from you. Because if I find out in the first months that their service is sub-par I can just cancel my subscription but I'm not getting my 150 euro back.
Serious hosts will give you free trials (before you pay the setup fee) any time, unless you ask for special hardware that they themselves have to buy first.
Personally, I address this by having pre-payment discounts. cover your account for a year and I knock off 20% (and usually use the cash to go buy a new server) - I also allow people to sign up and pay monthly (at a higher rate, of course) but with my current price /discount setup, the majority of my income is from pre-paid customers.
Perhaps setup fees /kinda/ make sense if you are some high-quality name in the business and people will know they are staying long-term. But if I see a well-known company without setup fees and your company with a setup fee it won't take long to decide.
What you mentioned is far more decent: a bonus for payment in advance but I don't see how they expect to charge me the equivalent of 3 months in advance just to test them out.
Really, it's less about margin, though, and more about credit. If I had more, it wouldn't really matter... but I don't, so it does.
for a while I was renting out whole servers at nearly co-lo rates... with the catch that the customer needed to pay a setup fee that would cover the parts cost of the server up front.
It was pretty popular, actually; I only stopped doing it because it put me in a bad place as a provider... thing of it is, sometimes you really do need to fire your customers. I don't want to be in a position, though, where I get a bonus for firing my customers.
but yeah, you do have a point, if he's willing to spend that kinda scratch on connectivity he can get a box co-located. From what Ive seen of the market around here, he's going to be a bit over $100/month, (but, if you are way cheaper than that... seriously, lemme know. I get people pestering me all the time about co-lo and I usually send them away.)
But yes, power IS one of the more costly bits of running a datacenter and I could see where some sites would expect you to run no more than a nite-lite on the power that is included.
that sounds like a challenge to me, and is the opposite of my experience.
I used to run a bunch of these:
http://www.supermicro.com/Aplus/system/1U/1021/AS-1021TM-T_....
with high power CPUs, the goddamn thing would draw four amps. with the advent of socket g34, quad-cpu systems now cost no more than 2x dual-cpu systems, even without the 'two in 1u' bit:
http://www.supermicro.com/Aplus/system/1U/1042/AS-1042G-TF.c...
where are you located? I'm in the bay area, (where power is super expensive) and my experience has been that power doesn't average out. people keep wanting to bring in ancient dual netburst Xeon space heaters, "It's only 1u!" even though the goddamn thing eats two and a half amps.
this, you see, is why I don't do co-lo anymore.
Now, it's possible that power is just so much cheaper for you than it is for me that it doesn't matter... either way, I want more details. seriously, right now I'm recommending other co-lo places on my co-lo order page... http://prgmr.com/san-jose-co-location.html I know the guy running rippleweb is in sacramento, and is paying around 1/3rd of what I do for power.
Massachusetts.
you are wasting valuable resources for things that might not happen. Just spend $10/mo on a shared host and you'll be good to go.
if your product is in such a high demand, that it crashes from the traffic...then you can quickly spend a few bucks on a dedicated server. Until then preparing for millions of users is just stupid, since chances are, you'll only get a few hundred users that first week/month
Agreed. And what's the marketing strategy? If there isn't one, then the business will stay small.
See also http://news.ycombinator.com/item?id=1564897
It's not necessarily a bad idea, but I'd probably not do it again now that cheap VPSes are a commodity. Outsourcing the physical management allows me to not worry about assembling hardware, backups, power outages, network outages, burglary, fire and flooding. Neither will the server leave users hanging every time someone on the network downloads alot of data.
Unless you're doing some serious processing, a cheap Linode VPS should hold you over until you're profitable enough to upgrade to some real hosting.
Over the long run, a hosting company should be able to keep your website up and running "in less time", "higher quality", and "cheaper" than you can.
If your business can host websites more efficiently and effectively than a hosting firm, maybe you are in the wrong business and should become a hosting company for other firms?
My particular use case is that I need performance and cheap computing power, and I'm willing to sacrifice a bit of reliability to get there.
And, I'm sure that over the long run, you're right. A hosting company will be a better choice.
It's an option though if in your context, you could tolerate a week (not a couple of days) of downtime, and buy everything again!
Oh - and energy/piece of mind is I believe the scarcest resource for an entrepreneur, too :)
Yeah, I have a server in my garage, AND Comca$t business class (30up/5down with 5 ips for $79 here in Miami), but we only run dev and staging sites on it. Production is always outside.
However, IF you already have the comcast business class, then buy a cheap quad core dell at BestBuy for $699, they generally come with 8 Gigs or ram and 1 Terabyte hard drive. Thats our development machine. Its super-quiet and runs cool in the hot garage.
The only problem is Comcast goes down here a bit too often for my liking. They're maybe down or slow around 10% of the time.
It just hosts an info site and blog for my android app on a pretty basic wordpress site that I have backed up. It's also a nice dev/filehost server. I figure I'll deal with scaling if I ever get to it.
The most visitors I've ever had is maybe 50 a day and who knows how many of those are robots. I wouldn't want to run any extensive server side code or an actual web app on it though.
1- The cost. Right off the bat you're spending $1,700 that would probably cost you nothing if you hosted it with google.
2- The administration time - why spend any time configuring or administering servers? It doesn't benefit the product when you get this essentially for free.
3- The concerns about security, reliability, single point of failure issues, etc. These may not be critical now, but eventually they will be important and that means you'll have to move. Why not start on App Engine where this is taken care of?
4- Scalability. Again, not something you need now, but rather than re-architect your site and move it later, why not use App Engine from the beginning?
From my perspective, App Engine is such a compelling value proposition that there's no reason not to build your site there. If google somehow becomes untenable, you can host app engine sites on unix using open source software.... and the appengine SDK is open sourced itself. So you're not locked in, other than the "lockin" of providing free service until you get big and a great platform.
The negative replies here are one reason. Competitive advantage may be another.
Personal example: I had a dedicated rackspace server for about $650/month. I was doing basic web hosting, but also streaming video via Flash Media Server.
Now the video server and web server need not be on the same physical hardware. No more than 50 users simultaneously stream video. However, bandwidth overages pushed that monthly fee to over $1600 several months ago (and that was only two weeks into the month).
So, I switched from rackspace to some commodity php/mysql all-you-can eat webhost. I then set up additional video servers on Verizon Fios Business package, with a 35/35Mbps connection.
Now the video is not crucial to the success of the website, more like icing on the cake, so some downtime is acceptable in my case.
However, I do have a UPS that can run the server for approx. 14 minutes underload, which is enough time for me to manually switch to a backup generator.
Of course, I had all these things already (UPS,generator).
For me, it was a no-brainer. $150/month with 5 fixed IPs and I provide my own physical hardware PLUS unlimited bandwidth, versus $650/month.
The momey saved can be spent on hardware or software. As traffic increases beyond the capabilities of the Fios connection, I may consider rackspace again.
OTOH, I have several buddies that would be willing to colocate additional hardware at their FIOS enabled locations.
It simply depends on your needs.
Be careful with Comcast business, though. I believe they have some pricey install fees for business accounts, unless you sign a 3-year contract.
BTW, it is not in the garage, it is in a sideroom w/ it's own unit AC.
If/when it catches up, it will be time to externalize. I did something similar (~ same costs) for a project that was a huge gamble - risky, but with excellent returns if it succeeded. Turns out it didn't work, which was the most predictable outcome, but I lost much less with home hosting that with dedicated hosting.
Some people will say that's not trusting one's project. I disagree - like you allot time, you should allot a budget to any given project.
It should succeed or fail within the given budget (which can always be adjusted depending on the situation) unless you want to go bankrupt for a bet that failed.
One tip: if you're not a cable TV customer (just data), when they connect you, see if you can get the tech to physically label your connection in the junction box out at the street with something like "Business Broadband Customer". We were disconnected at least twice by random Larry the cable guys working on neighbors' stuff. He'd see us connected, but we wouldn't show up as a cable TV subscriber so he'd disconnect us. After the second time, I got our guy (same company, but different division) to label our connection and it stayed connected. That solved our longer outages, but we still had shorter ones.
I needed a good server for a custom made webapp (8G RAM minimum, 500 MB with a spare, quad core 64 bit - that was a little expansive in 2007). The cost analysis revealed a low end Dell with a decent CPU, loaded with RAM + dedicated "home" hosting was the most reasonable option, compared to VPS or rewriting the app.
I paid 80 Eur/month for 100 Mbps symmetrical - add that power and lost rent costs (it was in a dedicated room of my appartment) for like ~ 150 Eur/month total.
The big advantage was a full control - I could do what the hell I needed with my hardware. It doesn't take too much time to do administration as you reported.
The only drawback was the Orange Livebox - a brain dead box sold to home users (100 Mbs/20 Mbs for 50 Eur/month) that had far too munch problems for any real use.
Seeing the downtime in the first couple of months was approaching 10 minutes a day, I did hook the optic fiber adapter RJ45 directly to the server. With some reverse engineering, running ppoe on a specific VLAN worked like a charm until this june, when I decided to pull the plug.
The project didn't catch up, it was very innovative in 2006, it is only moderately innovative now - time to kill it (parts of it will be used for a non profit help for Haiti)
Current hardware costs make it more logical to rent instead of build/host/maintain at home.
I purchased an older HP Proliant server off eBay with 12 drives for just under $600 shipped for everything. I installed VMWare ESXi on the machine and then created 5 virtual machines. One machine for an email server, one for database server, one for web, and two staging machines for database/web server. Total cost for those machines was zero, and thanks to virtual appliances I can expand.
At that point I have redundant power supplies, raid hard drives, and plenty of backup swaps. I also can configure the server whenever to allocate resources as needed to the machines running. I can quickly copy and create a new server whenever I need one, which is really nifty.
In the end the only down-time I have is when my power is totally out. If I host I usually have about a 97% up-time excluding regular maintenance. The machine running constantly makes less impact than my Dell XPS 720.
You could add an auto-switchover generator to that setup for less than $1.5k.
Thanks for the comment.
For example, if every page asset has an extra 1 second latency, then you are adding several seconds to your base page load time as all those 1 second delays stack up. First the main frame has to load, then if you have a subframe, the subframe has to load, then finally the content in it. Nest frames or other content, and suddenly your site seems sluggish for a single user and you're nowhere near your bandwidth limit.
I've had Fios and Comcast and on both latency wasn't great. Latency on their networks varies widely by location and is harder to keep consistent and build a good marketing message around, so they don't sell on latency.
L3 latency is usually a small fraction of the initial website load time. Inline the js + css, strip whitespace, enable gzip, use memcached, get a server that can fit the whole DB in RAM, etc.
Preventing packet loss is very important, though (a TCP retrans adds 2-3 seconds). I do think datacenters have a real edge there.
Instead of going nuts and hosting in my garage, though... I just changed hosts. A rack on a colo would make more sense than the garage route, too.
to start, your cheap sata disk is going to max out a 100Mb/sec for /sequential/ transfers. Now, cut that in quarters, because two different guests streaming data to the disk make sequential random. so you have 25MB/s. double it, as they are probably raid-10ing the disk (at least, that's what I do) so we have a best case 50MB/s to share.
Now, they are probably in a box with 32GiB ram. say they give a gig to the dom0, and you are on a 512MiB guest. that means you are sharing with 62 total guests. So your fair share is less than 1MB/sec of hard drive transfer.
Of course, best case, nobody else is using the drive and you get all 200MB/s, but with 60 guests, that won't happen often.
Hard drives suck. Sharing hard drives makes them suck a lot more.
Note, I know almost nothing about the actual slicehost setup; what I'm describing here is guesses about their setup based on what I know about xen and what I know of my own set up.
My understanding is that Linode is perceived by light users to have better I/O throughput, but this is because they monitor and take action against heavy I/O users. (I think this is a good idea, and may implement it myself)
My 2 year old, nothing special home desktop gives me 72 mb/s. I expect that a pricey VPS will perform at least as well. If not, I could get a dedicated server for $40 more.
Running hdparm, slicehost gave me 3-48 mb/s. When it was down under 20, my server was choking doing the simplest tasks - like say, logging into ssh while actually serving HTTP requests. Performance was sucking. Customers complained. I tried tuning my DB. Nope, it wasn't my fault. System load ranged from 3-50 for no apparent reason.
The same test on Linode yields 98-165 mb/s. I moved the server to Linode (saving $80 a month!!), have added new features and increased usage, and performance remains excellent. No mysterious slowdowns, no high system load. Everything hums along without a hitch, proving to me it is Slicehost's problem, not mine. Thank god it is theirs to deal with now. This caused me a lot of stress and I'm so glad to be on a host that is giving me what I am paying for.
I'm sure you know more about this from that side, but this is my experience as user.
3mb/sec is unusable for a moderately busy server. The fact that other hosts give better performance says all I need to know.
If they gave a steady 30-40 mb/s, from your calculations, that's what I'm paying for and yeah, that's probably all I need. The unsteadiness, though, and the dips to near nothing - that is unacceptable. I'm not a hobbyist. This is a business, other businesses depend on us.
Have you ever gotten a warning about using too much IO from linode?
ok, so let's go back and see the math again... so there were 14 systems or so on that 32GiB system, so if everyone was going at the disk, you'd get what, 3.5MB/sec- about what you were seeing.
I'm just pointing out, when you 'virtualize' a hard drive, you are sharing a resource that really doesn't share very well. you were getting your 'fair share' of the server at slicehost; it sounds like linode just does a much better job of keeping everyone from trying to use all available disk at all times.
That's what is frustrating for me. We don't have a demanding application. It's well written and tuned, but I was having these problems, and as far as I knew I was paying enough to not have such problems. Maybe we're on a spacious server at Linode or were graced with idle neighbors... all I know is, the system load on Linode is muuuch more stable, (and low!) even though our system is doing twice as much. And, it costs half as much.
I suspect the differences you saw after moving had to do with how active the other users of the disk were. this may have been chance, or it may have been Linode's policy of pro actively doing things about heavy disk users.
* Redundant electricity/generators * Real HVAC systems (also on generators) * Fire suppression systems * Redundant connectivity * Connections that can handle high levels of concurrency * Secure facility
Never underestimate the impact of downtime to your business' viability. At any given moment, your service will be "critical" to someone. Often times, the loss of confidence can't be regained, and to be brutally honest, that loss of confidence would be justified given that you think it's ok to run your hosting out of a garage.
Given how small the cost delta is between hosting infrastructure at your home versus paying for something like a VPS, you're assigning a very small value to your customer's importance. As a customer, how am I supposed to feel about that? That is probably the single greatest reason more startups aren't doing this. You have to fight and claw for every customer you get. I'm not willing to have them walk out the door because I decided I could save $70/month on hosting by doing it from my garage. If you can't sustain the hosting costs required to run your business today, you won't be able to do it six months from now. Time to reassess your model.