Skip to content

Instantly share code, notes, and snippets.

@jpotts18
Created July 28, 2015 18:38
Show Gist options
  • Save jpotts18/9ed546bc3276304a69c3 to your computer and use it in GitHub Desktop.
Save jpotts18/9ed546bc3276304a69c3 to your computer and use it in GitHub Desktop.

Benefits

  • Configuration is not in code
  • Easily deploy of crud apps
  • Easy scaling
  • Easily addons
  • Enforces scalable architecture

Drawbacks

  • App that rely on webkit2png
  • Limited by buildpacks
  • Limited by addons. For example no image processing, machine learning
  • Once you get outside of your typical web app you are limited
  • Bad use case for Play! because it uses docker container

When to use Heroku

  • JSON REST API with conventional datastore
  • Custom marketing sites - Pyur Website
  • It might be easier to provision and deploy a service through and addon

When NOT to use Heroku

  • System Dependencies that are difficult to install
  • Tools that are not optimized for common use (Image Processing, Scientific data processing, Neural Networks)
  • Mult-language Applications
  • Anything that requires GPU acceleration
  • Specialized depoyment

Lessons from Heroku

  • One database per app
  • Non technical clients can setup billing and scale their apps
  • Highly scalable because it limits dependencies and seperates responsibilities
  • Scale out via the process model
  • Bus Factors
  • Simplify the depoyment process so anyone can do it
  • Servers can be easily replicated
  • Don't have the one off server
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment