将所有环境(dev uat prod)的 jar 和配置打包在一个 zip 中是一种好习惯吗?

Posted

技术标签:

【中文标题】将所有环境(dev uat prod)的 jar 和配置打包在一个 zip 中是一种好习惯吗?【英文标题】:Is it a good practice to package jar and config for all environments (dev uat prod) in one zip? 【发布时间】:2012-06-16 14:48:21 【问题描述】:

我正在编写一些运营团队部署在 Unix 服务器上的软件。该软件由操作部署到不同的环境。即 dev、uat 和 prod。

可执行文件将在每个环境中进行不同的配置,因此特定于 env 的配置文件。

我需要流程尽可能简单,并限制人为错误的可能性(简单性肯定会对后者产生很大影响)。

标题中描述并反映在下面的方法的一个主要优点是部署运行手册与环境无关。因此,运行手册非常简单:

登录目标部署机器 卷曲 zip 文件 解压 运行所需配置的可执行文件(dev、uat 或 prod)

我当前的 zip 示例:

Executable jar file
App-dev.properties
App-uat.properties
App-prod.properties

我正在检查我的选项并寻找有关最佳做法的建议,以使部署尽可能简单,同时最大限度地减少人为错误的影响。

【问题讨论】:

什么配置?什么环境。更多细节可能会带来更好的答案。 除非您大量扩展您的问题,否则我看不出如何合理回答。你不能在没有上下文的情况下问这样一个笼统的问题,然后期待一个有用的答案。 *** is not a mind-reader... 哦,你的标题中的“uat”是什么?我可以什么是“dev”和“prod”(不过我希望“prod”不是用于牛的东西)但是“uat”却让我无法理解...... UAT == 用户验收测试。 @thkala - 请参阅 en.wikipedia.org/wiki/… 了解使用此缩写的示例。 【参考方案1】:

我不认为好的做法/坏做法会影响它。如果它适合你,那就去做吧。

我认为您询问的真正原因是找出是否存在任何可能的缺点。我能想到的只有:

如果配置包含密码或密钥,那么在非生产机器中拥有一个综合 ZIP 文件可能会暴露生产密钥/密码,而不是他们需要的。

这将导致 ZIP 存在更多“版本”,这可能会导致跟踪它们时出现更多问题。 (可能不是……因为应该有办法解决这个问题。)

(来自 thkala 的评论)如果您在其他平台上使用的 ZIP 文件中包含生产配置,则存在有人可能会意外在非生产平台上部署“生产”系统的风险。这可能会造成灾难性的后果;例如废弃的生产数据库或安全问题。

【讨论】:

还有一个问题是确保最终用户不会最终安装其他配置之一 - 这可能会非常尴尬,具体取决于版本之间的差异......

以上是关于将所有环境(dev uat prod)的 jar 和配置打包在一个 zip 中是一种好习惯吗?的主要内容,如果未能解决你的问题,请参考以下文章

Dev,SIT,UAT, Staging, Prod,DR环境分别是意思?

DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义

DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义

什么是 开发环境测试环境生产环境UAT环境仿真环境

需要 SSIS 的帮助

Spring Boot 5-profile配置