However to the comment about "git push heroku master," someone that is an "early" programmer like myself finds that level of simplification helpful when I'm focusing on things like learning all the other things that could go wrong with my Rails Tutorial app.
That said, as I now am at the point of starting to work on projects that I hope to one day be public facing, I'm wondering if there are any recommendations for "Heroku-like" providers with a free tier that stays up 24/7 for super simple Rails and Sinatra apps, perhaps with a DB.
OpenShift(https://www.openshift.com/) may be the service you're looking for. I haven't tried it, but it looks nice.
I've only used it to create a small Python/Flask app http://wwos-bitmason.rhcloud.com/ but there are lots of examples and information on the OpenShift blog.
[Disclaimer: I work for Red Hat.]
It reuses Heroku's code for several buildpacks, particularly Ruby.
I know that it works really well because (disclaimer!) I worked on the Cloud Foundry Buildpacks team for Pivotal.
Unless you've got a whole lot of them, paying $7 to Heroku is probably still your best bet. Especially if you're already familiar with the ecosystem.
I get that people are frustrated with heroku's pricing, but at the end of the day I think that if your side project isn't worth the money you spend on it's hosting, maybe you should look into other side projects? If it's truly not a money-making project, not needing to scale it or have it up 24/7 seems like a reasonable trade-off to not paying for it's hosting.
The number of tools and resources Heroku provides is quite significant, and developing/deploying/maintaining similar solutions is certainly not cheap or easy. Especially at scale.
Disclaimer: I'm one of the Dokku maintainers.
- [1] http://progrium.viewdocs.io/dokku/
- [2] http://convox.com/However, Convox is built to do something considerably more focused, and doesn't have to worry about eg its infrastructure setup bits being usable as a separate product yet ... and it shows in the sophistication of what they've put together in such a short time, like the Postgresql, Redis and Papertrail services. Likewise, though Otto is slated to integrate with Nomad (for containers as a deployment unit), it doesn't yet, and only supports AMIs.
Who wins? We do! I am very, very happy that there's such active innovation happening in this space.
This is definitely true, but I think one of the (unwritten) points of the article is that it wasn't always that way. Heroku has become more of a full-service offering, so it's understanding that they've gone a bit up-market in who they cater to, but it's a bit of a bummer for the down-market folks.
I think you're right that Dokku could be a great replacement for such people (thanks for your work!), but I hadn't seen Convox. Looks interesting, thanks for the pointer.
Arguably the biggest blocker is actually getting a running BSD instance - I'm going to say I've never successfully installed FreeBSD, though the last time I tried was 10+ years ago - and then potentially creating a `docker` binary that uses Jails but responds as if it's docker.
As it's open source, I definitely wouldn't mind helping someone investigate FreeBSD support :)
EDIT: Looks like there is already docker on FreeBSD, https://wiki.freebsd.org/Docker . I assume you guys have bash, so this should more or less work...
s/it's hosting/its hosting/gImplying someone is an asshole is always impolite. Take that as you will.
By the way, despite logic, "truly" doesn't contain the substring "true", so "truely" is a misspelling. Your email address, unfortunately, isn't in your profile (and nor could I find it via opencagedata.com), so I hope (though doubt) you'll forgive a public correction.
That said; for hobby stuff I've switched to a cheap VPS plus Dokku [0] and haven't looked back. Works with Heroku buildpacks and even runs custom Dockerfiles if you need anything fancy. Hardly requires any maintenance.
There's a couple of alternatives like Deis [1] and Flynn [2] that offer more advanced features, but they're much more complex and way overkill for my pet projects.
[0] http://progrium.viewdocs.io/dokku/ [1] http://deis.io/ [2] https://flynn.io/
Current favorites (in no specific order): OVH (don't judge, their performance is wicked, just don't expect support), RAMNode, BuyVM, Vultr, 6sync, SparkNode.
I've started using them over DO & Vultr and I've been really impressed.
No affiliation, just a happy customer.
Zach here, Director of Support at DigitalOcean. Thanks for raising a few concerns.
I'm going to shoot you an email to learn more about what's not going right for you.
Best, Zach
Dokku itself has no running processes, it's just Docker and nginx which are both pretty light on resources.
Most of the pain points are in other areas. Like for example, the datastore API you have access to for Go doesn't even support geo-spatial data or queries. I had to hack my own solution. It made me pretty mad at the time, because how can you not support geospatial queries in a database in an age where mobile location-based apps are so ubiquitous.
So I can see why you would say the platform is stagnant. And there is probably some truth in what you are saying in terms of GAE not getting the same love as other parts of the Google Cloud.
But having said that, I STILL think there is some merit to building apps on GAE, if your app is a simple web server, or single purpose REST API. I have found that its pretty reliable, and its relatively cheap for what you get.
(disclaimer: I work for Google on Cloud Platform, but not on anything Java related)
Generally, I think what Google is missing (or doesn't care about) is that anyone who is using a PAAS provider is willingly exchanging some flexibility, control, and price-efficiency for the luxury of having devopsy management tasks taken off their hands in a competent and reliable manner. Managed VMs seem to be providing so little of that that you might as well move to IAAS. Or, do as I have, and move to Azure - who do manage to stay pretty current, and blend PAAS and IAAS in a much more elegant manner.
I've seen many Python apps that connect to a free MongoDB instance hosted on Mongolab.
(also worth noting that Node.js support for App Engine is currently in beta.)
(disclaimer: I work for Google on Cloud Platform)
Is this public? I have been waiting to hear this for ages! Great News.
I am planning a switch to node simply so I can run the same code on the front and back end. I was not looking forward to learning how to administer a server.
There's one cool alternative I found: Hetzner Online[1] leases dedicated hardware that their other customers stopped using or ordered but didn't use, etc. It is in form of reverse auction - unused hardware gets cheaper until someone rents it.
You can get i7-3770 server with 2x3 TB disks and 16 GB RAM for 32 EUR per month. That's not much more money than linode, but it is much beefier and just your (but no SSD). If you pay more you can get something like i7-3770 with 32 GB RAM, 2x3 TB disks and 2x240 GB SSD for 65 EUR a month.
The servers are in Germany, which might be interesting for Europeans who are wary of US cloud companies.
I'm not affiliated with them in any way, I just find their offer cool.
Couldn't help but wonder if the (valid) cost and performance problems the author has with heroku will end up pushing devs faster to Backend-as-a-Service platforms like Parse, Firebase, or something like Amazon Mobile Hub (Lambda on Rails?).
(Note: not affiliated with any of these platforms, etc. Just a lazy mobile developer with lots of things that never make it to the app store.)
But the prices are nice, thanks for posting this. Would love to use dedicated hardware but suspect that i am too dumb to secure my box good enough and end up in a botnet or as a spam server.
Although a company I worked for had a Hetzner server where 3 out 4 of the hard disks failed. So it might be wise to do regular backups off-site.
Quote:
Beginning in January 2012, Backblaze deployed 4,829 Seagate 3TB hard drives, model ST3000DM001, into Backblaze Storage Pods. In our experience, 80% of the hard drives we deploy will function at least 4 years. As of March 31, 2015, just 10% of the Seagate 3TB drives deployed in 2012 are still in service
https://www.backblaze.com/blog/3tb-hard-drive-failure/
Edit: They (Hetzner) have since long stopped putting those drives into servers and if such a HDD shows signs of failure they're replaced by support no questions asked...
It's possible to have a plan that suits hobbyists while still being profitable. In this case, as a PaaS, Heroku may not have been able to offer something like that, but it's not universally true that hobbyists are unprofitable.
Free plans or hobbyist plans are really there to get the marketing and cheap customer acquisition, not to power the mainline B2B business. The main business in both cases is likely bolstered by enterprise clients worth 5+ figures a year, but don't likely cost much more than a hobbyist account to maintain.
If you only had a hobbyist offering, you'd go out of business. As this post points out, Heroku has a much larger common offering where they should have plenty of profit at scale.
Meanwhile, they also benefit from hobbyists saying "oh yeah, Heroku is easy, let's use that!"
Heroku is smart, they know what they are doing.
This just isn't true. To mention WP Engine again, they were hobbyist-only at first. You had to contact them specifically to require an enterprise-grade plan.
$7 dollars a month to run a little app? That's less than I spend on coffee each day and I'm glad that money is going towards differentiated and valuable service.
I have a couple of toy apps, a personal blog and a "not such a toy" app on Heroku and I have used their services for free for AGES - more than fair enough that they make some money.
Then it's an extra $20/mo if you want SSL. Which you will most likely want.
That $7/mo just became $34/mo.
Bye, bye Heroku.
For SSL, you can use CloudFlare as your DNS and take advantage of their SSL feature.
While not ideal, does it need to be ideal for a trivial, probably-not-super-high-functioning-hacky-app?
There's always Cloud66 — which I've used to great success. I have two servers (e3/32GB/4x250gb enterprise SSDs in HW RAID on nice pipes for less than $100 a month) that I rent, threw vSphere on it, hired a $50/month competent and trusted off-shore sysadmin team, and loaded up a couple VMs.
It's not completely ideal, and I understand I'm trading stability for a couple bucks, but in scaling my clients have saved a bunch.
go.c66.me/ktheroku
(Disclaimer: I work at Cloud 66)
They're finally too expensive for you, or you outgrew them? They aren't cheap, and never have been, especially for hobbyists.
If you have a hobby, you most likely have more time than money to complete your hobby, so why, why use something like Heroku? The very nature of your activity is to spend your time, not your money, Heroku is only giving you the feeling of savings until you outgrow their nearly worthless free offering. Now you have to spend your time, moving, configuring, and learning an "entirely new" system. Had you done this the first time, you'd have saved money/time.
Yeah... "git push" to deploy is easy[1]-- and if you're new to application development it can be nice, but! It also means you have no idea how to configure or run your app (i.e. deploy). It means you're more vulnerable to your vendors quarterly earnings needs (price hikes), it means you're more vulnerable to vendor technology changes (lock-in), it also means if it ever hits the fan-- you're gonna have oodles of downtime while you learn how to do it "right" the first (nth) time.
FWIW, it's actually really easy to run a VPS that's stable once you learn how to do it properly. Don't fear it, mate. I've always found it nice since none of my projects ever get substantial traffic, I can usually run some auxiliary service I need (like Gitlab) on it too. A two for one, eh?
... One last thing, if you're running a business Heroku might be the right choice (it's up to you to evaluate the risk/reward).
[1] I personally think deploying with Capistrano is a cinch (cap deploy) but it'll take you a lil' bit of effort to set up the first time.
So use an opensource PaaS.
I like Cloud Foundry, which I've worked on. All the IP belongs to a legally independent foundation. Some people like OpenShift, which is from Red Hat.
There's no reason to roll your own. Time spent half-building a half-PaaS is time that could be spent on developing stuff with user value.
He considered the monetary costs, but didn't think through what other costs are associated (time/stress/performance/etc) and has come out "on bottom."
It does make sense if you do a proper cost benefit analysis, to yourself, in this situation. Otherwise, he'd pay Heroku what they're "worth" and never have written this blog post.
The blog post, presumably, is because there are still things that he misses about Heroku, and so even though Linode has come out on top, he wishes that there were some sort of hybrid solution. That, and there may be other people in his situation that haven't yet made the cost/benefit analysis themselves and aren't aware of alternatives.
Then the bill came, and they'd added a $50/mo db to my $9/db. Support was shocked, shocked that their tool had told me to install the db. They admitted the $9 plan sufficed for me, didn't fix or refund the unwanted extra plan, and to top it off database backups are still broken.
I'd just like to have a screenshot of the misleading sales process they pulled. If anyone sees this, please drop me a line. Meanwhile, I'm checking out Dokku and other alternatives for hosting on VPSs - aside from my little hobby project, I have tens of thousands of dollars of consulting client hosting to start migrating away.
I've also asked the PM for this project to look into what happened here and alerted the head of our support team. I hope you'll consider giving us a chance to make this right for you and a chance to re-earn your trust.
Any readers: I realize pulling large clients over a single small charge sounds like an overreaction, but client relationships are the health of a consultancy. $50 is a rounding error; partnering witha business willing to mislead for an upsell is an existential risk.
https://brandur.org/fragments/cloudflare-ssl
You can stay on the free tier of Cloudflare and the hobby tier of Heroku and get full encryption on your custom domain (and without worrying about getting certs issued). This is how I run my more important hobby apps.
And regarding the lack of novelty of `git push heroku master` — I'd argue that it's still surprisingly valuable even in modern times. Sure you can do it yourself using a dozen different techniques these days, but as a hobbyist I want to be building apps and not maintaining personal infrastructure.
(Disclaimer: I used to work at Heroku.)
The benefit to me of using something like Heroku is not because I get more CPU/RAM than an equivalently priced Linode instance - the value is in not having to manage a Linode instance at all.
I'd also argue that git-pushing to Heroku is still a lot less friction than dealing with docker images or chef/puppet scripts.
Meanwhile every time I'd deploy a new project to Linode, I'd use a different deploy script/strategy as I'd learn slightly better ways of doing it. It's much more annoying to do maintenance on my Linode projects I haven't touched in 6+ months, and it turns out I usually don't have the energy to re-credentialize in the idiosyncrasies of each sideproject, so they languish.
I've had some weird stuff from cheap providers including being down for days with no response, sudden price increases and having them go out of business all the sudden. Even for hobby projects it sucks having to chase people around set everything back up. I have found a couple more bucks a month to deal with a larger company that's it for the long haul to be money well spent.
They are a business. They don't owe anyone shit, it is nice they give anything.
And the "remember when" is irrelevant. Costs have dropped for everyone, including them.
I'm wondering how AWS compares, though - running a dedicated, manually managed EC2 instance or ElasticBeanstalk. Seems like you could get your own server, and still have little barrier to scaling as high as anybody could ever need at the touch of a button. Anybody have much insight on that?