问题标签 [12factor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
348 浏览

configuration - 使用环境变量配置应用程序

12-Factor Apps建议您使用环境变量配置您的应用程序。到目前为止,一切都很好。如果您需要设置连接字符串,我可以很容易地想象这是一个很好的方法,例如

但是,如果您有更复杂的配置和大量的值怎么办?我肯定不想拥有 50 多个环境变量,对吗?

我怎样才能解决这个问题,并且仍然符合 12-Factor Apps 的想法?

0 投票
2 回答
1236 浏览

angularjs - 如何使 angularjs 应用程序在配置方面符合 12 因素

我正在尝试使 angularjs 应用程序 12 因素符合配置(http://12factor.net/config)。

它应该取决于环境,我不应该在代码中看到单词development, test,production等。

例如,变量可以存储在 bashenv中。我可以将它们传递给网络服务器。

我已经想到了一个 .erb 模板文件erb config.js.erb > config.js,但是如果我在应用程序运行时更改了一个变量,我就必须重做这个。

我已经找到这篇文章http://mindthecode.com/how-to-use-environment-variables-in-your-angular-application/

但这是一个很大的谎言,而且 Grunt.js 这样做,真的......无论如何。

我知道 12factor 哲学不是为前端应用程序而制定的,但我的 Angular 应用程序可以部署在许多环境中的许多不同服务器中,并且尝试正确地做事不会伤害任何人:)。

谢谢 !

编辑:

我想使用的配置参数是这样的:

其他编辑:

这家伙有点回答:http : //bahmutov.calepin.co/inject-valid-constants-into-angular.html 我觉得有点丑陋并且完全与angularjs绑定;但它有效!

0 投票
2 回答
1058 浏览

java - How to read "OS variables" from Java (not System.properties)

I just read the excellent 12 Factor App document and it really registered with me. In Chapter 3 Config, the author stresses that:

The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard.

I'm wondering what this implies for Java projects.

Typically, when it comes to my Java apps, I think of "env vars" as things that I can read from System.getProperty("blah"). Is this what the author is talking about? I don't think this is, because the author explicitly states "and unlike...or other config mechanisms such as Java System Properties...".

If not, what would be an example of an OS-agnostic "env var" that would satisfy this document's definition of "env var"? How would I read it from inside Java code?

Either way, some process has to first set each env var on the OS, so that the var is set & available by the time the app runs. What processes/methods could do this type of pre-run setup?

0 投票
1 回答
1420 浏览

environment-variables - 使用 Docker 的 12 要素配置方法

是否有任何本机或普遍接受的方法来使用环境变量来控制 Docker 行为,即以 12 因素的方式?

我见过的唯一与语言无关的方法是使用 -e 变量污染 docker run 命令。我见过的最可维护的解决方案是使用 cat 和 sed 的组合使用 .env 文件生成 CLI 参数:https ://twitter.com/DataKyle/status/422843345120296960

我们目前使用 Vagrant for dev,一个用于测试和部署的 CI/CD 托管提供商,以及 AWS Elastic Beanstalk 作为暂存和生产 PAAS。我们的应用程序有 100 多个可配置参数,其中大部分设置为默认值,但每个环境仍需要自定义其中的 10-20 个左右。用大量的命令行变量来运行 docker 似乎太 hacky 了。

此外,它不允许您从 docker 主机获取变量(例如 CI 提供者的预安装 Redis 或 Postgres 凭据),而无需进一步破解。

有没有我还没有找到的解决方案?或者这是 Docker 的缺失部分?或者这是否在某种程度上违背了 Docker 哲学?

0 投票
3 回答
2185 浏览

java - 12 因素应用程序配置和 Java

我正在阅读 12 因素应用程序宣言http://12factor.net/。宣言建议将应用程序的配置数据存储在环境变量中。这是否意味着数据库用户名/密码、资源 URL 等属性应该存储为 Java Env 变量的一部分而不是属性文件?这是一种安全的信息存储方式吗?对我来说,这似乎是一种非常笨重的信息存储方式。有没有可以分享的最佳实践/经验?

我能想到的一种选择是在景观中运行一个单独的配置服务,并使用 Env 属性连接到配置服务,然后查询配置服务以获取更多详细的配置数据。

0 投票
2 回答
1591 浏览

java - 为什么 12 Factor 应用程序应该是自包含的?

在关于端口绑定的 12 Factor 文章 http://12factor.net/port-binding中,要求每个应用程序都是独立的,并且没有注入运行时,例如 Tomcat。出于什么原因,建议这样做......微服务的自包含应用程序有什么优势?

0 投票
1 回答
291 浏览

tomcat - 带有嵌入式 tomcat 和 apache http 服务器的端口绑定、负载平衡器和横向扩展架构

12因素应用建议使用端口绑定,以便应用完全自包含。我们可以使用嵌入式 tomcat 或 jetty 来实现这一点,但我想知道在这种情况下如何处理横向扩展。

设置

目前我有使用嵌入式 tomcat 公开的服务。我可以使用 Apache HTTP 服务器进行负载平衡。

问题

这种场景下如何动态添加新服务进行横向扩展?我问是因为添加新服务意味着我还需要将其添加为现有集群的一部分。

0 投票
3 回答
511 浏览

12factor - 为什么 12factor 建议不要守护进程?

12factor 建议不要守护进程。这样做有什么缺点?

0 投票
1 回答
337 浏览

linux - 需要澄清十二因素应用程序宣言的第八个因素和守护进程

我指的是十二因素应用程序“宣言”,可以在这里找到:http: //12factor.net

第八个因素中,作者写道:

十二因素应用程序进程不应守护或写入 PID 文件。相反,依靠操作系统的进程管理器(例如 Upstart,云平台上的分布式进程管理器,或开发中的 Foreman 等工具)来管理输出流、响应崩溃的进程以及处理用户启动的重启和关闭。

我不确定“进程永远不应该守护进程”是什么意思。

有人可以解释守护进程的优缺点 - 特别是在java进程的上下文中?另外,进程管理器不能管理守护进程吗?

0 投票
1 回答
265 浏览

java - 在 JVM 中将管理/管理任务作为一次性进程运行(12 因素应用程序)

有人可以提供一个将管理/管理任务作为一次性流程运行的示例(如 12 要素应用程序宣言的第 12 要素中所提出的),记住这将是在依赖 Gradle buildpack 的 JVM 应用程序的上下文中和在 Heroku 上运行?