So far, I have nothing but praise for Hetzner. I've only had to contact support once, when one of my server's hard drives was shouting out SMART errors and looking like it was going to die shortly.
I got in touch late on Sunday night, discussed the problem with a couple of their support staff, and by midday on Monday morning, all was fixed, a new hard drive in place. Really quite incredible service, especially considering the price.
I had almost exactly the same experience. Also a hard drive that was starting to die on us on a Sunday night and they had it replaced within the hour. We just had to reboot and start the raid mirror again. 6 minutes downtime in total.
You can get servers with ECC RAM. All our servers there are 16 GB ECC RAM. I have been with them for a few years now and they have always acted very promptly on network issues (most of the times you don't even notice them)
If you have a single-rack network, now your single point of failure is the rack switch or PDU. (This is why e.g. HDFS has rack-aware mode.)
If you have a cage, it's the datacenter (peering, power, environment, physical security.)
Do you need to care about these things? Probably not. (But maybe you do, and you happen to care less about price, or database write latency/throughput/predictability, or...) Pick whatever set of tradeoffs works for you.
You can have a single rack with redundant PDUs that comes from two distinct power lines (ups etc..). Then you can have networking devices with redundant power supplies or use single-power stackable devices and multiple ethernet connections. Same for servers, redundant power supplies or servers in some HA configuration
The article makes some good points and is a good starting guide to setting up a dependable stack but I think the author downplays the skill, cost and time that something like Heroku can save. He states "not including developer time ofcourse[sic]."
For those not able to afford a fulltime sys admin that can be a significant expense and bring in unnecessary risk.
Cost: Cheaper, because you're doing the work yourself and only paying for a VPS or two.
Time: A weekend.
If you're running a start-up and you can't hire a sysadmin, yes, managed hosting is a good idea and will net you a reliable system for a decent price. But if you're spinning up test/hobby projects which aren't mission-critical, take the time to build your own stack/servers. It takes a minimal amount of time and energy and will give you valuable experience you can use for the rest of your career.
I don't think you necessarily need a fulltime sysadmin - contract sysadmins do exist (hi!) and systems like Chef can be readily understood by most developers.
If I was moving a start-up from Heroku to self-managed hosting (which could even just be Linode VMs!) I'd include time to train them on what I was doing, and why, and I'd probably stay on retainer for emergency support.
Personally, I'm also more than happy to chat to local start-ups informally and share my experience. (And if anyone in Scotland, particularly the Edinburgh area, wants to take me up on that, my email's in my profile blurb.)
One thing to note about Hetzner, in addition to high US latency times, is the initial setup cost. For the EX4 (core i7-2700, 16 GB ram, 6 TB HD, 49 euros/month), the one time setup was 149 euros. However, I just checked and the setup cost for this server has dropped to 49 euros. I'm not sure if this is promotional or permanent.
I can put in my exp. with Hetzner. We had a RAM that was failing and got replaced once they ran the check. We did have a backup server to take up the load, in the mean-time so wasn't a problem.
IMO a dependable stack requires a firewall in front of your servers. Sure you can configure software firewalls on all of your servers, but its nice to have an outer wall as well(defense in depth and all that). If hetzner started offering that and private vlan support they would have a really killer offering.
I'm also concerned with the lack of a load balancer. I guess you could do something with a DNS service like Cloudflare, but that seems to be a deal breaker for good uptimes.
I had a VPS at Hetzner I replaced my Linode with. Really liked it. For the same price, though, you can get a really underpowered dedicated server at kimsufi.ie through OVH with more ram and HD space.
Both Hetzner and Kimsufi offer dedicated servers which are really in the same scale. The 49€ server, which is the top of the Kimsufi line and the bottom of the Hetzner line, are virtually the same server except one has 2To disk and 24G RAM, while the other has 2x3To (RAID1) and 16Go.
If you mostly have users in Europe like I do, then this is a no-brainer. I have been using it over 2 years and so far only two glitches: once one of HDD's simply vanished from my RAID array, and the other was when the key switch burned out in datacenter where my server was. About 30 minutes downtime and that was all.
I switched 5 different providers before settling with Hetzner.
I think that is a little unfair. The physical rack structure generally provides two things, a networking switch and power hookup, and both are two of the more reliable things that datacenters offer. In order for your application to survive a rack failure (either power cord unplugged or network switch breaking) then you need to have fully double every necessary part of your application on another rack, which is going to be pretty inconvenient.
Companies like Amazon and Google no doubt spend a lot of time thinking about the physical locations of servers and how failures might affect them in terms of uptime and data loss, but for your average small application I think it is ok to accept very small risks that will result in downtime as opposed to spending a massive effort or engineering around it.
I also appreciate that services like Heroku hand stuff like this for you, but what I'd be really interested to see is take your average dedicated machines at your average datacenter and compare the uptime to a service like Heroku. Because while dedicated machines have failure cases (power outage, networking switch breaks, one of your machines hardware dies, hosting company has networking issues, etc), AWS/Heroko have them too (AWS outage, DDOS attack against Heroku, AWS/Heroku engineer makes a mistake, etc).
I see the everything below the new EX6S has dropped by about 90 Euros in setup fee. This is great news! I think I'll buy 6!
People have brought up reliability and that they are using consumer grade hardware. This is an issue if you have SPOF. If you have a fully distributed system (rare these days, for sure) it isn't much of an issue.
My current plan is to use DNS and each box is a full stack. (web app platform on top of riak with authoritative DNS on the box.) So a web request might look up example.com and get back a list of authoritative name servers NS1-6.exampledns.com When the client then does the query to one of those auth servers the auth server is in the cluster and returns the list of other servers in the cluster ranked by load (Eg: multiple A address response for the query.) Then when the client goes to connect to the web server it will hit the least busy node.
I wonder, though, if there are 5 authoritative name servers listed in the root for a given domain, will the root return them in the same order every time, such that my first authoritative dns server (the one listed first at the domains registrar) will get most of the DNS load? Or is there a way to have the root name servers randomize the order of the authoritative servers they give back to the client?
(Yes all this will be open source, eventually. I've learned not to make promises about when-- soon as its viable outside the lab.)
DNS load is typically fairly light, because it's just a few packets per hit. You certainly don't need 6x redundancy, and if one server gets most of the traffic it's probably no biggie.
1) You shouldn't expect even or consistent load balancing across servers. Some caching DNS servers (such as those at large ISPs) have very many downstream consumers, and they won't do any randomization. If a large DNS server sees a new order of records, it might trigger a synchronous switch of 10% of your customer base from one server to another. This will cause spiky traffic.
2) You can't rely on any kind of sticky sessions. This may or may not be a problem, and many load balancers drop this guarantee as well for performance reasons, but it is certainly possible that a client may see a DNS records TTL expire and switch to a new IP. If you aren't prepared for that you may start dropping sessions.
DNS doesn't play particularly nice when you try and load balance it. You end up, essentially with issues with end users caching particular ip addresses and either failing when they shouldn't or causing load imbalances on particular servers that you can't seem to fix.
You probably want to have an external dns host returning two ip addresses for a haproxy or LVS cluster, which you then route into your actual web tier.
IIRC the way to get clients to round robin connect to different servers is to have your DNS server(s) return multiple IP addresses for a given domain.
I have no idea about how authoritative name servers work, but I'm assuming it's a prioritized list. I'd probably have all your authoritative servers provide all the IP addresses in any case.
perhaps somebody should put some scripts together and sell them? I wonder how well would CloudFoundry run on this. The biggest concern is the database, since that'd be the SPOF that is hard to handle.
Hetzner is comparable to Heroku and AWS, except that you have to do your own rack buildouts, private IP subnets, load balancing, redundancy zones, and CDN.
[+] [-] mootothemax|14 years ago|reply
I got in touch late on Sunday night, discussed the problem with a couple of their support staff, and by midday on Monday morning, all was fixed, a new hard drive in place. Really quite incredible service, especially considering the price.
[+] [-] jdvh|14 years ago|reply
Their customer support is terrific.
[+] [-] alberth|14 years ago|reply
1. Uses desktop grade hardware (i.e. no ECC, single socket, limited networking, etc)
2. Is located in Germany (i.e. high latency for your US user base).
Don't get me wrong, the pricing Hetzner provides is unbelievable.
I just wish a US based hosting provider was available that used server grade component who was even 2x Hetzner price because it'd still be a steal.
(For those of you unaware of their pricing, you can get a Xeon E-3 with 32GB of ram for just 79 euros/mo.)
[+] [-] mootothemax|14 years ago|reply
To be fair to them, they do offer servers with ECC for a (slightly) higher price:
http://www.hetzner.de/en/hosting/produktmatrix/rootserver-pr...
[+] [-] prateekdayal|14 years ago|reply
[+] [-] rmaccloy|14 years ago|reply
If you have a cage, it's the datacenter (peering, power, environment, physical security.)
Do you need to care about these things? Probably not. (But maybe you do, and you happen to care less about price, or database write latency/throughput/predictability, or...) Pick whatever set of tradeoffs works for you.
[+] [-] Ecio78|14 years ago|reply
i'm not talkin about Hetzner, but generally
[+] [-] jnorthrop|14 years ago|reply
For those not able to afford a fulltime sys admin that can be a significant expense and bring in unnecessary risk.
[+] [-] peterwwillis|14 years ago|reply
Cost: Cheaper, because you're doing the work yourself and only paying for a VPS or two.
Time: A weekend.
If you're running a start-up and you can't hire a sysadmin, yes, managed hosting is a good idea and will net you a reliable system for a decent price. But if you're spinning up test/hobby projects which aren't mission-critical, take the time to build your own stack/servers. It takes a minimal amount of time and energy and will give you valuable experience you can use for the rest of your career.
[+] [-] semanticist|14 years ago|reply
If I was moving a start-up from Heroku to self-managed hosting (which could even just be Linode VMs!) I'd include time to train them on what I was doing, and why, and I'd probably stay on retainer for emergency support.
Personally, I'm also more than happy to chat to local start-ups informally and share my experience. (And if anyone in Scotland, particularly the Edinburgh area, wants to take me up on that, my email's in my profile blurb.)
[+] [-] pajju|14 years ago|reply
[+] [-] moonboots|14 years ago|reply
[+] [-] aangjie|14 years ago|reply
[+] [-] alberth|14 years ago|reply
[+] [-] btb|14 years ago|reply
[+] [-] jarito|14 years ago|reply
[+] [-] _gfrc|14 years ago|reply
[+] [-] zschallz|14 years ago|reply
[+] [-] Wilya|14 years ago|reply
[+] [-] goatforce5|14 years ago|reply
[+] [-] tluyben2|14 years ago|reply
[+] [-] babuskov|14 years ago|reply
I switched 5 different providers before settling with Hetzner.
[+] [-] rdl|14 years ago|reply
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] ilikejam|14 years ago|reply
[+] [-] birken|14 years ago|reply
Companies like Amazon and Google no doubt spend a lot of time thinking about the physical locations of servers and how failures might affect them in terms of uptime and data loss, but for your average small application I think it is ok to accept very small risks that will result in downtime as opposed to spending a massive effort or engineering around it.
I also appreciate that services like Heroku hand stuff like this for you, but what I'd be really interested to see is take your average dedicated machines at your average datacenter and compare the uptime to a service like Heroku. Because while dedicated machines have failure cases (power outage, networking switch breaks, one of your machines hardware dies, hosting company has networking issues, etc), AWS/Heroko have them too (AWS outage, DDOS attack against Heroku, AWS/Heroku engineer makes a mistake, etc).
[+] [-] tmrhmd|14 years ago|reply
[+] [-] davyjones|14 years ago|reply
[+] [-] prateekdayal|14 years ago|reply
[+] [-] nirvana|14 years ago|reply
People have brought up reliability and that they are using consumer grade hardware. This is an issue if you have SPOF. If you have a fully distributed system (rare these days, for sure) it isn't much of an issue.
My current plan is to use DNS and each box is a full stack. (web app platform on top of riak with authoritative DNS on the box.) So a web request might look up example.com and get back a list of authoritative name servers NS1-6.exampledns.com When the client then does the query to one of those auth servers the auth server is in the cluster and returns the list of other servers in the cluster ranked by load (Eg: multiple A address response for the query.) Then when the client goes to connect to the web server it will hit the least busy node.
I wonder, though, if there are 5 authoritative name servers listed in the root for a given domain, will the root return them in the same order every time, such that my first authoritative dns server (the one listed first at the domains registrar) will get most of the DNS load? Or is there a way to have the root name servers randomize the order of the authoritative servers they give back to the client?
(Yes all this will be open source, eventually. I've learned not to make promises about when-- soon as its viable outside the lab.)
[+] [-] sirclueless|14 years ago|reply
There are a couple of caveats to your load balancing strategy. With enough headroom, these probably aren't total game breakers, but you should be aware of them. More at http://serverfault.com/questions/60553/why-is-dns-failover-n...
1) You shouldn't expect even or consistent load balancing across servers. Some caching DNS servers (such as those at large ISPs) have very many downstream consumers, and they won't do any randomization. If a large DNS server sees a new order of records, it might trigger a synchronous switch of 10% of your customer base from one server to another. This will cause spiky traffic.
2) You can't rely on any kind of sticky sessions. This may or may not be a problem, and many load balancers drop this guarantee as well for performance reasons, but it is certainly possible that a client may see a DNS records TTL expire and switch to a new IP. If you aren't prepared for that you may start dropping sessions.
[+] [-] asharp|14 years ago|reply
You probably want to have an external dns host returning two ip addresses for a haproxy or LVS cluster, which you then route into your actual web tier.
[+] [-] pixelcort|14 years ago|reply
I have no idea about how authoritative name servers work, but I'm assuming it's a prioritized list. I'd probably have all your authoritative servers provide all the IP addresses in any case.
[+] [-] teyc|14 years ago|reply
[+] [-] MidwestMuster|14 years ago|reply
Hetzner is comparable to Heroku and AWS, except that you have to do your own rack buildouts, private IP subnets, load balancing, redundancy zones, and CDN.
Is that right?
[+] [-] moonboots|14 years ago|reply