12 factor app design principles
12 factor app design is a methodology for building modern, scalable,
maintainable software-as-a-service applications.The methodology is
suitable for modern cloud architecture and microservice based apps.
The Twelve-Factor app was published by Heroku co-founder Adam Wiggins in 2011 based on the development, operation and scaling witnessed on the Heroku platform. “Twelve Factor apps are built for agility and rapid deployment, enabling continuous delivery and reducing the time and cost for new developers to join a project. At the same time, they are architected to exploit the principles of modern cloud platforms while permitting maximum portability between them. Finally, they can scale up without significant changes to tooling, architecture or development practices,” the Heroku team wrote in a post
According to its website, the 12 factors are:
The Twelve-Factor app was published by Heroku co-founder Adam Wiggins in 2011 based on the development, operation and scaling witnessed on the Heroku platform. “Twelve Factor apps are built for agility and rapid deployment, enabling continuous delivery and reducing the time and cost for new developers to join a project. At the same time, they are architected to exploit the principles of modern cloud platforms while permitting maximum portability between them. Finally, they can scale up without significant changes to tooling, architecture or development practices,” the Heroku team wrote in a post
According to its website, the 12 factors are:
- One codebase tracked in revision control, many deploys
- Explicitly declare and isolate dependencies
- Store config in the environment
- Treat backing services as attached resources
- Strictly separate build and run stages
- Execute the app as one or more stateless processes
- Export services via port binding
- Scale out via the process model
- Maximize robustness with fast startup and graceful shutdown
- Keep development, staging and production as similar as possible
- Treat logs as event streams
- Run admin/management asks as one-off processes
Comments (0)
Post a Comment
Cancel