十二因素应用程序是一种用于构建在云中运行并作为服务提供的分布式应用程序的方法。该方法由Heroku的联合创始人Adam Wiggins开发,Heroku是一种平台即服务,现在是Salesforce.com的一部分。Wiggin的目标是综合在Heroku上部署应用程序的最佳实践,并为刚接触云的开发人员提供一个框架,用于讨论本机云应用程序的挑战。
尽管今天开发人员看起来有些因素似乎不言自明,但随着微服务和由松散耦合的 Web服务组成的应用程序的兴起,开发符合常见最佳实践的应用程序的兴趣不断增加。
开发人员在构建本机云应用程序时应考虑的12个因素。
1.代码库
使用一个代码库,即使在构建跨平台应用程序时也是如此。通过版本控制满足特定设备的需求。
2.依赖关系
明确声明并隔离所有依赖关系。
3.配置
不要将config作为常量存储在代码中。相反,设计应用程序以从环境中读取其配置。
4.服务
后备服务将后端服务视为附加资源,使用存储在config中的URL或其他定位器进行访问 。
5.构建,发布,运行
严格单独的构建和运行阶段。
6.进程
将应用程序作为一个或多个无状态进程执行。必须持久化的数据应存储在有状态的后备服务中。
7.端口绑定
使用端口绑定导出服务。
8.并发横向扩展
应用程序,而不是垂直扩展。
9.可处理性
使用快速启动和优雅关闭来最大化稳健性。
10.奇偶校验
通过确保开发,分段和生产环境尽可能相似,促进持续部署。
11.日志
将日志视为事件流。日志不应该与路由或存储应用程序的输出有关。
12.管理进程
从运行最新生产代码的生产环境中的计算机上将管理任务作为一次性进程运行。
12个因素的基础知识
当开发人员使用十二因素应用程序DevOps方法时,应用程序将具有某些共同特征,可以在应用程序扩展时解决各种情况。例如,该方法建议应用程序使用声明性格式进行设置自动化,以帮助稍后进入项目的新开发人员。
还应编写应用程序以在执行环境之间实现最大的可移植性。并且无需重大改造即可轻松扩展。十二个因素应用程序可以用任何编程语言编写,并与任何后端服务(如数据库)结合使用。
十二因素框架的目标是帮助开发人员构建使用体系结构的应用程序,该体系结构可确保速度,可靠性,灵活性和可移植性,并最终实现强大而可靠的应用程序。
1096
174
上一篇:搜索引擎结果页面(SERP)
下一篇:可访问性测试