构建 SaaS 应用的方法论。原文链接。
1 基准代码
- 一份基准代码,多份部署
- 一个服务只有一个镜像,不同环境使用不同的配置部署
2 依赖
- 显式声明依赖关系并隔离依赖
- 锁定依赖版本(pipenv)
3 配置
- 配置与代码分离
- 在环境中储存配置
4 后端服务
- 后端服务作为附加资源
- 服务配置化
5 构建,发布和运行
- 严格分离构建和运行阶段
- 建立 CI/CD 流程
6 进程
- 无状态进程
- 持久化数据存储在外部(实现弹性的前提)
7 数据隔离
- 每个服务管理自己的数据
- 服务之间只能通过 API 通信(微服务)
8 并发
- 通过进程模型进行扩展
- 提高资源利用率
9 易处理
- 通过快速启动和优雅退出来最大化应用的健壮性
10 开发环境和线上环境等效
- 尽可能保证开发环境,预发布环境和生产环境相同
- 使用相同的镜像
- 解决不同环境的依赖服务内容
11 日志
- 把日志当作事件流
- 把日志输出到外部系统中统一记录
12 管理进程
- 把后台管理任务当作一次性进程来运行
- 管理进程与服务运行在相同的环境中