The twelve-factor app is a methodology for building software-as-a-service apps, based and developed by Heroku (GIT). It provides practical guidance for building decoupled, scalable, and easy-to-deploy applications and it it a recipe for building applications that are cloud and PaaS compatible. It also could be use in micro-services development, not only applications. The Twelve-Factor approach could be the baseline for modern application development: the “native PaaS architecture”.
Introduction (from 12factor.net)
In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:
- Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
- Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
- Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
- Minimize divergence between development and production, enabling continuous deployment for maximum agility;
- And can scale up without significant changes to tooling, architecture, or development practices.
The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).