The 12 factor app methodology was created by developers at Heroku after their experience working with hundreds of thousands of apps on the Heroku platform. They noticed that successful apps shared a core set of things in common. First published in 2012, the 12 Factor App attempts to distill these commonalities into 12 principals. But the 12 Factor App is now over 7 years old which is several lifetimes in the technology world. Is it still applicable to today’s modern, cloud-native applications? In this episode of Mobycast, Jon and Chris go through the 12 factors explaining each one in detail and debating its relevance to today’s cloud-native applications.

Show Notes

  • 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:

What is Mobycast?

A Podcast About Cloud Native Software Development, AWS, and Distributed Systems