Java 将所有环境(dev-uat-prod)的jar和config打包在一个zip中是否是一种好的做法?
我正在编写一些操作团队部署在unix服务器上的软件。ops将软件部署到不同的环境中。即dev、uat和prod 可执行文件将在每个环境上进行不同的配置,因此是特定于环境的配置文件 我需要过程尽可能简单,同时限制人为错误的可能性(简单性肯定对后者有很大影响) 标题中描述的方法的一个主要优点是部署运行手册与环境无关。因此,runbook非常简单: 登录到目标部署计算机 卷曲压缩文件 解开它 使用需要的配置(dev、uat或prod)运行可执行文件 我当前的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
Executable jar file
App-dev.properties
App-uat.properties
App-prod.properties
我正在检查我的选项,并寻找最佳做法的建议,以使部署尽可能简单,同时最大限度地减少人为错误的影响。我不认为好的做法/坏的做法会出现在其中。如果对你有用,就去做 我想你问的真正原因是想知道是否有任何可能的缺点。我能想到的只有:
- 如果配置包括密码或密钥,那么在非生产机器中使用一个综合ZIP文件可能会使生产密钥/密码暴露得更多
- 这将导致更多的ZIP“版本”的存在,这可能会导致更多的跟踪问题。(但可能不会……因为应该有办法解决这个问题。)
- (来自thkala的评论)如果在其他平台上使用的ZIP文件中包含生产配置,则有可能有人意外地在非生产平台上部署“生产”系统。这可能会产生灾难性的后果;e、 g.垃圾生产数据库或安全问题
- 如果配置包括密码或密钥,那么在非生产机器中使用一个综合ZIP文件可能会使生产密钥/密码暴露得更多
- 这将导致更多的ZIP“版本”的存在,这可能会导致更多的跟踪问题。(但可能不会……因为应该有办法解决这个问题。)
- (来自thkala的评论)如果在其他平台上使用的ZIP文件中包含生产配置,则有可能有人意外地在非生产平台上部署“生产”系统。这可能会产生灾难性的后果;e、 g.垃圾生产数据库或安全问题