Live data from Hacker News

Why I left Heroku, and notes on my new AWS setup

holovaty.com

51–60 of 231 posts

Re: Why I left Heroku, and notes on my new AWS setup

#51

On my end I get a complete crash once a week when running with one dyno. The official response for support I got was to upgrade to two dynos. Apart from the PostgreSQL hosting, I'm not really happy with Heroku. Add to the random deploy breakage I've experienced mid-launch (not to mention it's slow as hell), I'm going to move back to my own servers.

What's your monthly heroku bill?

Re: Why I left Heroku, and notes on my new AWS setup

#52
post #39

Earlier quoted context omitted.

You know those days when you think you know a bit, and stumble upon someone who knows vastly more than you? Today was one of those days. It appears we're both Devops guys in Chicago; can I buy you a beer sometime?

Hey, I'd love to join! I'll buy the beers if you two guys just teach me all the sysadmin stuff you know. :-D

I'd certainly be down. I love talking about this entire arena, specifically where it falls on its face.

Re: Why I left Heroku, and notes on my new AWS setup

#53
post #21

Can you share approximately how long the process took you? Thinking of going down that road with 2 small basic heroku rails apps 1 web, 1 worker, 1 small postgres DB. very little traffic. Both apps already at ~$170/month on Heroku. These are paid SaaS B2B apps, but they generate so little traffic but the way heroku partitions their services or addons, this really should cost like $30-40/month on a regular "hosting en…

You can also look into aws beanstalk. It does all the autoscaling/deployment stuff in a gui/easier api

Re: Why I left Heroku, and notes on my new AWS setup

#54
post #31

Earlier quoted context omitted.

This can be mitigated by having cron hit your site every few hours. There are some free cron services like https://www.setcronjob.com/ that do this.

Welcome to the cloud, where you need to rely on a third party service to keep your other third party service online. Of course, what happens when setcronjob.com goes down.... well you then use pingdom to check that it is up...... down the rabbit hole we go!

Welcome to the web, where you get an easy hosting service like Heroku without paying a dime and then complain about how you need to put some effort to hack the system so you can continue to pay nothing.

Re: Why I left Heroku, and notes on my new AWS setup

#55

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

Would you be interested in a blog post about it? I'm a sysadmin/devops with 12 years in, and build stuff like this on a daily basis. I wouldn't mind sharing how the sausage is made.

As no one clearly gave you a concrete response. YES I would love to see a blog post. What's your url?

Re: Why I left Heroku, and notes on my new AWS setup

#56

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

AMI = ISO

Elastic Load Balancer = software based load balancer or traffic director

auto-scaling rules = if number of connections >50 or bandwidth > 100k or reponse time >10ms start a new instance and automatically update the load balancer so the new instance takes connections

Re: Why I left Heroku, and notes on my new AWS setup

#57
This really resonates with me. I have been having identical issues with Dotcloud, a Heroku competitor.

There's nothing worse than wondering if deploying your stupid one-character typo fix will hang or leave the app in an incomplete state.

I myself am working on setting up salt stack for deployments. I like that all of it is in python, and after a couple of days I've begun to make progress.

I am migrating things slowly: first cron jobs, then internal tools, and at some point, our website. The only thing that really needs "scale" is our frontend, and I don't yet know how I'll manage that, but you know, I guess it is time to learn!

Re: Why I left Heroku, and notes on my new AWS setup

#58

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

Would you be interested in a blog post about it? I'm a sysadmin/devops with 12 years in, and build stuff like this on a daily basis. I wouldn't mind sharing how the sausage is made.

I would absolutely love this. Can't get enough solid sysops info - as a dev I find the docs, tutorials, etc out there fairly esoteric. Anything written recently and actually finished helps a ton : )

Re: Why I left Heroku, and notes on my new AWS setup

#59

> The way we set up Soundslice is relatively simple. We made a custom AMI with our code/dependencies, then set up an Elastic Load Balancer with auto-scaling rules that instantiate app servers from that AMI based on load. Doesn't sound that simple to me (as a complete sysadmin noob). Somebody should write a book about this.

I pitched a book to No Starch and a few others, and they all said there wasn't enough demand...

Re: Why I left Heroku, and notes on my new AWS setup

#60
The OP says he opted not to use Chef/Puppet and went with baked AMIs instead. In my experience, Chef simply takes too long to build a machine. I use it to ensure a repeatable, self-documented machine setup, but then if I'm on AWS I snapshot an AMI for quick scaling. This also lets you more easily use Amazon auto-scaling tools like Cloud Formation, which bring up new machines based on an AMI. But having the Chef script is still great for knowing what's on your box and having "source code" to change it.

One thing I'm curious about re the OP's process: he says he is using Fabric for deploys. Does that mean every time he deploys new code he has to snapshot a new AMI? In that case, why use Fabric at all? I'd be worried about auto-deloying AMIs with outdated code.

Since EC2 instances are "disposable," one approach is to never "update" an instance, but instead you release new code by simply launching fresh instances with the latest code, then destroying the old ones.

Post reply on HN