This is not true at all. Apps on Heroku are built on open source software (Rails, Postgres, etc). You can always decide to host it all yourself without too many issues.
How is this not true? It absolutely IS vendor lock-in, just in a slightly less sinister form.
If you add 5 services & then to switch hosts it's not another git push. You have to re-configure each of the services. If you'd done this yourself all along & made machine images it would have been less convenient at the time, but probably cheaper & a good learning experience. There are many other hosting platforms that offer Linux boxes so you could move your whole App/Software layer to another of these companies without much trouble.
I'm not saying Heroku is evil or anything. Yes, they provide a good platform. But I think any web company with a significant customer base would benefit more from the cost savings & freedom of a purer platform than the conveniences of Heroku.
Plus, there are so many configuration issues with their services. I have auto-scaling setup with Adept and still I see these long request-queue buildups now & then. I get the feeling I would not have the same issues with an AWS stack where I have CPU usage monitors that are very transparent & all the networking is trivial.
I still use Heroku as an app server & don't hate it enough to up & move (though a large factor in this is I'm not the one footing the bill, the client is...) but anything I can easily get on to AWS is a no-brainer. Database is one of those things -- a couple clicks to scale up/down every year is all thats really required.
CONCLUSION (cuz I rambled too much): I think Heroku offers scaling/convenience but AWS is just so rock solid & cheap that you can probably just buy larger instances than you need (to compensate for scaling) and have much better performance at the same price. Then you just need to learn how to install your tools & take a machine image as backup. Plus there's a lot of value in learning how to work with machine images that goes way beyond hosting a web app.
Yea I feel you on that but on Heroku I feel like "Every service I add is a per dyno credit card charge that is about to be multiplied by the number of hours in a month". :(
I prefer the Amazon model because you can stick these all on one server & as long as CPU isn't pegged at 100% you're good. I agree tho I'd rather not spend the time figuring it out. For now I only use it for RDS & for services not available on Heroku (some Adobe streaming server stuff).
This is almost the complete opposite of vendor lock-in.
Vendor lock-in is when you write your software on Oracle or MSSQL and moving away requires you to rewrite your whole thing. It's not losing the convenience of "got push" for deploys and having to spend time moving off their hosted versions of open source software and configuring and hosting it yourself instead.
Accusing Heroku of practising vendor lock-in is honestly absurd.
IMHO vendor lock-in is anything that makes part of your work process specific to a given vendor. The harder it is to move from one vendor to another, the deeper you are "locked in".
And as a point of interest, I think these days its probly much easier to convert your database than it is to switch hosting platforms (well... in some cases).
We started off on Heroku because we wanted something dead simple. The amount of time heroku saved us was an incredible value when we were starting out. I don't think there is any vendor lock in. We just did not switch to AWS earlier because our needs were met really well by Heroku and even Amazon Elastic Beanstalk (for ruby) did not come near the ease of a Heroku deployment. Once Opsworks came around, we invested in deployment scripts and switched because Opsworks gives us same ease of use and greater control of our stack.
What do you think stops you from switching? We had no issues at all - definitely none from Heroku.
We still use PostgresSQL from heroku because it is still a solid service and comes with niceties like dataclips. I should confess that I have not explored the Amazon PostgreSQL offering but I am happy with Heroku for databases at the moment.
Heroku is great for clients though. When I was a freelancer, I built these apps for other companies that assumed that I would do the admin & hosting. Heroku is great way to just "tack on a fee" for doing the hosting. If they want a cheaper option, they can always do it themselves. Most clients don't care about the savings on hosting..