Skip to content

Instantly share code, notes, and snippets.

@tsabat
Last active December 19, 2015 00:19
Show Gist options
  • Save tsabat/5868075 to your computer and use it in GitHub Desktop.
Save tsabat/5868075 to your computer and use it in GitHub Desktop.

Ok, so here's my laundry list. I'm going to use Chef terminology here, but this bleeds over to Docker, Salt, Puppet, etc.

Your stack creation product should force me to use best practices. I should specify the project type and you should do the following.

  • prompt me for my source code repo
  • set up apache/nginx/caching/db
  • run my project

It'd be great for this to work out of the box for major frameworks like rails, django, pyramid, express

Along with that, the folliowing should be included.

#All Projects

  • separation of configuration and source code
  • nfs mount for editing code on the host machine
  • logrotate
  • splunk || splunk storm || loggly integration
  • sane default CloudWatch metrics like memory usage
  • Autoscale friendly deployments (mounted ebs code dir, ebs snapshot on deployment, autoscale user_data pulls from latest snapshot)
  • deployments that don't depend on github (tarball pushed to s3 on each commit & installed from on deploy)

#Rails

  • passenger in dev and production to tease out threadsafe problems for libs like Redis.
  • sane passenger defaults for MaxPoolSize and friends for development and production, based on instance type chosen.

#Python

  • virtualenvs that build on each deployment from requirements.txt or pip stuff. Don't let system site_packages leak through to developoment
  • supervisor configuration

#DBs

#Vagrant

  • multi-node deployment mode (several boxes)
  • single-node deployment same boxes, different ports
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment