avatar

The Twelve-Factor App: 12 Best Practices for Microservices

Mobycast
Mobycast
Episode • Sep 11, 2019 • 51m
  • The Twelve-Factor App methodology 
    • Drafted by developers at Heroku based upon their observations of what made good apps 
    • First presented by Adam Wiggins circa 2011 (then published in 2012) 
  • The Factors 
    • 1 - Codebase: one codebase tracked in revision control, many deploys 
    • 2 - Dependencies: explicitly declare and isolate dependencies 
    • 3 - Config: strict separation of config from code 
    • 4 - Backing services: foster loose coupling by treating backing services as attached resources 
    • 5 - Build, release, run: strictly separate build and run stages 
    • 6 - Processes: processes are stateless and share-nothing 
    • 7 - Port binding: export services via port binding 
    • 8 - Concurrency: scale out via the process model 
    • 9 - Disposability: processes are disposable, they can be started or stopped at a moment’s notice 
    • 10 - Dev/prod parity: Keep development, staging, and production as similar as possible 
    • 11 - Logs: treat logs as event streams, don't manage log files 
    • 12 - Admin processes: admin and utility code ships with app code to avoid synchronization issues 
  • What's Missing? 
    • 7 years since first being published, what changes should be made to make it more relevant for today? 
      • Some have argued for adding 3 additional factors: 
        • Telemetry 
        • Security 
        • "API First"-philosophy 


For a full transcription of this episode, please visit the episode webpage.

End song:
Flowerchild (Roy England Remix) by Owen Ni - Make Mistakes

We'd love to hear from you! You can reach us at:



Mobycast • The Twelve-Factor App: 12 Best Practices for Microservices • Listen on Fountain