关于应用程序实例管理的问题
我目前正在与一个分布在美国各地的团队一起开发一个相当大的项目。开发人员定期将代码提交到源存储库。我们有以下应用程序构建(全部由应用程序管理,无需手动流程):
- 持续集成:监视器检查代码存储库是否已更新,如果是,则进行构建并运行我们的单元测试套件。出现错误时,团队会收到电子邮件通知
- 每日构建:开发人员使用此构建来验证实际应用程序服务器上的错误修复或新代码,如果“事情”成功,开发人员可以解决任务。
- 每周构建:测试人员验证此构建上已解决的问题队列。这是一个更稳定的测试环境。
- 当前版本构建:用于演示和为潜在新用户提供的开放测试平台。
每个构建都会刷新与其关联的数据库。这会清理数据并验证与新代码一起发生的任何数据库更改。我从测试人员那里听到的一个担忧是,我们需要用一些预期的测试数据(而不是更通用的数据)预先填充每周构建数据库与开发人员合作。这似乎是一个合理的担忧/需求,也是我们正在努力解决的问题。
我正在放弃我们正在做的事情,看看 SO 社区是否认为我们正在做的事情有任何差距,或者有任何担忧。事情似乎进展顺利,但感觉还可以更好。你的想法?
I am currently working on a rather large project with a team distributed across the United States. Developers regular commit code to the source repository. We have the following application builds (all are managed by an application, no manual processes):
- Continuous Integration: a monitor checks to see if the code repository has been updated, if so it does a build and runs our unit test suite. On errors, the team receive email notifications
- Daily Build: Developers use this build to verify their bug fixes or new code on an actual application server, and if "things" succeed, the developer may resolve the task.
- Weekly Build: Testers verify the resolved issue queue on this build. It is a more stable testing environment.
- Current Release build: used for demoing and an open testing platform for potential new users.
Each build refreshes the database associated with it. This cleans data and verifies any databases changes that go along with the new code are pulled in. One concern I hear from our testers is that we need to pre-populate the weekly build database with some expected testing data, as opposed to more generic data that developers work with. This seems like a legitimate concern/need and is something we are working on.
I am tossing what we are doing out to see if the SO community sees any gap with what we are doing, or have any concerns. Things seems to be working well, but it FEELS like it could be better. Your thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
接下来的一个额外步骤是,一旦发布版本通过测试(例如冒烟测试),那么它就被认为是一个好的版本(例如黄金版本),并且您使用某种标记机制来标记所有工件(代码、安装脚本、makefile、可安装文件等)用于创建黄金映像。黄金构建可能会在以后成为候选版本,也可能不会。
也许您已经在这样做了,因为您没有提到我添加了我所观察到的内容。
An additional step that is followed is that once the release build passes tests (say smoke test) then it is qualified as a good build (say a golden build) and you use some kind of labeling mechanism to label all the artefacts (code, install scripts, makefiles, installable etc.) that went into the creation of the golden image. The golden build may become a release candidate later or not.
Probably you are already doing this, since you don't mention I added what I had observed.
这几乎就是我们做事的方式。
测试人员本身的数据库仅根据需要重置。如果我们每周自动刷新一次,那么
,
斯泰因
this is pretty much the way we do it.
The DB of the testers themselves is only reset on demand. If we would refresh this automatically every week then
regards,
Stijn
我认为您拥有一个良好、全面的流程,只要它适合您的客户希望看到更新的时间即可。我发现的一个可能的差距是,您似乎无法在不到一周的时间内将关键的客户错误修复投入生产,因为您的测试版本是每周一次,然后您需要时间让测试人员进行验证修复。
如果您想以不同的方式思考问题,请查看 持续部署 - 一开始可能有点难以接受这个概念,但它肯定有一些潜力。
I think you have a good, comprehensive process, as long as it fits in with when your customers want to see updates. One possible gap I can see is that it looks like you wouldn't be able to get a critical customer bug fix into production in less than a week, since your test builds are weekly and then you'd need time for the testers to verify the fix.
If you fancy thinking about things a different way, have a look at this article on continuous deployment - it can be a bit hard to accept the concept at first, but it definitely has some potential.