产品的持续交付与DevOps

概要:

  1. 在产品交付的每个阶段,需要设计好每个阶段的环境、人员配置和决策卡点。其中,在每个决策上,为了保证质量和进度,需要对技术的可实现性和功能的友好性进行充分思考,实现两者的互补。
  2. 持续交付是在持续集成的基础上进一步的扩展,即研发人员的集成代码如果成功通过单元测试后(变为Green Build),设置关卡依次部署到Test、Staging和Prod环境。
  3. DevOpsDevelopment和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

 
为什么需要持续交付
开发并交付一款APP,随着团队人数和产品功能的增多,产品的交付难度也更大。这篇文章从产品的角度来理解开发的持续交付,以及对DevOps的认识。

为什么说随着团队人数的增多,产品的交付难度也越大呢?严格来说,这句话想表达的本质是,产品在不同的阶段,应该让适当的人员参与进来,而不能为了赶项目进度,直接让下一阶段的人员提前参与到上一阶段,比如说在开发阶段直接让客服和运营参与进来了解系统,因为这会带来不必要的沟通成本。当然,有可能甲方会直接给压力,赶鸭子上架。但是作为产品团队,还是要勇于和甲方解释清楚过于求成的利弊。尝试站在对方的立场把利弊沟通清楚,相信甲方也是可以理解。

为什么随着产品功能的增多,产品的交付难度也更大呢?这个比较好理解,因为功能越多,产品框架和细节描述也就会越复杂。这在设计区块链相关产品时尤其如此。因为在设计一个功能时,可能涉及到前端、后端、区块链三端的通信。比如说,某个转账功能按照如此设计,前端首先需要与后端通信,获得确认标识返回后;前端再发起一笔交易到链上,等待链进行处理并抛出事件;然后后端再监听事件,前端对状态进行刷新到变化后才会更新。任何一个环节出现问题,都会导致转账功能失败。所以,这里就要思考这样的异步设计是否合理呢?是否有更加好的设计?是否可以从功能上添加触发操作和友好提示来缓解呢?

通过对以上两个问题的简单描述,这里可以得出一个结论:在产品交付的每个阶段,需要设计好每个阶段的环境、人员配置和决策卡点。其中,在每个决策上,为了保证质量和进度,需要对技术的可实现性和功能的友好性进行充分思考,实现两者的互补。

在产品交付流程中,一般存在四个环境,分别是:开发(Dev)、测试(Test)、预发布(Staging)和生产环境(Prod)。这四个环境对应了开发的四个阶段,构成了面向用户的交付流水线。每个环境配置了研发人员、测试人员、灰度测试用户、运维人员。举个例子,前不久的微信公众号的“付费阅读”功能,在研发和测试阶段完成后,微信选择一部分公众号平台主,给他们发送邀请测试,这一阶段就属于灰度测试阶段,即筛选一部分的用户进行测试。

之所以划分为这四个环境,目的是实现快速、高质量的交付。而为了实现这个目的,最重要的就是“专注”和“持续”。专注是说,研发可以专注于研发工作,测试可以专注于测试工作,运维专注于运维的工作,不能因为其中一方的工作而使得另一方需要停下来。而持续是说,整个交付动作是不断地向前递进。

开发的四个阶段和动作

对于一个小的初创团队来说,要真正地按照敏捷规则实现有价值的交付,必须要在项目早期就计划好这四个阶段和环境,然后逐步迭代并交付可行的版本给到客户。

有些团队可能存在这种情况,认为目前的团队规模小,所以为了实现快速交付,很快地完成了原型和UI/UX后,进行前端开发,可以在两个星期就发布一个仅有模拟数据的演示版本。对于客户来说,这个版本的价值其实不大,而且往往会因为后期开发后端功能时,因为技术实现难度大,或者需求设计不合理导致需求变更。

还有一种情况也需要避免,如果让客户参与到测试阶段的测试,也就是直接在测试环境上进行测试,也会带来更多的麻烦,这些麻烦消耗了巨大的开发时间和沟通成本,甚至引起客户对开发质量的怀疑。因为测试阶段本身由于环境的原因,不断地切换或更新版本,导致客户所认为的真实数据在频繁的版本切换过程中无法保持一致,而实际上,客户所认为的这部分数据本身就不应该在这个环境下进行测试。所以,这也是为什么有必要设置一个Staging环境,提供给用户进行测试。

所以,这里再次回到我们上面的那个结论,在产品开发初期,设计好每个阶段的环境、人员配置和决策卡点。

 
持续集成(Continuous Integration)
持续集成在软件开发中的意思就是一个研发人员与另一个研发人员编写的代码组合起来,放到同一个源库,然后在Dev环境进行构建(Build)和测试(Test),并反馈给研发的过程。这个过程在开发前期就开始实践,从而使得编码、集成和测试的效率更快,也确保应用按照预期的方向发展。

 
持续交付(Continuous Delivery)
持续交付是在持续集成的基础上进一步的扩展,即研发人员的集成代码如果成功通过单元测试后(变为Green Build),就可以部署到Test环境,提供给测试人员根据测试用例进行测试;测试通过后,可以继续部署到Staging环境进行用户接受度测试,这个时候,产品经理往往也会参与进来查看用户的反馈;最后,再手动或者自动化部署到Prod环境提供给实际用户使用。

 
DevOps
DevOps是单词“Development”和“Operations”的结合。“ DevOps是促进研发人员、测试人员与运维人员之间高效协作的文化。DevOps文化通常与持续交付紧密相关,因为它们都旨在增强这三种角色之间的协作,目的都是更快和更高效地构建、测试和发布软件。

根据维基百科的解释:

DevOpsDevelopment和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

由于DevOps旨在成为一种跨职能的工作模式,因此那些使用该方法学的人会使用不同的工具集,这些工具集称之为“工具链”。这些工具链可以纳入以下一个或多个类别:

  1. 编码–代码开发和审查,源代码管理工具,代码合并
  2. 构建–持续集成工具,构建状态
  3. 测试-连续测试工具,可提供有关业务风险的快速及时反馈
  4. 打包-工件存储库,应用程序预部署阶段
  5. 发布-变更管理,发布批准,发布自动化
  6. 配置–基础结构配置和管理,基础结构代码工具
  7. 监视-应用程序性能监视,最终用户体验

 
结论
本文介绍了为什么在产品开发和交付过程中,持续交付是非常重要的,持续交付如何分为四个阶段、以及环境和人员配置。最后介绍了持续集成和交付、以及DevOps的概念,以及它们之间的关系。

参考链接:https://en.wikipedia.org/wiki/DevOps#Toolchains

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

推荐阅读更多精彩内容