Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Heavy EC2 user here. This doesn't solve your problems, if you want to do this right, setup an EC2 Auto Scaling group and build an image each time you need to change your server. That is the proven way most large deployments work, including Netflix.


Yes but most people don't have large deployments like Netflix. The main reason Neftlix and co build entire images is because if you're scaling up and down by thousands of instances then the extra time for those instances to do all the build, configuration and so on is material. So you're better to do it once and essentially CTRL+C CTRL+V.

If you're only scaling up a few instances at a time then your number one consideration is probably making life easy for yourself.


We tend to take an in-between approach, baking base AMIs as needed but configuring and installing code with Ansible at boot time. We've got scripts to cut tarballs with an Ansible playbook plus support files from any tag in our repo. Then it's just a matter of specifying the tag in user-data when starting an instance. We do that through CloudFormation.

edit: grammar


I have a semi-old blog post about how we do it here: http://blog.kristian.io/aws/2014/06/28/how-we-moved-from-her...


Is there any guide on how to integrate this in a deployment workflow? I would be very much interested in reading up on how to do this the best way.


We use this approach at MixRadio, you can read about it on our blog: http://dev.mixrad.io/blog/2014/10/31/How-we-deploy-at-MixRad...

There is also a video of a talk about it: https://skillsmatter.com/skillscasts/6057-herding-cattle-wit...

We based our approach on Netflix but ended up building our own tools which we've now open sourced.


If you're interested, shoot me an email and I will be happy to go through our setup. You can find my contact info at kristian.io




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

Search: