Questions tagged «release-management»

4
一周的发布周期:如何使之可行?
在我的公司(拥有3年历史的网络行业初创公司)中,我们的产品团队经常遇到这样的问题:“哦,现在这是一个危机补丁!” (不是每个人吗?) 这会影响包括自我在内的工程人员的生产率(和士气)。管理层花了一些时间思考如何减少这些当日请求的频率,并提出了我们每周都会发布的解决方案。(以前,我们每两周进行一次,通常会拖延几天左右。) 有13位开发人员和6位本地/ 9位离岸测试人员;从理论上讲,只有4个开发人员(和所有测试人员)才能处理偶数版本的发布,除非要完成的工作确实需要其他开发人员中的一些专门知识。每个周期将包含两天的开发工作和两天的质量检查工作(加上1天的范围界定/分类/ ...)。 我的问题是: (a)在这个发布周期的长度上是否有人有经验? (b)是否有人听说过试图释放的时间如此长? (c)如果是(a)或(b),您在地球上如何运作?(也应避免任何陷阱,以此类推。) (d)如果这项努力失败了,我们如何才能使损害最小化?

6
我们如何每隔一周在生产版本中仅包含准备发布的功能?
我是一个相当大的敏捷团队的软件开发人员(我们有8个开发人员积极地对单个代码存储库进行更改)。每隔两周,我们会将软件的新版本投入生产。这是我们当前的工作流程: 在开始新任务时,开发人员在主开发分支(我们使用git)的基础上创建一个“功能分支”,并在此新分支上工作 开发人员完成任务后,将其功能分支合并回开发分支 开发人员将开发分支合并到质量检查分支。 质量检查分支会触发构建。此构建的输出已部署到我们的QA环境中,以允许测试人员开始其测试。 对于我们的测试人员来说,发现这些已合并到QA分支中的新功能的问题很常见。这意味着在任何给定的时间,QA环境都可能包含一些新功能-一些经过测试且没有错误,还有一些已损坏。这使得发布变得困难,因为很少有QA版本处于生产就绪状态。 为了减轻这种情况,我们一直试图启动“质量检查冻结”,这意味着开发人员在发布前几天不会将我们的开发分支合并到质量检查分支中。质量检查环境的错误修复程序直接在质量检查分支中进行,并合并到开发分支中。从理论上讲,这使新的,已损坏的功能无法进入质量检查,同时仍使我们能够解决质量检查中已有的问题。 虽然“质量检查冻结”的概念已部分成功,但很难进行协调,人们常常对是否允许其合并到质量检查中感到困惑。设置“ QA冻结”截止日期也很困难-每个人都喜欢在冻结和发布之间留出一些喘息的想法,但是实际上,他们宁愿在下一个发行版中发挥自己的功能,也不愿遵守截止日期。 是否有更好的方法来确保我们每两周发布一次新版本?

6
为发行版选择正确的分支策略
从新项目的新开发团队开始,我们必须为源存储库(例如Microsoft Team Foundation Server 2010)定义分支策略。关于是否要...我们进行了激烈的讨论。 一。有一个Release分支,我们可以从中进行生产构建,然后在实际发布某些内容时添加Label 要么 乙。每个投入生产的新版本都有一个新的Release分支(例如,版本1、2、3等) 选项A看起来很简单,但是我们不确定从长远来看是否会导致问题。选项B似乎只是创建了许多长期存在的分支,并且随着时间的推移不断积累。 有人有任何经验可以帮助我们做出决定吗?具体来说,我想听听任何一种选择的痛点所在。随时提供有关TFS和/或发布管理含义的特定经验。

1
依赖性提升策略:孤立还是精心策划?
我们有很多相互依赖的应用程序和Web服务(一些面向公众的产品,一些内部和私有“后端”的一部分)。这些组件中的每一个都有4个环境(用于特定目的的服务器/节点集群): 非生产 DEV-CI建立推动变更的集成开发环境;有助于工程师解决在本地无法复制的难以发现的错误 QA -隔离的质量检查/测试环境 DEMO -为业务利益相关者提供稳定的UAT环境 生产 LIVE -我们的现场/制作环境 代码升级是:(LOCAL开发人员的机器)=> DEV=> QA=> DEMO=> LIVE。 假设我们有一个名为的应用程序myapp,该应用程序由RESTful Web服务支持,该服务myws本身由一个名为的数据库支持mydb。 目前,我们拥有我所说的“ 策划 ”推广这些依赖关系之中:在myapp-dev指向myws-dev它使用mydb-dev。同样,myapp-qa指向myws-qa使用mydb-qa。与DEMO和相同LIVE。 问题是,无论何时我进行更改,例如myapp,这都需要我也对myws和进行更改mydb。但是因为每个DEV环境都指向其依赖项的DEV环境,所以这意味着我必须同时计划和部署这些更改。此外,如果一个构建变得不稳定/损坏,它通常会使其他上游组件崩溃;例如,如果开发人员在更改时破坏了某些内容mydb-dev,则myws-dev和myapp-dev群集通常也会变得不稳定。 为了解决这个问题,我针对我所谓的“ 孤立的 ”促销策略提出了一个建议:所有组件间的依赖关系都遵循以下准则: 上游的依赖关系取决于DEMO对它们的下游依赖环境,对于所有其非生产环境的(DEV,QA和DEMO); 和 上游依赖项依赖于LIVE环境,生产环境依赖于下游依赖项 使用此约定,实际myapp-dev将指向myws-demo,而将使用mydb-demo。同样,myapp-qa也将指向myws-demo和mydb-demo。 我在这里可以找到的优势是构建稳定:DEMO特定组件的环境变得不稳定的可能性要小得多,因为DEMO没有在DEV和上进行严格的测试,代码就无法实现QA。 我可以发现这种方法的唯一缺点是,如果DEMO某个特定组件发生故障,则所有上游依赖项的所有非生产环境都将突然中断。但是我要反驳说,由于在DEV和上进行的测试,这种情况极少发生QA。 这已经得到了成为一个问题,很多开发者(比我更聪明,经验丰富)已经解决了,如果这个问题,其解决方案已经有名字给他们我不会感到惊讶(除了什么我打电话策划/孤立)。所以我问:孤立的促销策略的优点是否胜过任何缺点,在这里我可能忽略哪些缺点?

1
使用Bit Torrent进行内部发布管理
我们目前正在滥用我们的版本控制系统并使用它...几乎就像一个FTP,用于存储较大的发行版二进制文件(4+ GB)。 我们正在寻求摆脱这种可怕的做法,这种做法已经并且继续发展,并在破坏集成和发布流程的同时占用了越来越多的IT资源。 一种解决方案是使用P2P文件共享来分发这些发行映像/二进制文件,将文件服务器和一些关键的用户计算机混合为种子。 所以我的问题分为两个部分: 你们有没有人在内部网中设置BitTorrent来发布发行映像/二进制文件?如果没有,您对此想法有何看法(实际上不是我的BTW,但我认为这很棒) 是否存在用于处理BitTorrent跟踪器发布的基于Web的开源软件,以便在有新版本发布时可以对其进行搜索并显示其在种子和水方面的可用性?(...你知道我的意思) 编辑:Intranet是全球性的(例如,美国,中国,德国,墨西哥)。常规的FTP可以工作,但是并不划算。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.