12 Factor App in Action 12要素应用实战

12 Factor App in Action 12要素应用实战

12 Factor App 是一组用于构建现代、可扩展和可维护的软件应用的最佳实践原则。这些原则由 Heroku 的创始人 Adam Wiggins 提出,并广泛应用于云原生应用和微服务架构中。12 Factor App 的目标是提供一个明确的“代码到部署”的路径,以便开发人员可以更容易地构建在不同环境中都能稳定运行的应用。

原文:https://12factor.net/zh_cn/

12个要素

  1. 代码库(Codebase): 一个应用应该有一个代码库,并通过多个部署进行跟踪。
  2. 依赖(Dependencies): 明确声明和隔离依赖,不要依赖于隐含存在的系统工具。
  3. 配置(Config): 将配置存储在环境变量中,而不是硬编码到应用中。
  4. 后端服务(Backing Services): 把后端服务如数据库、消息队列等当作附加资源。
  5. 构建、发布、运行(Build, Release, Run): 严格分离构建和运行阶段。
  6. 进程(Processes): 以无状态进程的方式执行应用。
  7. 端口绑定(Port Binding): 应用应该自行绑定到需要监听的端口。
  8. 并发(Concurrency): 通过进程模型进行扩展。
  9. 可处置性(Disposability): 应用应该可以快速启动和优雅地关闭。
  10. 开发环境与生产环境的一致性(Dev/Prod Parity): 保持开发、预发布和生产环境尽可能相同。
  11. 日志(Logs): 把日志当作事件流来处理。
  12. 管理进程(Admin Processes): 管理任务应作为一次性进程运行。

12 Factor App in Action

在实践中,12 Factor App 的原则通常与 DevOps 文化、持续集成/持续部署(CI/CD)以及容器化技术(如 Docker 和 Kubernetes)一起使用。这样做的好处包括:

  • 可移植性: 由于所有依赖都是明确声明的,应用更容易在不同环境中运行。
  • 可扩展性: 应用可以更容易地水平或垂直扩展。
  • 可维护性: 遵循这些原则可以使代码库更加整洁,更容易进行故障排查。
posted @ 2021-01-25 15:42  Jeff_blog  阅读(600)  评论(0编辑  收藏  举报