代码之家  ›  专栏  ›  技术社区  ›  Jay

关于应用程序实例管理的问题

  •  6
  • Jay  · 技术社区  · 5 年前

    我目前正在与一个分布在美国各地的团队合作一个相当大的项目。开发人员定期向源存储库提交代码。我们有以下应用程序构建(全部由应用程序管理,没有手动过程):

    1. 持续集成:一个监视器检查代码存储库是否已经更新,如果更新了,它将进行构建并运行我们的单元测试套件。如果出现错误,团队将收到电子邮件通知
    2. 每日构建:开发人员使用此构建在实际的应用服务器上验证他们的错误修复或新代码,如果“事情”成功,开发人员可以解决该任务。
    3. 每周构建:测试人员在此构建上验证已解决的问题队列。它是一个更稳定的测试环境。
    4. 当前版本构建:用于为潜在的新用户演示和开放的测试平台。

    每个构建都会刷新与其关联的数据库。这将清理数据并验证是否拉入了与新代码一起进行的任何数据库更改。我从我们的测试人员那里听到的一个问题是,我们需要用一些预期的测试数据预先填充每周构建的数据库,而不是开发人员使用的更通用的数据。这似乎是一个合理的问题/需求,也是我们正在努力解决的问题。

    我把我们正在做的事情抛到一边,看看社会是否看到我们正在做的事情有任何差距,或者有什么顾虑。事情似乎进展顺利,但感觉可能会更好。你的想法?

    3 回复  |  直到 5 年前
        1
  •  1
  •   sateesh    14 年前

    接下来的另一个步骤是,一旦发布版本通过测试(比如Smoke测试),它就可以作为一个好的版本(比如Golden版本),您可以使用某种标记机制来标记所有进入创建Golden Image的人工制品(代码、安装脚本、生成文件、可安装文件等)。黄金构建可能稍后成为发布候选。

    也许你已经这样做了,因为你没有提到我添加了我所观察到的。

        2
  •  1
  •   Stijn Geukens    14 年前

    我们就是这样做的。 测试人员自身的数据库仅在需要时重置。如果我们每周都自动刷新,那么

    1. 我们将失去对bug症状的引用;如果发现了一个bug,但开发人员只在几周后(或仅仅在周末之后)查看它,那么该bug的所有内容都可能被破坏。
    2. 测试人员可能正处于一个大型测试用例的中间(例如,需要1天以上的时间)
    3. 我们有大量的单元测试正在针对一个数据库运行,每次执行集成构建时,数据库都会刷新(当然是自动刷新的)。

    当做,
    斯泰恩

        3
  •  0
  •   gareth_bowles    14 年前

    我认为你有一个好的,全面的过程,只要它适合你的客户想看到更新。我能看到的一个可能的差距是,看起来您无法在不到一周的时间内将一个关键的客户bug修复程序投入生产,因为您的测试构建是每周进行的,然后您需要时间让测试人员验证该修复程序。

    如果你想用一种不同的方式思考问题,请看下面这篇文章 continuous deployment -一开始接受这个概念可能有点困难,但它肯定有一些潜力。