Java 将所有环境(dev-uat-prod)的jar和config打包在一个zip中是否是一种好的做法?

Java 将所有环境(dev-uat-prod)的jar和config打包在一个zip中是否是一种好的做法?,java,deployment,environment,Java,Deployment,Environment,我正在编写一些操作团队部署在unix服务器上的软件。ops将软件部署到不同的环境中。即dev、uat和prod 可执行文件将在每个环境上进行不同的配置,因此是特定于环境的配置文件 我需要过程尽可能简单,同时限制人为错误的可能性(简单性肯定对后者有很大影响) 标题中描述的方法的一个主要优点是部署运行手册与环境无关。因此,runbook非常简单: 登录到目标部署计算机 卷曲压缩文件 解开它 使用需要的配置(dev、uat或prod)运行可执行文件 我当前的zip示例: Executable jar

我正在编写一些操作团队部署在unix服务器上的软件。ops将软件部署到不同的环境中。即dev、uat和prod

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

我需要过程尽可能简单,同时限制人为错误的可能性(简单性肯定对后者有很大影响)

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

登录到目标部署计算机 卷曲压缩文件 解开它 使用需要的配置(dev、uat或prod)运行可执行文件

我当前的zip示例:

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

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

我不认为好的做法/坏的做法会出现在其中。如果对你有用,就去做

我想你问的真正原因是想知道是否有任何可能的缺点。我能想到的只有:

  • 如果配置包括密码或密钥,那么在非生产机器中使用一个综合ZIP文件可能会使生产密钥/密码暴露得更多

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

  • (来自thkala的评论)如果在其他平台上使用的ZIP文件中包含生产配置,则有可能有人意外地在非生产平台上部署“生产”系统。这可能会产生灾难性的后果;e、 g.垃圾生产数据库或安全问题


我认为这里面没有好的做法/坏的做法。如果对你有用,就去做

我想你问的真正原因是想知道是否有任何可能的缺点。我能想到的只有:

  • 如果配置包括密码或密钥,那么在非生产机器中使用一个综合ZIP文件可能会使生产密钥/密码暴露得更多

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

  • (来自thkala的评论)如果在其他平台上使用的ZIP文件中包含生产配置,则有可能有人意外地在非生产平台上部署“生产”系统。这可能会产生灾难性的后果;e、 g.垃圾生产数据库或安全问题


什么配置?什么环境。更多的细节可能会带来更好的答案。除非你对你的问题进行更多的阐述,否则我看不出如何合理地回答。你不能在没有背景的情况下问这样一个一般性的问题,然后期望得到一个有用的答案。哦,你的头衔中的“uat”是什么?我可以猜出“dev”和“prod”是什么(不过我希望“prod”不能用于牛),但“uat”让我摸不着头脑……uat==用户验收测试。@thkala-有关此缩写的使用示例,请参见。什么配置?什么环境。更多的细节可能会带来更好的答案。除非你对你的问题进行更多的阐述,否则我看不出如何合理地回答。你不能在没有背景的情况下问这样一个一般性的问题,然后期望得到一个有用的答案。哦,你的头衔中的“uat”是什么?我能猜出“dev”和“prod”是什么(不过我希望“prod”不是用于牛的东西),而是“uat”逃避我…UAT==用户验收测试。@thkala-请参阅此缩写的使用示例。还有一个问题是确保最终用户不会安装其他配置之一-这可能会非常尴尬,根据版本之间的差异…还有一个问题是确保最终用户不会安装其他配置之一-这可能会非常尴尬,这取决于版本之间的差异。。。