资讯专栏INFORMATION COLUMN

12因子应用文档(一)

浠ラ箍 / 2022人阅读

摘要:因子是一种构建应用的方法用声明式的格式设置自动化,最小化新开发者加入项目的时间和成本。代码库一份被版本控制追踪的代码,多份部署因子应用会一直放在版本控制中,如,或者。每个分布式系统中的组件是一个应用,每一个都可以独立遵守因子。

原文地址: https://12factor.net/12factor...
介绍

现在软件通常交付为一个服务:可以叫web应用,或软件即服务(SaaS)。12因子是一种构建SaaS应用的方法:

用声明式的格式设置自动化,最小化新开发者加入项目的时间和成本。

与下层操作系统有清晰的契约,其与执行环境间提供最大的可移植性。

适合在现代云平台部署,消除对服务器与系统管理的需求。

减少开发与生产的区别,为最大的敏捷性支持持续部署。

可以在无任何明显对工具,架构或开发实践上的变更的情况下进行伸缩。

12因子方法可以应用在任何语言编写的应用,可以应用在任意后端服务(数据库,队列,内存缓存等)。

背景

这篇文档的内容在我们使用Heroku平台的工作中直接使用在上百个应用的开发与部署上,间接影响了数千应用的研发,运维,伸缩。

文档综合了我们所有的经验与对大量的软件即服务应用的观测。它综合了以下三点:理想的应用开发实践,关注应用的动态增长,开发者在应用代码库上的动态协作, 避免了软件被削弱的成本。

我们的目标是提出我们在现在应用开发中看到的系统性问题,提供一种讨论问题的共享词汇,提供一组广泛对此种问题使用的概念解决方案。这个格式是由Martin Fowler的书《企业应用架构模式》与《重构》激发的灵感。

I 代码库 一份被版本控制追踪的代码,多份部署

12因子应用会一直放在版本控制中,如Git,Mercurial或者Subversion。 一份版本追踪数据库即为众所周知的代码库(code repository),经常简写为code repo或者repo。

代码库是一个多带带的仓库(在中央式的版本控制系统如Subversion),或一些共享一个根路径提交的仓库集(在一个去中心化的版本控制系统如Git)。

一份代码库映射到多次部署。

代码库与应用总是一一对应的:

如果有多个代码库,那不是一个应用 -- 那是一个分布式系统。每个分布式系统中的组件是一个应用,每一个都可以独立遵守12因子。

多个应用共享相同的代码是违反12因子的。这里解决的方案是将代码用库的形式共享,这样可以在依赖管理中被引入。

每个代码库只有一个应用,但每个应用会有多份部署。一个部署是应用的一个运行实例。一般会有一个生产环境,一个或多个开发环境。 并且,每个开发都有一份应用运行在他们的本地环境中,每一份这样的应用也都是一份部署。

代码库在所有的部署中都是相同的,不过每个部署都会有不同的版本生效。比如,一个开发有一些提交还没有部署到开发环境,开发环境还有一些提交没有部署到生产环境。但他们都共享同一份代码库,所以他们可以标识为是同一个应用的不同部署。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71430.html

相关文章

  • 12因子应用文档(二)

    摘要:一个因子应用决不依赖隐式的系统级包。显式声明的依赖规范会被无差别的应用到开发环境与生产环境。一个显式声明依赖的好处是能简化开发人员对新应用的设置工作。 II. 依赖 显式声明与隔离依赖 大部分编程语言提供一套分发支持库的打包系统, 比如Perl的CPAN或Ruby的Rubygems。从打包系统安装的二方库可以在系统层面(众所周知的site packages)或包含应用的目录区域(众所周...

    JasinYip 评论0 收藏0
  • 12因子应用

    摘要:因子应用是由提供商的提出的。作为云平台厂商,该公司创始人根据经验总结出来的软件开发的方法论因子无疑值得同行学习。因子的大纲已经有中文翻译,可以直接参考每个因子的解释,可以在该网站下载英文电子版了解。 12因子应用是由PaaS提供商Heroku的Adam Wiggins提出的。Heroku已经被SaaS行业领军厂商Salesforce收购,根据维基百科的记载,同年2011年松本行弘也加盟...

    LinkedME2016 评论0 收藏0
  • 【译】十二因子应用(四)

    摘要:后端服务将后端服务视为可拔插的资源后端服务是一种在应用在网络上正常运行时消费的任意一种服务。一份因子应用的部署可以不经过任何代码修改将本地数据库替换成第三方的服务如。因子应用将这些数据库看做可拔插资源,在部署时是松耦合的。 IV 后端服务 将后端服务视为可拔插的资源 后端服务是一种在应用在网络上正常运行时消费的任意一种服务。包括数据库(如MySQL或CouchDB),消息/队列系统(如...

    lx1036 评论0 收藏0
  • 十二因子应用(三)

    摘要:原文配置将配置保存在环境中应用的配置是指在各种部署预发,线上,开发环境等时的信息。这违反了因子规则,规则要求将配置从代码中隔离。因子应用将配置信息存储在环境变量中一般是或。在因子应用中,变量是粗粒度控制。 原文:https://12factor.net/zh_cn/ III. 配置 将配置保存在环境中 应用的配置是指在各种部署(预发,线上,开发环境等)时的信息。这包括: 处理数据库,...

    刘福 评论0 收藏0
  • 测试面试基础知识

    摘要:静态测试包括对于代码测试,主要是测试代码是否符合相应的标准和规范。集成测试,是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。 ...

    DDreach 评论0 收藏0

发表评论

0条评论

浠ラ箍

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<