Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Best alternative to Heroku?
97 points by edouard1234567 on Apr 26, 2013 | hide | past | favorite | 59 comments
Are there other viable/hands-off/scalable rails app hosting solutions you'd recommend?

What I love about heroku : super easy to deploy and maintain.

What I don't love about heroku : poor support, uptime and performance

In my experience Dotcloud has the advantage of giving you more control over your instances and the ability to SSH into them. But I had issues with the reliability of deployment there. I used to love the sandbox, but I dropped Dotcloud as a provider after that was removed without a drop-in replacement. However, I still use them to serve Redis, and so far, it's way cheaper than using a dedicated Redis service.

I looked into AppFog, but it was not nearly customizable for my fairly intense Django app. I found too much of the configuration to be baked in.

On Heroku, I really like the ease of connecting third party services, and the fact that many of those services have free tiers. I love their New Relic pricing as well. I like that Foreman/Honcho make for a pretty awesome staging environment. What I don't like is the inability to directly connect to dynos.

So far, of the products I've tried, Heroku seems the closest to being fully baked, but it's still a ways away from hitting it out of the park. I'm really glad this question was brought up, even if it's quite frequently asked. There are so many players and the scene is so rapidly changing that information is constantly going out of date. It seems to me that what's really needed is some sort of ongoing comparison tool/site to track the whole PaaS scene.

> giving you more control over your instances and the ability to SSH into them.

FWIW you can do:

    heroku run bash
Which let's you mess around on a new dyno (not an existing one).

Didn't know about this. What's the difference between a new dyno and an existing one? Why would they act differently?

They don't act differently, its just a dyno separate from the web and other processes.

That's good for things that change shared state, but you can't do anything that would alter a running dyno or interrogate its state, unless you built your own hooks or something. But building something like that would kind of obviate the perks of a NoOps system.

The changes you made by running 'heroku run bash' is temporary and can be reverted any time.

`heroku run bash` is still the best option, but I've always wanted to ssh into heroku dynos myself, so I did this:


> giving you more control over your instances and the ability to SSH into them.

I thought the point of Heroku was not having to SSH into your servers?

Sure, and maybe one day they can make that need obsolete. I just don't think that day has arrived yet.

The one hosting I'd recommend is of course Shelly Cloud: https://shellycloud.com/ I'm a co-founder and I can tell you we have everything you asked for:

- Super easy deployment. Just as in Heroku you just do a git push and we take care of the rest. We also offer integrated setup for databases and file storage, so deployment of Ruby applications is even more streamlined than on Heroku.

- Super easy maintenance. We take care of monitoring, and broken processes and machines are replaced automatically. You also get logs and backups for free.

- Great support. We're Ruby programmers ourselves and we're easily approachable. Even if you're not our client feel free to visit our Campfire room at http://support.shellycloud.com/ . We help with deployment to our platform and day to day usage problems for free.

- Highly reliable architecture. We offer components (like mongo replica sets) that allow you to create applications with very high uptime.

- Great performance. In our model you get something comparable to an EC2 instance, so even our "small" server gets you much more power (and RAM space) than a Heroku dyno.

I hope that this at least piqued your interest. Feel free to ask questions, I'd be glad to answer them.

+1 for that, I've been using Shellycloud for almost a year now and the support has been great

We are using AWS Elastic Beanstalk for Java and quite satisfied for the ease of use, and they also support Ruby now: http://aws.amazon.com/elasticbeanstalk/

The best thing about AWS Elastic Beanstalk is you can still login into the machine in case you need to troubleshoot for some low level stuffs.

I evaluated Elastic Beanstalk for PHP about a year ago. I was impressed with the features I had at my finger tips. But, I couldn't get my custom PHP AMI to work the way I wanted (likely due to my own errors). So, I opted for another solution.

I'd like to think that Elastic Beanstalk is Amazon's answer to Heroku

You might try https://www.engineyard.com/ instead. You might also want to look at Amazon's Elastic Beanstalk.

Your "not loves" don't ring true for me though- perhaps you'd like to elaborate there?

I've been running production apps on Heroku for more than 2 years now, and there has only been one occasion where their uptime impacted the apps' availability. Even during Hurricane Sandy, my apps were up 24/7, so it's hard to understand your comment.

Yes, they do have non-critical issues at times (their API goes through brief, but not infrequent periods of instability)... but this only impacts your ability to deploy/manage an app, not the app's actual uptime.

I guess my experience has been different. I can probably count a dozen serious incidents since I've been using them (1.5 years). Database corruption, unexplained network issues, long period of unavailable API (does impact uptime or performance if you need to push an urgent bug fix or timely data update). But what convinced to switch or at least to invest time to see if there's something better out there is the poor customer support. At the beginning I was a big fan of their support team, super responsive and knowledgeable but in the last 9 months or so it's been increasingly frustrating interacting with them. No more support during the week-end, wait 2-3 days between each email and getting more and more canned responses that don't really address my problems.

OpenShift from Red Hat is often cited as a competitive offering in Heroku vs X reviews. When I first checked it out they hadn't yet come out of beta.

Uses git just like Heroku. Has a similar "dyno" concept but calls them gears. Has a free developer version.

Don't know about support today, but the people I talked to from the team were incredibly helpful.

I haven't deployed anything 'real' on OpenShift, but having played and experimented with it, I'm rather impressed.

I'd definitely recommend http://clever-cloud.com/

It scales automaticaly, analyzing the resource you need on your server, and you only pay what you use, like electricity.

It supports actually PHP, Scala, Ruby, Java, Node JS, and it's still upgrading. Also they have deployed PostgreSQL, MySQL, CouchBase and they are working on MongoDB integration, and ElasticSearch as well.

This company is pretty young, so they have a good support, as they care for their customer. I don't hesitate to send them an email and then give a call, or to tweet their account. Usually I get an answer under 2 hours.

Short story: I used to work with Play 2.0 and MongoDB, and had several issues on Heroku because of a problem on their side with the MongoDB driver. They didn't help in 3 days. With Clever-Cloud, everything worked perfectly, and they even helped me to deploy my app the first time. I immediately migrated my apps from Heroku, no regrets since.

I have never heard of this service, but looking at their pricing page, they seem to have made it as obscure as possible.

> I have never heard of this service

Maybe because it's French eheh. We don't have the same politics to go global!

For their pricing page, you buy Drops, which is like fuel for your car. They offer a better documentation here: http://doc.clever-cloud.com/pricing/ It will go from $600 (classical apps) to $2400 (huge apps) a year.

They designed their offer to be cheaper than AWS with same or better performances.

I'm running an ecommerce website on clever-cloud (sales revenue: €1.5M/y). It works perfectly.

I'm project manager at Clever Cloud. And I couldn't agree more. We've decided to blow up this obscure page in the next 3 weeks for a cool pricing simulator. Stay tuned ;]

Awesome! The service looks pretty cool. I managed to figure out my rough costs, but it took a calculator. All it would need is just a calculator on that page as you say :-)

Since they offer free drops at the account creation, I usually just make the app run for a few hours, load test it and check its consumption.

measuring is always better than estimating :)

I've had a good time working with Blue Box Group (https://bluebox.net/). I've been using them as a backup for an uptime-critical festival application that runs on Heroku.

They helped me by setting up a Capistrano script for me that I run alongside my Heroku pushes. They set up the entire stack according to a specification I talked them through. And they helped me write a script to keep my backup DB in line with my production DB (Heroku Postgres). It's not nearly as quick as provisioning a Heroku app yourself, but if you can spare the week it took to get all that put together with just a little hands-on work, it's not bad.

Overall good experience, good support, if a little slow to respond, but I think mainly because they had one engineer working my case for the entire process, who I'm sure was also working with other customers. But having that 1:1 relationship is good, too. Tradeoffs.

I second the vote for Blue Box. We moved from Heroku 8 months ago and have been extremely happy.

I agree with grrrando, there were a few instances of slow responses during setup, but I also agree thats because you're talking to an individual in that case, rather than a support team.

Two of my favorite things about Blue Box: 1) On the first sales call they had a knowledgeable engineer that discussed the specifics of our app. 2) With their online chat I get answers from an engineer within minutes, even on nights or weekends (they have phone support too, I prefer chat)

I don't use services like Heroku (expect for my hubot instance) but I have researched a couple and I have found dotcloud to be very good. They support a large amount of different services, and they have open sourced a lot of their stack

At Pogoapp we're basically building a Heroku-compatible platform (buildpacks + S3/API-compatible) on our own hardware, with support for storing data on the local filesystem (to run your own databases, etc).

We're also really happy about Dotcloud open-sourcing hipache and docker, and it seems like at least some sort of quasi-standardized PaaS-stack is in the near future, in the same way that you can shop around for LAMP hosts.


I am having a similar problem with heroku at this current point in time as I have been made aware that they do not provide access to web sockets which is definitely the direction I am wanting to go with my startup. Do any of these solutions cater for web sockets?

I've really enjoyed building on Google App Engine. (Disclaimer; I work for Google, but not in engineering)

You can use the Datastore for NoSQL data, or connect with CloudSQL if you want to use a traditional MySQL database. It's quite forgiving when it comes to mistakes; and GAE will automatically spin up new instances as traffic warrants. (No need to manually add/remove dynos).

I know people have had problems with support, but at the same point I understand that if you pay the ($500/year?) for Premium support that the team is really responsive.

For me, as a very novice developer, I had enough on my plate building my app. It was nice to leave ALL of the sysadmin work to App Engine...

You should check out OpDemand's EC2-based Ruby on Rails stack. Workflow is also very similar to Heroku (one click deploys, or `opdemand deploy`) but you run it off your own AWS account:


The stack automatically provisions, monitors and maintains an ELB, EC2 Instance(s), RDS and all the networking and key pair infrastructure you need. Most Heroku apps don't even need to be modified due to OpDemand's use Procfiles and standard dependency management. Deployment automation is all open-source Puppet hosted on GitHub.

Engine Yard: Slightly more low level than Heroku, good support, uptime, and performance.

Setup a centOS server with rackspace and use badger-rails to deploy with same workflow at Heroku. badger-rails takes a fresh centOS server and installed all dependencies for ruby and rails. Low-stress. https://github.com/curiousminds/badger-rails

BYOB - Best of all worlds

Haven't seen AWS OpsWorks mentioned yet. Its lower level but it's been pretty great so far. (And it's way cheaper)

As far as Node.js is concerned, Stackful.io [http://stackful.io ] provides an easy (and low-cost) way to deploy and scale your app on Digital Ocean SSD servers.

Meteor support is coming next week, and Rails will follow shortly.

(Disclaimer: I do work at Stackful.io)

Your 8$/month plan brings a tear to my eye. My ONLY gripe against Heroku is the lack of a hard drive to save things in, for example user uploads, etc.

Does Stackful offer the hard drive to use as we please? If so, you just got yourself a customer. (As soon as you support Rails)

Yep. You have your app running on a Digital Ocean virtual instance and all resources there are yours.

The $8 plan, for example, offers 20 GB SSD storage, and this includes files and database.

You can sign up, so we can notify you when Rails support is ready.

Red Hat Openshift has been pretty solid for us for over a year and is incredible easy to use.

If you want a very simple solution, check out AWS Elastic Beanstalk. It's really easy to setup and you just need 1 simple command to deploy (git aws.push). Not sure how big your app is but they give you 1 year free of a micro instance too.

Not really hands-off, but for an open-source alternative, rubber is interesting. If nothing else, but for the ideas on how to automate a scalable rails app on ec2.


Well, you can try https://www.cloudcontrol.com

They also support Heroku's buildpack API and compared to Heroku, they have a lot of support options.

While on the topic, does anybody know any Heroku alternative that offers postgis, preferably at a more reasonable price than the 200$/month Heroku charge.

PostGIS is now available in public beta on all production tier databases (including the Crane/Kappa plans at $50/$100 a month) - https://postgres.heroku.com/blog/past/2013/4/30/building_loc...

Dotcloud offers the service: http://docs.dotcloud.com/services/postgresql/

The biggest caveat is that you don't get integrated no-fuss horizontal scaling the way you do with their MySQL and MongoDB products.

Does anybody have experience deploying Django to Elastic Beanstalk? I'd love to hear a comparison between them and Heroku.

When I finally got it to work it worked great, but took me a good few hours to figure out some stuff that should of been documented at the time, but couldn't find it. That's just apart of trying something new though. I tried it when it was first announced so should of improved documentation since then.

EngineYard, DotCloud, AppFog. But I'd be surprised if you find better support and uptime. Hard to say about performance.

If on Node Nodejitsu is highly recommended.

I like CloudBees (Java only). It's powerful, has high reliability and auto-scaling baked in.

If I recall correctly, it's not Java-only anymore. I started setting up a Jenkins server for CI for my Django app. I never finished getting the configuration right, and I'm not 100% positive you can serve Django from it (I don't see why you wouldn't be able to though), so I can't give an endorsement backed by experience, but it's something to look into.

try cloud66.com with digitalocean

I have heard good things about this combination. You buy your on VPS setups to get redundancy or regional dispersion and cloud66 manages the deploy.

Not for rails, but Google App Engine has been a pleasure for Python and Java web apps.

I lovvvvvvvvvve Appfog.


Just checked them out correct me if I'm wrong but they seem more like an alternative to rackspace or EC2. They provide a VM while heroku provides the full preconfigured application and deployment stack.

cloud66 provides the full deployment stack on EC2, rackspace, digitalocean and others. You can deploy any git repo and it will analyse the code and configure the ruby app based on the gemfile (postgres, memcache, redis, etc) and install it.


I've been experimenting with Cloud66. Currently everything I have is on heroku. I'm going to be moving a few things over to cloud66.

It's definitely a little bit more work, but once you get over the learning curve and have your manifest/post-deploy hooks setup correctly... It's pretty much auto pilot. Scaling and deployment are a breeze.

I'm running it with digitalocean. Going to be saving a lot of $$.

My favorite part is running my own redis and memcached. No more need for expensive add-ons.

Yes, you are correct. However, Digital Ocean has way faster disk IO.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact