gpt4 book ai didi

java - 软件部署流程

转载 作者:行者123 更新时间:2023-11-30 07:33:12 25 4
gpt4 key购买 nike

我正在开发 Java/Spring Web 应用程序,并且对软件构建过程有疑问,尤其是有关阶段和产品环境的问题。

现在,在当前项目中,我们有以下流程 - 我们正在将 Git 开发代码分支合并到阶段,然后使用 Maven 和 Jenkins 构建和部署项目到阶段环境。验证阶段后,我们将合并阶段以掌握 Git 分支,并再次使用 Maven 和 Jenkins 构建项目并将其部署到生产环境。

这是一个正确的过程吗?我们是否需要为 stage 和 prod 环境构建单独的 war 文件(就像我们目前所做的那样),还是需要构建单个 war 文件,将其部署到 stage env 并提供 stage 参数,测试并验证它,然后部署与 prod 环境相同的 war 文件,但带有 prod 参数?

如果是第二种方法,如何正确参数化必须在 Tomcat 上运行的单个应用程序,并使用不同的 stage 和 prod 参数?另外,我们正在使用 Maven 过滤功能..在这种情况下如何处理它?<​​/p>

最佳答案

将版本从暂存升级到生产时,您通常希望将完全相同的二进制版本部署到生产,以确保在暂存上测试的版本在生产中的行为相同。

当您为生产创建新的构建时,您无法保证它的行为与您为登台创建的构建相同。据您所知,构建服务器上的 Java 版本或其他一些工具可能在这期间发生了变化。

有多种方法可以解决配置挑战。您应该首先从应用程序中剥离所有特定于环境的配置(在您的情况下为 WAR),以便您可以在所有环境中使用相同的二进制文件。接下来,您可以:

  1. 手动管理目标环境本身的配置
  2. 使用 Puppet 或 Chef 等配置系统自动推出配置更改
    或者(下面的选项是我的偏好:)
  3. 使用每个环境的配置构建包(只是普通的 zip 文件)。
    构建结果示例:

    • 应用程序.war
    • config-tst.zip
    • config-stg.zip
    • config-prd.zip

因此,当您部署到测试环境时,您将部署 war 并解压缩 config-tst.zip。当您部署到 staging 时,您会部署相同的 war 和 config-stg.zip 等。

希望这有帮助,祝你好运!

关于java - 软件部署流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35768935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com