gpt4 book ai didi

svn - 我可以如何改进我的开发和部署策略?

转载 作者:行者123 更新时间:2023-12-04 15:49:08 25 4
gpt4 key购买 nike

我正在开发一个在 LAMP 堆栈 (Linux Apache Mysql PHP) 上运行的 Web 应用程序,并希望获得有关改进我的工作流程的建议。

我有3个环境:

  • 我的本地机器又名我的 发展 环境
  • A 分期 我的专用服务器上的帐户,以便我可以测试 Web 应用程序
  • A 生产我的专用服务器上的帐户

  • 我在本地计算机上进行所有开发,并使用位于我的专用服务器上的 subversion 服务器。我设置了一个 Hook 脚本,以便每当我提交时,我的“暂存”帐户都会使用新代码进行更新。

    偶尔我会确保在临时帐户上一切正常,并通过一个小脚本将更改推送到我的生产帐户。

    这在大多数情况下效果很好,但有一些恼人的地方:
  • 我的域名在几个地方是硬编码的,这使得在环境之间切换非常耗时。我可以手动修改我的 hosts 文件,但它不是很快,并且它不适用于同一服务器上的 2 个帐户(prod/staging)。
  • 我无法在所有三种环境中使数据库保持最新。我可以为所有环境使用相同的数据库,但我必须冒破坏生产环境的风险。

  • 所以,我的问题是:我能做些什么来缓解这些问题?

    更新:硬编码域问题是由第 3 方软件引入的,因此“不对其进行硬编码”目前不是一种选择。

    最佳答案

    理想情况下,您希望登台成为生产的精确副本。这样,您在登台中看到的内容就可以合理地确信您将在生产中看到。当您提交时自动推送到暂存不会这样做,因为您在提交中引入的任何错误都会立即发送到暂存。

    您可能想要的是设置另一个环境并将其称为测试。这将是您在提交时自动推送到的地方。使用该环境进行 QA,然后您可以打包代码并将其推送到暂存以进行最终测试。如果登台一切顺利,则将包推送到生产环境。

    至于域名问题,如果可以的话,我建议不要对它们进行硬编码。或者至少为不同的环境使用子域,以便更容易地以编程方式确定您所处的环境。

    为了使您的数据库跨环境保持最新,您可能需要考虑定期从生产中进行转储,并使用该转储更新您的登台、测试和开发环境。一天一次应该有效。这样,您就可以根据用户在生产中看到的内容进行开发和测试。

    关于svn - 我可以如何改进我的开发和部署策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1992565/

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