Heroku's guiding influence – the Twelve-Factor App methodologyA codebase is always versioned and it can have multiple deploysDeclare and isolate dependencies explicitly (always)Configuration should be stored in the environmentBackend services should be treated as attached (loosely-coupled) resourcesStrict separation of the build, release, and run stages of an appAn app in execution is a process or many processesServices should be exported through port bindingAn app should scale out through its process modelFaster startup and graceful shutdown is the way to app agility and scalabilityDevelopment and production (and everything in between) should be as similar as possibleThe app should just log the event not manage itApp's administrative or management task should be run as a one-off process