Ask HN: Is the reseller hosting market worth touching?

3 points by starter ↗ HN
I've long wanted to give the managed CMS hosting market a shot. That plus basic file backup services. Is it worth my time? Why or why not?

Short plan: Automatic hosting site setup using bargain servers or cloud servers. Users with Wordpress/Joomla/Drupal hosting needs are offered managed hosting for $5-$15 per month.

Any drawbacks I should know about?

9 comments

[ 2.7 ms ] story [ 33.7 ms ] thread
I can think of a few drawbacks:

- Extremely commoditized, people shop around for hosting providers based on price and included features, so you better have a good offering

- Your service must be top notch and you need to be available to fix things pretty much instantly

- Reliability when reselling services is not in your control, so... good luck with that

Best of luck!

Thanks for your perspective! Right now, my life is pretty calm - not too much drama & plenty of time for new projects. Maybe I'll dive in for the fun/experience.

Cheers!

Realize that you can't compete on price. There are thousands of bargain hosting companies that spring up every day offering $3-$10 hosting and unlimited storage/bandwidth/domains. Of course, many of these go out of business, or kick out customers who actually get a fair amount of traffic. You have to approach from a different angle.

Look at wpengine.com. They are targeting the WordPress blogger who has outgrown shared hosting but doesn't want to get into the server admin business. For $50/month, they handle caching, scaling, database replication, backups, CDN, and staging.

Your best bet would be to offer better service and scalability at a higher price point. There is a big market out there for site owners who are in between shared hosting and running their own server. Just because I get 100,000-300,000 unique visitors a month doesn't mean I know my way around a Unix command line. That's also the market that can afford to pay $50 a month for hosting.

WordPress/Joomla/Drupal are good targets, because if your customers are running on shared hosting, they are likely putting stress on their overloaded servers, and seeing outages/slowdown/threatening messages from the hosting company. You can give them a huge performance boost simply by moving their database to a separate machine.

The next step is to put a basic cache in front of the app server (Varnish, Squid, nginx). Watch your server load drop when logged-out, anonymous users hit the cache instead of an overloaded Apache machine pulling double duty as a MySQL box.

With Apache on its own machine, look into an opcode cache, and you can also offload static file serving to a CDN. You can do this easily by giving your customers a static path to change in their code (e.g. cdn.yourhostingdomain.com). You can cname this to Amazon CloudFront or MaxCDN, and then set the origin to a dedicated static file server (running nginx, or Varnish+Apache). Store the source files on Amazon S3.

You could run this whole setup with a handful of servers on Amazon or RackSpace, Linode, etc. for a few hundred $'s a month, and handle a few hundred to a few thousand clients paying $30-50 a month for a nice profit.

...until your cloud provider has a big outage...

Thanks for the overview! Exactly the kind of research stuff I need to know about before diving in. I see now that this is one of those things that comes down to superb quality - which might be difficult to guarantee if using cheap servers.

Also, thanks for the tip on having a dedicated database server. Makes complete sense yet I had no clue CMS sites could be so demanding. I'll need to learn CDNs next.

There's always a catch. =) Thanks for your time.

If you are interested in CDNs, look at Amazon CloudFront or MaxCDN (there are others, but these are the easiest to use, and they're cheap). Look for a feature called "origin pull" rather than push. Amazon can be set up in about 5 minutes. Here's how it works.

Lets say you have a basic website at www.domain.com. All of the files are on a single server, so when I request a page, i get www.domain.com/index.php. Apache fires up, PHP does its thing, fetches some data from MySQL, and presents a page. My browser sees that the HTML needs www.domain.com/style.css, script.js, and a dozen images. So it requests them from that same overloaded Apache/PHP/MySQL server.

Instead, create an Amazon CloudFront distribution. Go to your DNS setting and create a CNAME record (e.g. cdn.domain.com) and point it at your distribution url. Enter the cdn.domain.com in the CNAME field in the distribution detail screen. Set the origin to custom (DNS), and enter www.domain.com. Wait a few minutes for the distribution to be set up, and however long it takes the DNS setting to propogate. Then change all paths for static files (CSS, JS, images, etc.) to cdn.domain.com instead of www.

Now, in that scenario above, when the page gets served by the browser, all requests for stylesheets, javascript, and those dozen images hit Amazon's servers around the world. The user gets routed to the closest one to them. If Amazon doesn't have your image, they fetch it from your server and cache it. But after that, future requests get served directly from their servers, not yours. So if 1000 people from a certain city visit your site, instead of 20,000 requests hitting your server (assuming one page has 20 requests for images, css, js), you just get 1020 requests (the first one was a cache miss, the rest were cache hits).

Got it. Sounds like a beautiful setup compared to what I've got now. All this seems to comes down to "dedicating" a server for LAMP use to keep server loads balanced. Correct?

Question: Why wouldn't I just use two of my own servers? One for LAMP + one for the CDN.

CDN = content delivery network.

If you used one server it would be a static asset server not a CDN.

CDN's have the benefit of being all throughout the world so you get the benefit that the CDN will serve the asset from the closest physical location to the user. Also your assets are redundantly stored in separate locations.

Amazon s3 is too easy not to just use it. Even something as huge as dropbox essentially runs on s3. I'd say use s3 until you can't use s3 anymore.

Ah, I understand. Thanks for the education, people! Can't wait to put this into action for my clients and future projects. Now time to check into S3...
Ah, I understand. Thanks for the education, people! Can't wait to put this into action for my clients and future projects. Now time to check into S3...