软件质量没有银弹:阿里巴巴的25个技术实践与坑

摘要: 在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身。它们会讲人话,专在月圆之夜去袭击人类。而且传说中对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有一种用银子作成的特殊子弹才能把它杀死。

作者简介:武小平(平晓),阿里巴巴测试专家,在CICD、自动化测试工具和质量管理方面有较多的经验,目前负责阿里巴巴研发协同平台阿里云RDC的测试。

转载来源:研发协同RDC微信公号(alirdc)

在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身。它们会讲人话,专在月圆之夜去袭击人类。而且传说中对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有一种用银子作成的特殊子弹才能把它杀死。Brooks在他最著名的随笔文章《No Silver Bullet》里引用了这个典故 ,说明在软件开发过程里是没有万能的终杀性武器的,只有各种方法综合运用,才是解决之道。
那么在软件研发过程中,哪怕没有银弹,如何用各种方法去解决这些“人狼”带来的威胁呢?阿里巴巴在多年的研发过程中,又是如何对付这头“人狼”?这一路走来,又有哪些方法和实践被沉淀?

1.阿里巴巴的研发平台是一个怎样的平台?

阿里巴巴研发协同平台(AONE)是云上企业级一站式智能研发协同平台,目前为阿里巴巴集团,下属子公司以及生态合作伙伴提供从“需求->编码->测试->发布->反馈”端到端的持续交付服务,并解决研发过程中跨角色、跨组织、跨地区的协作问题,在此基础上通过数据驱动度量分析为组织效能提升提供决策依据,目前这一平台已经上云对外提供服务,称为阿里云研发协同RDC。(以下简称为RDC)

image.png

上图是整个RDC的业务框架,RDC采用微服务的架构,从规划到运营提供了业务全生命周期的服务,众多的服务造成了RDC的复杂度,另一方面作为一个面向用户的平台,RDC又涵盖了阿里三个层次的技术服务栈。

第一层,基础资源层,包括idc机房、网络设施、OS、Docker、数据库等。
第二层,平台服务层,包括中间件、调度层、应用服务器等。
第三层,RDC研发协同平台,包括 项目、代码、应用、测试、交付、运营的管理。
三个层次加起来涉及的核心应用达50+,随便一个风吹草动就会对系统的稳定性造成影响,这些影响最终体现到面向用户的RDC,因此好的质量保障才能为用户提供一个稳定,高可用性的研发协同平台。

2.质量保障策略

总体采用 “事前预防”,“事中控制”,“事后总结改进”的思想,主要做的三件事情:
image.png

  • 测试驱动持续交付
    测试驱动持续交付,每一次的持续集成和发布都从单元测试,API测试,集成测试,UI测试进行自动化测试覆盖;具体包括:单元测试,集成测试,WebUI测试,移动端UI测试,压测,线上引流的API测试,线上冒烟测试。

  • 线上质量监控
    对线上质量的保障,主要采用监控的方式,希望一有问题就能及时发现解决,避免问题的大面积扩大。主要包括:
    (1) 机器监控报警,业务数据监控。
    (2) 对线上运行日志的聚合分析,发现存在的错误。
    (3) SLA数据质量提升,将业务数据可视化,指导改进方向。
    (4) 面向业务的监控和故障演练,通过对线上7*24的监控提前发现问题保障系统的稳定运行。

  • 研发质量提升
    通过代码审核,集团规约扫描,规范代码和提升研发质量。

  • ​​​​​​​

原文链接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值