The Twelve Factors
I. Codebase
One codebase tracked in revision control, many deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as similar as possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off processes
十二因素
一、代码库
在修订控制中跟踪一个代码库,许多部署
二、依赖关系
显式声明和隔离依赖关系
三、配置
在环境中存储配置
四。后援服务
将备份服务视为附加资源
五、构建、发布、运行
严格分离构建和运行阶段
六、流程
将应用程序作为一个或多个无状态进程执行
七、端口绑定
通过端口绑定导出服务
八、并发
通过流程模型横向扩展
九、一次性性
通过快速启动和平稳关闭,最大限度地提高鲁棒性
十、开发/产品奇偶校验
保持开发、分期和生产尽可能相似
十一、日志
将日志视为事件流
十二。管理进程
将管理/管理任务作为一次性流程运行