摘要:一个因子应用决不依赖隐式的系统级包。显式声明的依赖规范会被无差别的应用到开发环境与生产环境。一个显式声明依赖的好处是能简化开发人员对新应用的设置工作。
II. 依赖 显式声明与隔离依赖
大部分编程语言提供一套分发支持库的打包系统, 比如Perl的CPAN或Ruby的Rubygems。从打包系统安装的二方库可以在系统层面(众所周知的“site packages”)或包含应用的目录区域(众所周知的“vendoring”或“bundling”)。
一个12因子应用决不依赖隐式的系统级包。它会声明所有依赖项,完整并精确地,通过依赖声明的清单。更进一步,它使用一种依赖隔离工具来保证执行期没有隐式的依赖被“泄露”到周围的系统。显式声明的依赖规范会被无差别的应用到开发环境与生产环境。
例如,Ruby的Gem Bundler提供Gemfile 文件格式作为依赖生命,bundle exec作为依赖隔离。Python有两个不同的工具来做这些步骤 — Pip用来声明作为隔离目的的Virtualenv。 就算是C也有为依赖声明的Autoconf,和提供依赖隔离的静态链接。不管什么工具链,依赖声明与隔离都必须一起使用— 只有一个或另一个不能满足12因子的需要。
一个显式声明依赖的好处是能简化开发人员对新应用的设置工作。新开发者可以从应用代码库检出代码到他们的开发机器,前置条件只是安装过语言的运行时及依赖管理器。他们可以用build命令设置好运行程序所需的所有东西。例如,Ruby/Bundler 的build命令是bundle install,Clojure/Leiningen的是lein deps。
12因子应用也不依赖任何隐式的其他系统工具的依赖。比如shell命令ImageMagick或curl。这些工具当然可能存在在许多或大部分系统中,但这并不保证他们会存在在所有系统或应用以后可能运行的系统,或以后的系统版本能否兼容现有版本的应用。如果应用需要使用外部的系统工具,这个工具需要被打包进应用里。
原文地址: https://12factor.net/12factor...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76966.html
摘要:因子是一种构建应用的方法用声明式的格式设置自动化,最小化新开发者加入项目的时间和成本。代码库一份被版本控制追踪的代码,多份部署因子应用会一直放在版本控制中,如,或者。每个分布式系统中的组件是一个应用,每一个都可以独立遵守因子。 原文地址: https://12factor.net/12factor... 介绍 现在软件通常交付为一个服务:可以叫web应用,或软件即服务(SaaS)。1...
摘要:后端服务将后端服务视为可拔插的资源后端服务是一种在应用在网络上正常运行时消费的任意一种服务。一份因子应用的部署可以不经过任何代码修改将本地数据库替换成第三方的服务如。因子应用将这些数据库看做可拔插资源,在部署时是松耦合的。 IV 后端服务 将后端服务视为可拔插的资源 后端服务是一种在应用在网络上正常运行时消费的任意一种服务。包括数据库(如MySQL或CouchDB),消息/队列系统(如...
摘要:因子应用是由提供商的提出的。作为云平台厂商,该公司创始人根据经验总结出来的软件开发的方法论因子无疑值得同行学习。因子的大纲已经有中文翻译,可以直接参考每个因子的解释,可以在该网站下载英文电子版了解。 12因子应用是由PaaS提供商Heroku的Adam Wiggins提出的。Heroku已经被SaaS行业领军厂商Salesforce收购,根据维基百科的记载,同年2011年松本行弘也加盟...
阅读 879·2021-10-13 09:39
阅读 3533·2021-09-26 10:16
阅读 2864·2019-08-30 15:54
阅读 1040·2019-08-30 14:22
阅读 2890·2019-08-29 15:39
阅读 3254·2019-08-27 10:52
阅读 811·2019-08-26 13:59
阅读 1706·2019-08-26 12:20