Architecture · Cloud Computing

Heroku vs. Digital Ocean for hosting high-traffic app?

Rachel Ratliff Voki Mobile

January 12th, 2015

My app just launched on the App Store, but we're still optimizing it. My developers (in the Ukraine) want to switch from Heroku to Digital Ocean because of lower pricing and faster performance. I am completely non-technical, so I have been doing some web research on pros and cons of various hosting solutions. However, a lot of the reviews are coming from people who are using hosting for small-scale applications like Minecraft, blogs, etc. I would like to hear from people who are hosting for mobile apps with millions of users, or have at least planned for that volume. One of the major knocks against DO is that it does not do load-balancing, so whenever the traffic increases beyond your current, paid level, there is system down-time to upgrade your level, and the user will see an error message during that time. Not ideal. It also doesn't automatically monitor your server for you. Thanks in advance for the advice!

Benjamin Wheeler

January 12th, 2015

at the millions of users level, i think a majority of companies/applications are using AWS directly. a bit of downtime to upgrade every once in a while is not really an issue. is a tiny increase in server performance and a decrease in cost really meaningful at this point in your project? often the best decision is to punt the transition down the road... working fine now is better than working perfectly in theory after a bunch of work. you can always transition later. at least with heroku, coping with surprising new traffic isn't much of an issue. 

Stephen Brandon Lead DevOps Engineer at IMATCHATIVE INC.

January 12th, 2015

DO doesn't have load balancing out of the box, but you can easily build nginx or HAProxy to do that for you. Would I? Not really. If I were in your shoes, I would stay with Heroku for now until you hit a point where you could hire a devops person to move you to AWS. That's where I've found myself having a large impact at several startups. Prior to that, Heroku will do just fine.

Alex Tang Co-Founder/CEO at Gruv Music

January 12th, 2015

There are some decent answers here about DO vs. Heroku, and I'd second the "go with heroku" sentiment as they've got a good system that's pretty well thought out especially regarding scaling in the short to mid-term.  

But what should obviously be OT, Whoa, why are some folks getting so pissy.  

@Owen: "Go with American Devs"?  Where was that even discussed? 
@Glenn: "Why are you having this discussion with us rather than your technical team"?  How do you know @Rachel isn't already talking to her team and is also soliciting other input? Isn't what this group is for?  Asking questions of other founders who probably have similar questions. Hell, i'm a tech founder and might as this type of question as well.  

So if we're making wild assumptions, I'll ask you two (@GlennEllington & @OwneRubel) to clarify my wild assumption: are you making these (not particularly informative nor helpful) statements/questions because the OP is a woman?  

Rachel Ratliff Voki Mobile

January 12th, 2015

Thanks for some helpful comments. Makes a lot of sense to hold off on expending more resources on a different solution until our volume warrants it, particularly as the players and their offerings in the cloud space seem to be evolving quickly, and DO requires more technical expertise and monitoring.

To some of the responders, yes, this would obviously be a good question to be resolved by an internal technical founder/team, if I had one. Still working on that. 

Martin Miller VP of Engineering, Infrastructure, DevOps

January 12th, 2015

Several good points already brought up by Benjamin Wheeler, and I also agree with Owen Rubel's comment on PaaS.  



Stefan Gomez Entrepreneur, Engineer & Product Builder

January 12th, 2015

Weirdness aside on this thread, I'd also recommend sticking with Heroku until you reach a scale that makes sense that you do have the traffic (and thus probably funding as well) to hire a full-time devops person to optimize for cost/efficiency.

Even still, @owen is wrong about "nobody uses PAAS for high volume." I actually know quite a few companies using Heroku at quite a high volume even if it did make sense for them, financially, to move off of it with the help of hiring devops to do so.  There are a few startups in the top 200 sites in terms of traffic (quantcast), that are hosted on Heroku, and do so just fine. Sure it's expensive, but don't count them out in being able to handle it. Move off when you're ready.

Bill Snapper Owner Principal at SammyCO, LLC

January 12th, 2015

Digital Ocean is a fine solution if you have the developers that are going to manage the system instances.  You'll need a system administrator to handle this and you WILL be able to do load balancing there.  The issue is you need to plan for it and have a system ready to spin up to add more compute power before the system has come to a screeching halt due to the GOOD PROBLEM of having to many users.

If you don't have a system administrator I'd stick with Heroku.  It's built in the cloud.  It's built on AWS.  It's built to scale up.  You pay for the ease of use / scaling.  Once you see the scale going up and the costs being to much related to what you'd pay an admin / developer to maintain your own AWS setup then you can make the choice to move over to AWS directly or building out your own cloud configuration.

Don't be fooled by the "Digital Ocean hosting costs are significantly lower" unless you're prepared to have a developer/admin handling tuning, monitoring and planning.

Tim Scott

January 12th, 2015

Heroku obviates the need for a lot of devops expertise and some measure of custom built process and assets. Removing headaches comes at a cost, but you won't notice much of a difference until you scale up a lot, which let's be honest, might never happen. If you're on Heroku now, then your Heroku bill will tell you when it's time to make an analysis of other options.

If your technical team were in-house, I might agree with the Michael Brill's suggestion that you should trust them. Perhaps they have all the devops experience they need for IaaS. But as others have indicated, there are lot's of reasons they might have bad or biased judgement. Really, Glenn Ellingson hit the nail on the head. You need someone to trust who is more accountable than an offshore dev contractor.

Anonymous

January 12th, 2015

Get an architect to help you out. Digital Ocean can offer load balancing (balance load over multiple machines), you just have to install HAProxy yourself on a machine. They don't offer autoscaling (adding extra machines in case of heavy traffic)

Heroku offers a lot (no autoscaling though), it just becomes pricey at some point. However, you can only move from Heroku to let's say your own hosting on Amazon with their autoscaling when you can afford to pay at least 2 devops guys (let's say at least $15,000/month). Just one is not enough, you will need 24x7 devops.

I used to work with Tapjoy, they had 200 Amazon EC2 instances running Ruby on Rails. No need to go to your own hardware, that is very expensive an requires a lot of capital up front.

btw scalability problems are luxury problems: most companies have a product/business company and never get to the level of traffic that causes scalability problems

Anonymous

January 12th, 2015

Its my understanding that Heroku still uses Amazon (AWS) so I would be hard pressed to move from that.

I would think you have a Ruby on Rails app so Heruko is the platform of choice for most developers.

If you really get the scale of users you expect then don't be cheap. You want to keep the backup and recovery server provided by Heruko, don't try to be cheap on that stuff.