You might not have heard of the twelve-factor app methodology, but for any developer that has had to construct an application that can be deployed on any cloud platform, twelve-factor app is a leading methodology for creating scalable, versatile apps.
By developing applications with the 12 factors, you can create applications that can be deployed on any cloud platform, they are ultra scalable and they are safe, which will be a necessity of any application, if it is not already. The founders are the creators of Heroku and have used best practices and lessons learned to inform the development of this broad conceptual process. The factors included in the process specifically highlight the collaboration between developers and offer a broad solution to the common problems and challenges within development environments.
By using the twelve-factor methodology, you can create a software-as-a-service application 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.
Source: Twelve-factor App
As implied by its name, the methodology contains 12 factors, and within each factor are important pieces on which to focus when creating applications for SaaS applications. For instance, the first factor is Codebase. Codebase, as used in the twelve-factor app methodology, refers to the use of a source control system, or one repository, and developers deploy constantly. If there are multiple codebases that is considered a distributed system, not an application.
The 12 factors are as follows:
- Codebase
- Dependencies
- Config
- Backing Services
- Build, Release, Run
- Processes
- Port Binding
- Concurrency
- Disposability
- Dev/prod parity
- Logs
- Admin Processes
To find out more about how to use twelve/factor app to create secure, scalable applications, check out these resources:
http://www.oreilly.com/webops-perf/free/beyond-the-twelve-factor-app.csp
Keep in mind, that developing applications that can be deployed on any cloud platform will eventually become a requirement, and the twelve-factor app methodology is a surefire way to make that happen.