基础代码
一份基础代码、多份部署
依赖
显式声明依赖关系
配置
在环境中存储配置
后端服务
把后端五福当做附加资源
构建、发布、运行
严格分离构建和运行
进程
以一个或多个无状态进程运行应用
端口绑定
通过端口绑定提供服务
并发
通过进程模型进行拓展
易处理
快速启动和优雅终止可最大化健壮性
开发环境与线上环境等价
尽可能的保持开发、预发布,线上环境相同
日志
把日志当做事件流
进程管理
后台管理任务当做一次性进程运行
一份基准代码,多份部署
使用版本控制系统加以管理
基准代码与应用保持一一对应的关系
尽可能每个应用值对应一份基础代码、但可以同时存在多份部署
显式声明依赖关系
12-Factor的应用程序不会隐式依赖系统级的类库
他一定通过依赖清单,确切的声明所有依赖项
在运行过程中,通过依赖隔离工具来确保程序不会调用系统中存在但清单中未存在的依赖项
严格分离构建和运行
12-Factor应用严格区分构建、发布、运行三个步骤
部署工具通常都提供了发布管理工具
每一个发布版本必须对应一个唯一的发布ID
以一个或多个无状态进程运行应用
12-Factor应用的进程必须无状态且无共享
任何需要持久化的数据都要存储在后端服务内
快速启动和优雅终止可最大化健壮性
进程应用追求最小启动时间
进程一旦接受终止信号就会优雅的终止
进程应当在突然死亡时保持健壮
尽可能的保持开发、预发布、线上环境相同
想要做到持续部署就必须缩小本地与线上的差异
后端服务是保持开发与线上等价的重要部分
应该反对在不同环境使用不同的后端服务
--摘自极客时间玩转Spring全家桶