无压力的软件发布之旅

无压力的软件发布之旅

认真看完这段视频,保证你在下一次大发布之前不会再有那么大压力。

最能衡量敏捷团队成功的标准就是将可用的软件发布给客户。但是,即使是有经验的软件团队也会感到十分痛苦,因为这也是验证已经完成的问题了;代码没有经过评审,代码还没来得及合并,或者合并代码失败。听起来是不是很熟悉啊?

CODING 企业版」作为企业级软件研发管理系统,助力团队敏捷开发转型升级。

这个演示中,你将学习到下面几点:

  • 编码最佳实践,将提高你交付高质量产品的能力。了解为什么代码评审对于交付质量是至关重要的,并且监视和修复失败的构建能保证发布更快捷。

  • 通过在发布中心建立清晰的图表来表示发布的进度和状态,你会学习如何节省工作时间。

  • 从构建、编码到发布的完全自动化。通过从发布中心直接发布你的版本来简化工作流程。

观看 & 学习

提问和回答

我们的主持人 Jason Wong 和 Megan Cook 从这次演讲中选择了他们最喜欢的问答。继续阅读以了解更多关于无压力发布的信息。

问题 1:成功使用发布中心的 3 个最重要的非技术因素是什么?

回答 1:(1)充满信心地交付:团队内外的利益相关者将能够知道在整个发布周期的任何时候都应该准备好什么。
(2)更快地做出决策以节约时间:准备好交付,及时了解已经完成了哪些功能,以及还存在哪些有问题。在发布中心中跟踪检查本次发布版本的所有问题,这样你就不必手动协调问题解决和调整代码了。
(3)发布的记录:通过查看已发布的版本来了解发布什么特性(何时发布),以及通过查看未发布的版本,了解每个即将发布的版本的计划。

image

CODING 企业版」提供便捷的发布管理,清晰每一次发布交付物,方便运维团队执行开发团队的发布计划。

问题2:在 Atlassian 中,通常是谁来管理版本发布?

回答2:Atlassian 中每个团队都有它自己的特定方法,但总的来说,我们尽可能的将过程自动化,以便以最少的开销修复 bug。
团队通常有一份待完成事项的列表,但是我们尽量将其最小化。像发布中心这样的工具在这个过程中帮助确保我们计划发布的是最高质量的,并且 Jira 软件问题的状态和它们的实际开发非常匹配。
一些较大的团队对于 bug 管理者/发布管理者会建立专人轮换制度。
对于较大的主版本和小版本,通常会有一个专门的人来负责发布,并且所有的工作都是围绕风险和时间期限展开的。这可能由团队领导或开发经理负责,但是我们试图确保由团队成员轮换负责,这样每个人都知道这个过程,并理解发布高质量软件的要求。

对于发布的计划时间线,团队领导将与产品经理和市场营销人员进行协调,以确定何时准备好发布,以及是否需要管理发布范围或时间。正是由这些人,决定了哪些功能将在哪些版本中发布。

问题3:你如何做到一个分支/提交/合并请求/构建/部署关联到一个问题(issue)?

回答3

  1. 分支——在分支名称中包含指定问题的标记,也就是 issue 的 key 。
  2. 提交——在提交消息中包含 issue key。
  3. 合并请求——在源分支名称中,或者提交消息,或合并请求标题中包含 issue key。
  4. 构建——在提交消息中包含 issue key。
  5. 部署——在提交消息中包含 issue key。

问题4:当你在隔离的多个分支上使用相同的代码时,你有什么经验来处理这些冲突?

回答4:我们的经验是,这很少是一个问题。大多数情况下不存在代码重复,只是偶尔会发生冲突。
通常会有两个问题:

  • 长期运行的特性分支与其他正在进行的开发隔离。
  • 大规模的重构任务,在完成、测试并准备发布之前,需要隔离。

对于前者,一种做法是频繁地进行开发和集成,但是将特性本身保留在特征标志后面,这样只有我们自己的测试程序或少数几个客户能看到正在进行的更改。这确保了相互冲突的代码不断地集成,最小化冲突的可能性,并在大特性更新到主干开发分支时最小化风险和影响。

如果做不到这样,或者在进行大型重构的情况下,我们确保开发分支尽可能多地集成到特性分支中(通过将基线/开发分支的变更合并到特性分支中)。这确保了所有正在进行的开发都是在长时间运行的特性分支上完成的,并且尽可能经常地进行测试。如果存在任何合并冲突,那么就更容易让做更改的人来帮助解决合并冲突,或者至少保持他们影响范围最小化,这样解决起来就更容易点。

最好的解决方案是将任何工作分解成块,以便尽可能频繁地合并到稳定或开发分支中。这就减少了在特性分支中对相同文件进行更改的机会。

问题5:你建议用什么样的策略来管理正在进行的开发分支、热修复分支和部署到不同环境的分支(测试环境/定版环境/生产环境)等并行分支?

回答5:在我们的网站上有许多分支策略,着重看下比较工作流部分。

在以前的一些讨论中可以找到更多的细节,正确使用 Git 和持续的部署工作流程在 SaaS 团队的 Git 工作流中有更深入的介绍。
简而言之,有两种主要的工作流:可下载产品的产品发布工作流和在线服务的 SAAS 工作流( SAAS 团队的 Git 工作流)。

CODING 任务看板
CODING 企业版」作为企业级软件研发管理系统,任务看板功能实现了 Epic \ user stories \ Sprint 等敏捷概念落地。

对于可下载的产品,大多数团队使用的是 Gitflow 工作流的变体,其中主线用于正在进行的开发,而之前的每一个小版本都有自己的分支,其中 bugfix 分支创建了然后再合并回来,在需要的时候,就构建一个 Bug 修复版本。之前的每个发布分支都将所有的变更合并到后续版本中,并确保所有的 Bug 修复都包含在所有后续版本中。

问题6:发布中心是否能很好地与看板和频繁发布协同工作?

回答6:是的,它工作得很好。看板上的发布按钮可以用来创建一个新版本,其中包含了该版本的所有问题。一旦创建了这个版本,就可以使用发布中心检查任何警告,或者获得版本的概述。
即使没有看板图,你也可以在任何时候创建一个版本,并在这些问题已经完成的情况下添加问题。然后,发布中心可以用来检查任何警告,以确保发布已经准备妥当。

问题7:发布中心是否可以显示来自多个 Jira 软件项目的问题信息,或者是发布中心项目和修复版本?

回答7:发布中心是一个版本的详细视图。由于版本目前是针对特定项目的,所以发布中心也是针对特定项目的。

问题8:你能让发布中心的警告自动发布到一个 Hipchat 聊天室里吗?

回答8:到今天为止,发布中心警告和 Hipchat 之间没有集成,我们目前还没有任何计划去集成。我们一直在思考发布中心可以通过不同的方式加强与 Hipchat 的团队协作,并希望从我们的客户那里听到更多关于他们如何使用这种集成或与其他产品的集成的更多信息。

问题9:“发布”按钮后面关联的是什么?是用来部署生产服务器的脚本吗,比如 Bamboo 中的 Job ?

回答9:“发布”按钮有一些与之相关的功能:

  • 它可以设定发布日期,并将版本的状态更改为“已发布”。如果在版本中有任何开放的问题,它也会提供将这些问题转移到另一个版本的选项。这些都可以在没有 Bamboo 的情况下使用。

  • 当 Bamboo 与 Jira 软件集成时,发布按钮可以用来启动一个新的构建,可以用 Bamboo 来配置,以采取必要的步骤来发布你的版本(例如,部署到生产环境的脚本)。

  • 发布按钮也可用于启动已运行的 Bamboo 构建的手动定版发布。你可以拥有一个自动运行的构建,但是有一个可选的阶段,只有手动触发,才能实际执行部署/放行。(这个阶段相当于选项2中的整个构建,但是可以通过人工操作来触发构建。)

问题10:是否有将发布中心与 GitHub/GitHub 企业版整合的计划?
回答10:发布中心已经与 GitHub 和GitHub 企业版合作。你所要做的就是将 Jira 软件实例连接到你的 GitHub 帐号,使用 DVCS 账户在 Jira 软件的附加管理员菜单中可以找到。然后你就可以开始跟踪所有版本的进展,包含了发布中心中所有相关开发信息。

CODING 企业版」提供便捷的发布管理,清晰每一次发布交付物,方便运维团队执行开发团队的发布计划。

本文中文翻译自原文:Journey to a stress-free release
编译者:程景天。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,263评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,672评论 2 59
  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,353评论 2 8
  • 在1998年的8月25日出生的我终于与你相遇。尽管我还是来迟了两年左右,但我终于追上了你的步伐——我亲爱...
    青春不予我欢乐阅读 385评论 0 0
  • 暖风起,满园春色关不住。春天,应该是沈园最美的季节。 第一次去沈园,我记得是个春天。心情早已不可考,唯一留下深刻印...
    见伊阅读 1,988评论 177 130