【NCTS峰会回顾】京东零售任广印:文化建设践行DevOps-Etsy持续交付之道

开发 前端
2019年10月26日,由Testin主办的第二届NCTS中国云测试行业峰会在京召开,此次峰会以“AI+未来”为主题,汇聚来自国内外测试领域的知名专家学者、领先企业决策者、高层技术管理者、媒体从业者等,共同探讨高端云测试技术。

2019年10月26日,由Testin主办的第二届NCTS中国云测试行业峰会在京召开,此次峰会以“AI+未来”为主题,汇聚来自国内外测试领域的知名专家学者、领先企业决策者、高层技术管理者、媒体从业者等,共同探讨高端云测试技术,帮助测试从业者了解最前沿行业趋势,及最新的行业实践。

[[285503]]

会上,京东零售技术与数据中台测试架构师任广印做《文化建设践行DevOps-Etsy持续交付之道》主题演讲。任广印指出,“在Etsy,工程团队推行了各种文化建设,帮助员工成长,助力公司成功,主要体现在四个方面:

  1. 放权和信任;
  2. 集体责任;
  3. 持续的学习改进;
  4. 相互督促,结伴而行。”

以下为任广印演讲实录:

大家好,我是来自京东零售的任广印,听了陆怡颐老师的发言,有点小小的不赞同,陆怡颐老师刚刚说了我们测试行业这十多年并没有改变,其实我们还是能感受到很多显著的变化的,至少,十年前我做测试的时候每天5点半就能下班了,不是吗?那么我们现在都是几点呢?技术改变了,业务也改变了,那么,我们的能力和效率是否也对等的跟上了呢?

我今天给大家分享的主题是《文化建设践行DevOps-Etsy持续交付之道》,提起DevOps我们往往会想到Amazon、Microsoft、Google、Netflix、AirBnb等先行者,Etsy其实也是先行者其中之一,可能大家都不知道它,可能因为这家公司的商业模式比较专,导致大家很少知道它。这篇分析报告出自我和我的小伙伴之手,在线下,我经常会和朋友们做一些相应的案例分析活动,从中学习这些公司的好的案例,见识其中的转型契机和成长之路,不断学习并提高认知。

我今天要讲的内容一共分为5个部分,公司介绍、工程文化、商业模式、技术变革、质量保障,是一篇2-3小时的案例分析报告,因为今天的分享时间只有40分钟,到场的主要是测试领域的小伙伴们,为此我调整了一下讲述顺序,以便将大家最关心的内容传递给大家。推荐一本书给大家《Effective DevOps》,这本书其中一个作者就是来自Etsy公司的。

首先我给大家分享一下关于“质量保障”这个话题。

在Etsy,质量保障团队是这样的,鼓励大家保持不断的学习、提高、交流。整个公司也很看重工作和生活的平衡,鼓励大家高效的工作,公司不推崇加班,二是推崇在工作中更聚焦,把精力放在最该做的事情上。通过持续的学习,提升测试技能,改进测试策略,根据项目情况进行资源分配,一个质量小组通常会包含PQ分析、QA负责人、项目经理、测试开发等角色,这也正如刚刚陆怡颐老师所说的现在的一个趋势,测试开发工程师的队伍正在逐步的壮大。

在Etsy,都测哪些内容呢,我们常见的回归测试、开发阶段的测试、以及为了测试范围、覆盖率、测试结果趋势等的数据而开展的一些测试活动,在我们的身边也会有更多的外包资源,这些工作跟我们现在做的是比较相似的,但是这些事情在Etsy是不做的,在Etsy是不做这样的测试的。那么大家可能会问,这些东西跟我们都很类似的事情,我们也觉得很正常的事情,为什么在Etsy并不是这么做的呢?那么在Etsy都是怎么做质量保障的呢?

在Etsy,新功能和新产品作为测试重点,会有对应的探索性测试,集成测试、跨平台的兼容性测试,尤其会把测试精力聚焦在那些对用户有影响的功能和改动上。

公司的商业模式的核心就是和社区联系紧密,同时会及时的去响应去解决。针对不同角色的定义和培养上也是公司的一个很重要的投入,让专业的人做专业的事情,正确的将事情做好,少返工,这本身就是质量的一层保障。从需求或者从一个想法的产生,到最终它的上线运营,每一个环节都能左右最终的质量,也就是说每一个环节的每一种角色,这个角色的专业度就能直接影响了这个软件、这个服务在这个生命周期里它给下游交付的最终质量。当然了,贯穿始终的就是一些最佳实践以及一些好的学习和成长,以及一些改进。价值驱动、目标的一致性和与社区的紧密连接,这三部分也是我们团队的工作核心要素。

接下来看看这种文化是如何体现于工作中的。在生产环境我们同样会做大量测试的,以此来消除可能在部署工程中出现的问题,正常来说我们做了很多测试,在部署到生产之后不应该再出问题,但现实是各个模块或改动都是测试通过的,集成到了一起问题就出现了。无指责和无恐惧的文化,分析问题,查明根因,不再让重复的问题再出现,是我们的目的,而不是定责。协作文化、高效的反馈,每个员工的职业发展通道,激励和奖励机制,各种途径让员工发挥出各自的能力,自治、高效彼此互助。

为什么我们会说在这个公司这样的质量保障可行呢?很好的持续集成、持续部署流程,基于用户研究的原型设计,在一个服务或者一个产品推出的时候做的A/B test,持续和用户进行沟通确认和采集反馈,通过大量的实验来证明我们这样做是不是达到了这样的效果,支持实践,“复用一切有效的方案”,通过信息传递降低试错的成本。

再说一些公司的“那些文化”。 说起文化,大家有的时候也会想什么是文化?什么是好的文化?什么是不好的文化?或者我们也可以理解成大家的一种习惯,或者大家都接受的一种习惯,这个习惯有可能能够帮助公司成长或者说能够帮助公司招揽更多的人才,当然一些不好的文化也会导致人员的流失或者阻碍技术的发展。

工程师文化,简言之,我们可以理解为自由和效率;如果我们是不自由的,至少,我们在做事情的时候会限制我们的思想,如果不是对效率的提升,那么我们这个创新可能就很不接地气,那么我们为什么做它呢?自由和效率我们又往下细分了一下,比如自由,我是一个自我驱动的,比如,灵活的工作时间和工作地点,关于自我驱动这件事情,包括工程师文化大家也曾有过一些讨论,当我觉得这个事情有价值或者大家认可的时候,我是一个自驱的模式,会努力的把它做的更好。但是给我各种要求,“必须要996、必须不能几点回家就在这儿坐着好好干活”,这个时候不但没有让我好好干活,反而影响了我的自驱性。工作效率体现在什么地方呢?曾经我待过的一家公司,老板说“休假不用和我请示,因为你请示了我也会批准,那就无需审批,但你需要发个邮件让干系人知道。同时,信任是一种契约,不要打破”。

“Code as Craft”这是公司最核心的文化。

Etsy的目标是让那些手工艺人,通过他的手工来给这些手工艺人提供交流和手工艺品买卖的环境,我们工程师也是,我们创造了这个工程师,并且通过哪些事情来很好的贯穿于我们的生活呢?这个公司就定义了“code as craft”。“code as craft”在这个公司也是一个活动,是每半个月举行的一个活动,这个活动会邀请业界的一些大咖专家或者公司内部的大咖进行演讲,通过这个过程我们使整个公司在提高,去交流,并且如果有好的方案大家也能产生一些更深层次的合作等等。像我们今天这个活动的意义也都是一样的,我们先看一下这个公司邀请的这些大咖们,最右边的图,其中穿格子衫的就是这个公司的CEO查德迪克森,正是他的到来,为Etsy建设了这一些列的工程文化。

“无指责的问题分析”文化,我们很多公司都在做各式各样的,比如,线上出了问题我们要复盘,或者出现重大的事故我们要分析,我们分析问题的时候很容易的牵扯到了责任,我们分析这个问题本身,我们是想知道这个事情是怎么产生的,而不应该关注是谁、他为什么做这样的事情。我们分析的时候就是通过这种文化的践行,我们能够更好的挖掘出这个问题本身是怎么产生的,为什么我们不关注的“是通过谁来制造了这样一个问题”呢,因为这个问题本身,它可能是系统设计的问题或者说各种深层次的问题,只是这个人他遇到了而已,如果他不遇到这个问题有可能就是你本人遇到这个问题。所以说公司一直在提倡一种无指责的问题分析,公司也是有一个开源的系统,这个系统是专门干这件事情的,目的就是,不要让错误可以发生,我也可以接受,但我不接受重复的问题再次发生。

针对这个问题公司真的做了一件三只袖子的毛衣,其实在我们的印象中,我再怎么脑残也不会做出一件三只袖子的毛衣,但是他会把三只袖子的毛衣颁发给一些犯了错误的员工,犯了什么错误的员工呢?可能这个员工犯的错误是最令人惊讶的错误,而不是说这个人是最糟糕的那个人。

“工程轮岗”文化,最开始在2010年的时候,工程轮岗项目是每年的一些特定的时刻,可能运维就会很累,这个时候运维的人手就不足,公司就开展了这样一个活动,大家都去学习怎么做运维,在运维很忙的时候,大家能去搭把手帮帮忙。后来公司发现这样一个活动不仅仅在运维层面,我们还可以在所有的工程师的岗位上做这样的事情。我们通过这个活动能够让全公司,让大家更好的产生同理心,更好的去理解别人的工作。整体提高大家的协作互助的意识。

最后关于质量文化,这个公司像陆老师说的一样,单元测试,代码的测试覆盖率是很重要的,当我们看到代码覆盖率的时候大家就想到了一点,比如做了很多的单元测试,我的覆盖率很好,但是如果一个工程不做单元测试会产生什么样的情况呢?并不是说仅仅的缺乏单元测试而已,如果不做单元测试就会发现有些代码,甚至有些函数几十行甚至几百行的函数都有,其实这样的工程它的可测试性是非常差的,我们通过单元测试去让大家把可测性做的更好。

这个公司就是多样性和包容性的,多样性是因为公司运营着一个社区,这个社区什么样的人都有、什么样的情况都会发生,所以,在技术岗、研发岗以及管理层面可能也都会有不同的情况,比如有不同的性别、不同的肤色、来自于不同地域的人,通过公司的包容性、多样性的队伍,创造一个更友好的环境,鼓励大家的创新和协作,以及一些想法上的交流。公司的6个管理层只有2个是男性。

我们现在进入第三章,关于公司简单介绍一下。左图是Etsy的创始人罗伯·卡林,右侧的是查德迪克森也是灵魂人物。公司的创业宣言:“为爱手工制品的人们提供交易和交流场所”。如图,这是公司几位CEO。最核心的灵魂人物,查德迪克森,2008年的时候他以CTO的身份加入公司,到2011年他成为了这个公司的CEO。在他在的这段时间,公司也起到了很大的变化,主要是工程上面,2017年西尔弗曼上台。罗伯阶段公司诞生了,到查德迪克森阶段提高了它的能力,到他壮年的时候空有一身本领但是不知道本领怎么变现,这时候西尔弗曼来了,自从他上台之后整个公司股价一直在向上爬升,一直到现在。

最后再跟大家说一下公司工程文化的演进,公司主要有4大项:1、放权和信任;2、集体责任;3、持续的学习;4、相互督促结伴而行。

它的工程演进史,公司在2005年6月18日成立,发展到2008年的时候,公司从4个人慢慢成长到了三、五十人,这时候也是出现了沟通不畅、每个部门各自为政这样的情况,到了2008年的时候,公司觉得这样不行了,管理层做了调整,由玛丽亚·托马斯和查德迪克森两位高管,一个负责运营,一个负责工程,工程文化的演进从那时候一直到现在,开始了他们的DevOps之旅,从每日的站会,把沟通问题先解决掉,然后建立一种好的协作机制。演进之路分了5个部分,比如,那个时候网站稳定性不够好,所以做了一些改进,引入了持续部署,当时公司的一些不好的技术也都废弃掉了,包括数据库层面的改造。

关于公司的工具文化,简言之,工具是我们很多文化、很多价值的体现,工具只是一部分,只是一个窗口,通过这些工具的建设可以把一些不确定的事情确定下来,大家不断的持续的优化、迭代工具的情况。

其实刚刚我们第一点说了,质量保障之道归根结底为什么能够做到这么好?这才是核心,就是公司的持续集成、持续发布以及持续部署,其实就是一个阶段一个阶段来的,也就是解决了我们产品快速的创新,最重要的是解决掉平均的恢复时间,因为大家关注工程能力的话,MTTR是非常重要的一个指标。

大家也能看到这张图,是一个持续的流水线,从最开始的开发、集成到最后测试阶段,到最后的上线,也就是说每一个阶段往下游走时,哪一环节有问题都不会顺利的走到下一个环节。

也就是在告诉我们这样的情况是很好的,我们最后看到的东西都是测试通过的,都是质量达标的,当我们很多条流水线,很多条任务都是这样做,都是没有问题的,为什么最后生产的时候还是出了问题呢?是说我没有做单元测试吗?还是说我的覆盖率不够?也许是数据的问题,也许是配置的问题,是测试环节或者集成环境跟生产环境的容量与负载的不匹配导致的吗?如何解决这样的问题,我们努力的去测试,努力的去提高,就能避免这样的问题吗?显然是避免不了的。既然避免不了,如何保证我们的质量呢?首先提及两个概念,也就是刚刚提到的MTTR还有一个是MTTD。

在我们上线之后,还是要做很多的监控工作,像每个公司都有一些预警/报警,也就是说最后绿色的这一部分,上线之后绿色部分要做到的是什么,就是在提升我们的MTTD,也就是说,当问题产生的时候我第一时间就要被通知到,这样我才能在第一时间去采取对应的措施。

假如我们一个月要部署的代码行数是5万行的话,如果按照之前的模式,不引入持续部署的机制,有可能是开发了一整月,到最后的时候5万行代码一起上线,好的情况就是什么问题都没有,不好的情况就是出现了问题,那么一旦出现问题我们一次性Deliver了5万行代码,修复时间会很长。如果用流水线的方式做的话,拆很多很多个流水线去发布,这个时候我们感知到错误的可能性是非常高的,而且我们每次的发布可能就几十行,至少不超过一百行的代码,这样发生了问题,很快的就知道问题所在,很快的就可以解决了它,很快的再去迭代发布,这个问题就没了。也就是说我们MTTR的问题。这个公司每次发布部署的东西很多,部署的频度很低,一周部署两次左右,现在一天要部署几十次或者更高,可能对于大家而言互联网行业一天部署50次简直太少了,但是对于这个公司而言它这几年的变化还是很快的,而且按照这个公司目前的工程文化的发展持续学习,即便将来公司做的很大了,不像现在八九百人的规模,更大了,我相信也依然会做的很好的。

公司整个架构演进就是从2007到2011年的架构演进,也就是到现在这个公司主要的开发语言还是用的PHP,整个公司的技术演进时间轴如图,在不同的阶段引入了不同的技术,随着人员的规模变化,也逐渐沉淀出了相应的工程师文化,无论是技术还是文化都是在慢慢的演进出来的。

最后“运营模式”,会后大家再看吧,因为今天时间不多了,我简单给大家说一下。最简单的介绍一下Etsy这个公司是做什么的,它是一个在线电商,这是一个标签,它的品类比较有限,我们这个平台只卖手工制品,不支持批量,而且在这个平台上要想开店,首先你得是一个手工艺人,公司会去审核,一旦他发现你作为一个手工艺人在这儿开了个店,卖着从中国义乌来的产品,可能这个店就要被封掉了,它是不允许批量买卖的,可能涉及的方面也很多,而且这个网站的卖家和买家,70%以上都是女性用户,可能女生更在意唯一性之类的事情。近期的一些热点,针对这个公司的新闻也蛮多的,公司做的很多事情有可能不一定是在完全维护买家或者卖家某一方的利益,很多的规则可能还是来自于整个社区的反馈。

针对这个公司收益率、市盈率的情况,我也问了一下,包括美股的资料,这个公司的市盈率数字看起来还是有泡沫存在的。

谢谢大家今天能到场参加这次分享,也欢迎大家多交流沟通,互相学习,共同成长!

公众号文章:https://mp.weixin.qq.com/s/u0j-QNUdG8mcEqH33fhc4g

 

责任编辑:张燕妮 来源: 51CTO
相关推荐

2019-12-13 11:55:30

AI 数据人工智能

2019-11-26 17:58:47

系统运维架构

2022-05-18 13:24:47

京东调优实践

2019-04-30 14:59:42

新华三

2020-11-03 16:06:16

kidsland微软玩具

2019-03-21 19:19:35

新零售阿里云零售云

2010-01-27 16:08:05

SAS零售行业

2020-09-10 14:54:00

腾讯数字化运营

2020-09-10 16:22:43

腾讯智慧数字化

2018-06-06 17:39:03

2022-06-28 13:41:43

京东数据处理

2018-03-20 09:56:50

新零售

2017-09-30 10:00:41

2023-08-15 10:44:21

零售供应链供应链物流

2019-07-17 05:33:33

零售物联网IOT

2019-11-26 18:00:59

系统运维架构

2021-09-15 16:41:20

京东零售云Flutter热重载

2012-07-23 16:22:07

Oracle
点赞
收藏

51CTO技术栈公众号