Heroku DX: The New Heroku Developer Experience
blog.heroku.com
blog.heroku.com
I have periodically used Heroku a lot, but I do have one gripe about them:
I tend to run a lot of low traffic web apps, apps that run well on Heroku's free tier (and not minding the occasionally loading request delay). However, I just don't feel comfortable using a service a lot that is free: being a freeloader. (Compare to Google: they make money off of me because I click on interesting looking ads.)
If Heroku had a cheap $10/month 1 dyno tier (that might have a perk, like staying resident, not swapped out) that was restricted to a lower number of requests per day, then they would get a lot of my business running my experimental projects.
I have considered paying for a second dyno that I don't really need, but $30/month each for a lot of experimental web apps does add up. Not too off topic: I just wrote about how I create a personal Heroku-like experience on a VPS: http://blog.markwatson.com/2014/09/setting-up-heroku-like-gi...
In any case, I think Heroku provides a great developer experience.
A referral is - unless an arrangement has been made - a service to the person you're referring, in that you're making a recommendation built on trust and aren't misleading someone.
You are probably being downvoted for being unnecessarily caustic. Your point wasn't a bad one, even if I think you're wrong; consider rephrasing with an edit?
And there's a lot you can do with a personal instance, like hosting several websites, hosting your own MySQL, having your own email server just for the kicks, using it as a VPN and so on and so forth.
I also subscribed for AWS's Free Tier and now I have a m2.micro instance and traffic included for their CDN for one year and I'm in the process of configuring my blog's assets to be loaded from their CDN because I think it is important for my blog to load in under 500ms :-)
Yes, I know these things are trivial, but even 30 minutes of work is infinitely more than Heroku's 0.
Granted, Heroku's ease of use is totally kick-ass.
https://www.digitalocean.com/community/tutorials/how-to-use-...
http://progrium.com/blog/2014/07/01/beyond-flynn-or-flynn-as...
"If you aren't paying for the product, you _are_ the product."
I dislike the proprietary nature of Heroku platform and I am betting on Docker + Flynn/Deis as a future golden standard of PaaS. My confidence is based on the momentum of Docker and Docker hosting services (orchardup, tutum, stackdock) as evidenced by their funding/acquisitions and tech news hype. Also digitalocean, linode and other VPS provders have easy to install docker images.
I am enjoying (probably false) confidence that investing now in the docker expertise, I will have my development and deployment strategies mostly set for next 3-5 years. Rvm, virtualenv, haskell platform, etc - everyting becomes easier with docker to develop AND to deploy. Heroku doesn't solve that. New services and products would be adopted by decentralized docker ecosystem faster than by Heroku.
This feels really nice.
Am I wrong to bet on docker? Should I return back to the the poisoned fruits of Heroku walled garden or venture forth in the great ocean with Docker? Is there a consensus in HN community?
Orchardup was acquihired because of an open source tool they hacked and they are discontinuing their hosting service.
Tutum has no SLA at all and explicitly recommends only using their service for toy products. Basically, they're not a real hosting provider right now, just a very expensive toy.
Stackdock has been "currently upgrading our platform and sign-up has been temporarily disabled" for months now. I'm wondering what's going on, but I wouldn't be surprised if blocking new signups for such a long time means they're about to pull the plug, for whatever weird reason. So long without new customers (while I'm sure some are leaving) can't be healthy. I really want to give them money but I can't.
Finally, the people who made Docker itself once ran a PaaS service, dotCloud. It has been sold off and does not seem to be getting much new investment - definitely not any support for directly hosting Docker containers.
In short, there are currently 0 real Docker container hosting providers (and by 'real' I mean that they will exist past October and have at least some uptime guarantees).
I really want you to be right, but currently the evidence looks very bleak IMO.
We made this same bet last January and we're currently spending way too much effort DIY'ing it all on a VPS.
However, Orchardup was acquihired by Docker itself and I am sure they are planning to provide container hosting.
Tutum has just raised about $2M and are in the process of going gold with their service.
Yeah, stackdock is MIA.
However, the main point is that Docker is quite young and already has a developed ecosystem. Also all of these are specialized docker container providers, while I have no problems deploying a container on most VPS providers, IaaS platforms or even bare metal.
The Docker ecosystem is just starting to develop, Docker PaaS platforms are still in beta and while there is a lot of uncertainty, the vitals of the ecosystem look good. I may be wrong, but I am taking the plunge and my efforts will contribute a small part to the Docker ecosystem.
there is going to be a large spectrum of ways to run docker images, and you'll be able to choose bare bones to full-service.
here is a 4min video of cloud foundry next generation runtime diego showing spinning up 300 docker images in under a minute, providing load balancing, health management and aggregated logging: http://www.youtube.com/watch?v=e76a50ZgzxM
james - cloud foundry team
"The OpenShift v3 Cartridge format will adopt the Docker packaging model and enable users to leverage any application component packaged as a Docker image. This will enable developers to tap into the Docker Hub community to both access and share container images to use in OpenShift."
https://www.openshift.com/blogs/openshift-v3-platform-combin...
https://github.com/openshift/openshift-pep/blob/master/opens...
I'm a huge Docker fan, and I think Docker is probably a decent medium-term bet at this point (with very real short-term issues). But I also think it's a bit unfair to call Heroku a "walled garden":
- Heroku buildpacks rarely require modifying your application much. Typically, you just add a two-line Procfile and maybe a list of libraries you depend on.
- When Heroku does invent something propriety like a Procfile, they usually release an open source library to allow other people to use it.
- Heroku uses standard storage infrastructure: PostgreSQL, memcached, and so. Unlike Google and Amazon, they don't actually provide many propriety cloud APIs.
As somebody who's worked on Heroku-based projects ranging from throwaway hacks to huge production systems, I've never had the impression that Heroku was trying to lock me in.
They definitely have some lock-in strategies in the works. Lock in may be not technological per se, but a behavioural one, like in a Github to git network effect. That "Deploy" button is one clear path to lock-in.
But I agree, Docker ecosystem is not mature enough and doesn't have its own killer app, platfrom or collaboration process. Though with the acyclic directed graph model of building containers they may have stumbled onto something really big.
I can say with 100% confidence that it's really exciting to observe the evolution of the hosting industry and the overlapping between production and development environments.
Actually, I do think they want most startups to migrate as they scale up. Heroku does not want to compete with AWS; their story is value-add. Their pricing will always be non-competitive for larger apps and larger apps will be migrating away anyway.
So rather than fight it, they embrace it. By making migration easy they make their service much more attractive to the little guys.
After all, everybody expects that their little app is going to grow huge one day. Heroku makes their money from the large majority that haven't gotten huge yet and probably never will.
But consider that with an advent of golang, node.js and other faster (compared to python and ruby) languages/frameworks coupled with microservices architecture most (maybe 80%) startups will not exceed 10 or 15 free dynos. Those who need vertical scaling may pay for 2 or 3 dyno workers.
Where's the scalable business model for Heroku in this scenario? So I am not sure that Heroku wants startups to migrate.
You are aware that the "P" in PaaS doesn't stand for "paranoia", right?
What about Heroku is proprietary?
Who'll look after your docker infrastructure?
PaaS services based on open source PaaS solutions (Deis + Docker, Flynn + Docker) and proprietary PaaS solutions ( Tutum + Docker, for example) will look after my infrastructure. Or I will host it myself. In any case I'll be able to migrate my containers to any other infrastructure easily, quickly and with nearly zero additional configuration.
Most everything we do, we open source. For example I help maintain the Heroku Ruby Buildpack, and it is fully open source. This is the technology that allows us to detect and install dependencies and precompile your assets. We open source a ton of other things such as our CLI, our logging aggregation infrastructure, our continuous Postgres backup service (backs up postgres to S3). We also invest heavily in Open source, we support PostgreSQL development, and we hired the 3 most prominent Ruby Core developers so they can work on the language full time.
Under the hood, we use LXC a standard linux container. We generally don't talk about this level much because it's orthogonal to the running of your application. Most people don't know what system libraries come pre-installed on our servers, or the versions of the operating systems, or what virtualization/containment systems we use. They know their app runs, and stays running.
I'm happy you're comparing and contrasting. I think docker is a great technology like LXC and it's very useful. I wanted to chime in on the "proprietary" comment because if you feel our service ever "locks you in" in some way, it's likely a bug that needs to be fixed. I consider my work 100% open source time.
## The dynos are quite expensive by current standards
AWS has been continually dropping their prices, however those savings haven't been carried over to Heroku? Either:
1) lower pricing, or
2) improve the resource allocation for the current dynos at the same price point, e.g. 1x dyno - x1CPU + 1GB, and 2x dyno - x2CPU + 2GB.
## There is a big gap between 2x and Performance dynos
Java apps are recommended to run with 1GB RAM, so practically my only option is to continue to scale horizontally [1]. Maybe there is an opportunity for a x2 CPU and 2GB dyno at $100/mo?
Notes: [1] - I would have loved to have a bit more memory at my disposal. 1.5 / 2GB would be ideal, but upgrading from 2x to Performance is too big of a jump ($70/mo to $570/mo).
Heroku Standard 0 (1GB RAM): $50.00 per month RDS On Demand (1GB RAM): $12.96 per month RDS REserved 1 Year (1GB RAM): $9.29 per month
I would go with Heroku or AWS RDS. Both truly deliver and make devs / devops sleep better.
So the real total cost comparison is a lot closer than it seems.
On an unrelated note, I think it's time to retire the 1X tier, or just make that the free tier and bring the price of 2X in line with 1X. You just can't do all that much with 512MB of ram and given the progression of technology this doesn't seem like a huge ask.
Also in the interest of security I can't think of any reason why encryption-at-rest should be available on the standard database tier.
But then maybe I'm just cheap.
Application Metrics are currently only available for apps with two or more running dynos of any size
Of course, I can't be a freeloader and complain about this I guess.For instance, I REALLY REALLY love the ocean. I love SCUBA diving, and I love the color blue. However, you won't find me living in this house http://cl.ly/3I3R2z0q1A2S. However, http://cl.ly/0R3H3k2s3Z3x looks very appealing to me. Catch my drift?
It's as if Heroku fired all of their designers and put developers in charge of the entire UI design process. I've seen that happen, so I don't say that to be a troll. I'm seriously disgusted by the monotonous nature of the new UI.
That said, it appears to have very many useful new features, which surely outweighs most of my aesthetic concerns.