十二因素应用程序

介绍

在现代,软件通常作为服务交付:称为Web 应用程序或软件即服务。十二因素应用程序是一种构建软件即服务应用程序的方法,它:

  • 使用声明格式进行设置自动化,以最大限度地减少新开发人员加入项目的时间和成本;
  • 与底层操作系统有一个干净的合同,在执行环境之间提供最大的可移植性;
  • 适合部署在现代云平台上,无需服务器和系统管理;
  • 最大限度地减少开发和生产之间的差异,实现持续部署以获得最大的敏捷性;
  • 并且可以在不对工具、架构或开发实践进行重大更改的情况下进行扩展。

十二因素方法可以应用于以任何编程语言编写的应用程序,并使用支持服务(数据库、队列、内存缓存等)的任何组合。

背景

本文档的贡献者直接参与了数百个应用程序的开发和部署,并通过我们在Heroku平台上的工作间接见证了数十万个应用程序的开发、运行和扩展。

本文档综合了我们对广泛使用的各种软件即服务应用程序的所有经验和观察。它是对应用程序开发理想实践的三角测量,特别关注应用程序随时间的有机增长动态、开发应用程序代码库的开发人员之间的协作动态,以及避免软件侵蚀的成本。

我们的动机是提高对我们在现代应用程序开发中看到的一些系统性问题的认识,为讨论这些问题提供一个共享的词汇表,并为这些问题提供一组广泛的概念性解决方案,并附带术语。该格式的灵感来自 Martin Fowler 的书籍Patterns of Enterprise Application Architecture and Refactoring。

谁应该阅读这份文件?

任何构建作为服务运行的应用程序的开发人员。部署或管理此类应用程序的运维工程师。

十二要素

一、代码库

在修订控制中跟踪一个代码库,许多部署

二、依赖项

显式声明和隔离依赖项

三、配置

在环境中存储配置

四、支持服务

将支持服务视为附加资源

五、构建、发布、运行

严格分离构建和运行阶段

六、流程

将应用程序作为一个或多个无状态进程执行

七。端口绑定

通过端口绑定导出服务

八。并发

通过流程模型向外扩展

九。可处置性

通过快速启动和正常关闭最大限度地提高鲁棒性

十、 开发/产品平价

保持开发、登台和生产尽可能相似

十一、日志

将日志视为事件流

十二、管理流程

将管理/管理任务作为一次性流程运行

https://12factor.net/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值