十二因素应用程序是一种用于构建软件即服务应用程序的方法学,参见 https://12factor.net
- 使用声明性格式进行设置自动化,以最小化新加入项目的开发者的时间和学习成本;
- 与底层操作系统之间保持�简洁的契约,在执行环境之间提供最大的可移植性;
- 适合在现代云平台上部署,避免对服务器和系统管理的额外需求;
- 最小化开发和生产之间的分歧,实现持续部署以实现最大灵活性;
- 可以扩展而无需对工具,架构或开发实践进行重大更改。
1. Codebase 代码库
One codebase tracked in revision control, many deploys
用一个代码库进行版本控制,多次部署
2. Dependencies 依赖
Explicitly declare and isolate dependencies
显式声明和隔离依赖关系
3. Config 配置
Store config in the environment
在环境中存储配置
4. Backing services 支持服务
Treat backing services as attached resources
将支持服务作为附加资源
5. Build, release, run 构建,发布和运行
Strictly separate build and run stages
严格区分构建和运行阶段
6. Processes 进程
Execute the app as one or more stateless processes
以一个或多个无状态进程运行应用程序
7. Port binding 端口绑定
Export services via port binding
通过端口绑定导出服务
8. Concurrency 并发
Scale out via the process model
通过进程模型横向扩展
9. Disposability 一次性
Maximize robustness with fast startup and graceful shutdown
通过快速启动和�优雅�退出来最大限度地提高�健壮性
10. Dev/prod parity 相似的开发和产品环境
Keep development, staging, and production as similar as possible
保持开发,测试和产品环境尽可能相似
11. Logs 日志
Treat logs as event streams
将日志视为事件流
12. Admin processes 管理过程
Run admin/management tasks as one-off processes
将管理/管理任务作为一次性进程运行
网友评论