十二要素(The Twelve Factors)是由 Heroku 团队提出的云应用设计理念,是构建 SaaS 应用的一套方法论,特别关注应用程序随时间的推移而有机增长的动态性,开发者之间的有效代码协作,以及避免软件腐蚀。

十二个要素分别为:

  1. 基准代码:同一套基准代码可以重用到多次部署中,共享的是代码,不同的仅是配置;
  2. 依赖:显式声明第三方依赖;
  3. 配置:将配置存储到环境变量;
  4. 后端服务:将后端服务作为松耦合的资源;
  5. 构建、发布、运行:严格区分应用的非运行时状态和运行时状态;
  6. 进程:将应用作为无状态的进程运行;
  7. 端口绑定:通过端口绑定对外发布服务,使用内嵌式web服务器或Spring Boot;
  8. 并发:能够通过水平伸缩应用程序进程来实现并发;
  9. 快速启动和优雅关闭:快速启动是为了在需要的时候,快速提供服务;优雅关闭是为了保证应用逻辑的完整性,将该完成的任务处理完再释放资源;
  10. 开发与生产环境等价:尽可能保证开发于生产环境的相似性;
  11. 日志:使用事件流处理日志,使用Flume、Filebeat等日志收集工具,将日志发送至Elasticsearch,用于排错和分析;
  12. 管理进程:把后台管理任务作为一次性的进程运行;

详细信息建议到官网学习:https://www.12factor.net/