第4期:“自动化”聊起来简单,做起来难

在上一期《如何找到现有研发体系的「内耗问题」?》中,我们聊了评估现有研发体系,正确的找到“体系内耗问题”,是改变研发体系的第一步。本期我们继续聊下一个关键点就是研发体系中引入自动化,看看下面两位嘉宾朋友是如何理解”自动化“这件事。

受访者A:某电商平台 架构师 马经理
受访者B:某金融企业 效能工程师 汪工

Q1:
说到“一切自动化”,这确实是研发体系所追求的。我们在最初进行自动化改造时,首先在单个环节上用自动化工具解决效率问题,再根据流程打通工具链,最后实现全流程的自动化平台。

A:
说到“一切自动化”,这确实是研发体系所追求的。我们在最初进行自动化改造时,首先在单个环节上用自动化工具解决效率问题,再根据流程打通工具链,最后实现全流程的自动化平台。

通过自动化工具解决单点效率问题,这个方法前期效能提升非常显著,可以节省很多人。

第一个最关键的,同时也是我们早期进行的单点突破,就是实现自动化构建发布,像是大家都在使用的Jenkins、Travis、Ansible、Docker等。

第二个单点突破就是实现自动化测试,这部分其实是比较难做的部分,不仅是要考虑合适的工具,更重要的是系统性考虑开发流程、产品架构、技术栈等,自动化测试的目的就是快速反馈研发中的安全质量问题。

解决单点的效率问题后,就是打通工具链,看全局其实还有很多环节可以进行自动化升级,包括接入流程管理、代码托管、代码扫描、测试执行、日志监控等等。每个环节需要做多种工具的选型,需要根据自身实际情况灵活选用调整工具链。最终目的是打通各部门之间的壁垒,从产品经理开始串联研发、测试、安全、运维各环节,减少「内耗」。

打通工具链后,进一步提升研发效能的方式就是打造平台,实践DevOps或DevSecOps,这也是很多大企业的必经之路,市面上也有很多“一站式、一体化XX平台”来给中小企业提升效能。通过打造平台,实现研发流程的标准化、自动化和可持续化,提高研发效率和质量,缩短产品上线时间,更快地满足市场需求。所以,除了集成打通工具链外,平台还需要拥有更强大的可视化管理能力、分析能力和有效的度量体系,全流程引导效能的提升。

B:
我们这边一直实践的DevSecOps,开始也是单点优化,然后慢慢升级成平台。开始做自动化的时候,从以下几个方面入手。

首先,需要明确研发自动化的目标和要求,虽然也是从单点开始做,但需要一个整体的目标,如提高研发效率多少、降低多少成本、团队资源配置等,这是考量我们自动化能力的指标。

其次,在团队建设方面,我们这边因为涉及到很多开源工具的开发,并且安全要求也相对较高,虽然自动化可以节省人工成本,但团队增加人员却是必须的。因为业务在不断发展,需要团队拓展自动化工具的能力或改进流程,所以要增加相关人才,这是我们要时刻跟进投入产出的数据。

再次,自动化工具选型很关键,错误的选择不但影响研发的工作量,更会影响未来产品的走势。因此需要根据业务特点来选型,我们在同一类工具上会选择多个产品,来测试每个产品的效果,从而选出最优工具。

因为我们是实践DevSecOps,要满足安全性,产品上线后的安全监控和响应也需要更高效的自动化工具,来满足严格的安全标准。

Q2:
你们认为,做“自动化”过程中,最困难的地方在哪里?

A:对我来说“自动化测试”是个难点,相信大家也是这么认为。对于产品来说,测试是必须做的,同样也是非常耗时的,所以自动化测试的价值不言而喻。很长一段时间,我们想法局限于单点工具的使用和改进,努力节省测试时间,但从全局看研发效能的提升效果没有达到预期,为什么?

其实,我们在要求提升迭代速度的时候,需求和研发速度提升,使得测试任务加剧,测试时间被严重压缩,产品功能越来越多,测试的范围也越来越大。简单的说就是,测试不够用了。如何提升自动化测试效率,成为了我们一个长期的命题。

但自动化测试除了依靠工具外,还需要从全局考虑,抓住“人”和“方法”两个方面。在“人”的方面,要求研发人员提升测试能力,测试团队配置测试架构师和专家,对测试方案、技术选型、平台对接负责。在“方法”上,拆分小的团队,团队支撑的业务集中,尽量保持团队对业务场景保持统一的认识和理解。

在我们现阶段的一个共识是,通过自动化测试实现效能提升,不只是测试团队的工作,而是全研发体系的工作。

B:“自动化测试”在我们这也是难点,刚刚汪工已经说的比较多了,我再讲一下其他难点。在我们这边来说,在构建自动化工具链上,技术选型也是比较大的难点。首先,技术选型需要考虑企业实际情况,包括企业规模、业务要求、研发团队水平、基础资源等方面。

其次,需要考虑技术的成熟度和稳定性。因为我们经常探索一些开源项目,一些新兴的开源技术往往有很高的潜力和创新性,但是可能不够稳定,存在风险。有些我们采购外部厂商成熟的产品,依赖厂商提供的服务能力。

最后,还需考虑工具链的综合效益和可扩展性,包括具体的研发场景、业务规划,未来的扩展方向等,以便在保证交付质量的前提下更好地推动自动化工具链的后续发展。

本期我们围绕“自动化”聊了两个问题,两位嘉宾回答的比较深刻。我们总结几点:

  1. 自动化实践的三个步骤:
    a. 单点使用自动化工具,提升单点效率。
    b. 打通工具链,建立自动化工具链。
    c. 向平台化升级,持续改进。
  2. 自动化实践两大难点:
    a. 通过自动化测试实现效能提升,不只是测试团队的工作,而是全研发体系的工作。
    b. 在进行技术选型时,需要通过全面的调研、深入的分析和认真的取舍,才能实现自动化工具链的可靠性、高效性、扩展性。

大家对此有何独特的见解?
欢迎在【公众号:开源网安】《谈效风生》专栏中留言。
我们将「精选留言」,为您送上定制礼品。

「自动化」聊起来简单,做起来难 | 谈效风生相关推荐

  1. python做地图导航_「Python」利用高德地图做你想做之事

    玩grasshopper基本上都知道OpenStreetMap 这个地图网站,毕竟有一个好用的地图插件,可以在Rhino中绘制出所需,但是一个不好的地方就在于国内的数据量太少,无法满足我们的需求. 此 ...

  2. 一直学不明白的「递归」与「动态规划」原来这么简单

    在学习「数据结构和算法」的过程中,因为人习惯了平铺直叙的思维方式,所以「递归」与「动态规划」这种带循环概念(绕来绕去)的往往是相对比较难以理解的两个抽象知识点. 程序员小吴打算使用动画的形式来帮助理解 ...

  3. 现有模型还「不懂」自然语言:20多位研究者谈NLP四大开放性问题

    https://www.toutiao.com/a6649234323549454856/ 2019-01-22 16:25:07 在由 DeepMind 主办的 Deep Learning Inda ...

  4. gitlab合并分支后需要提交吗_阿里前端,如何基于 GitLab 进行「自动化」构建及发布...

    在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab.本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布. 在从 SVN 迁移到 GitLab 和接入 Gi ...

  5. 「Python」利用高德地图做你想做之事

    玩grasshopper基本上都知道OpenStreetMap 这个地图网站,毕竟有一个好用的地图插件,可以在Rhino中绘制出所需,但是一个不好的地方就在于国内的数据量太少,无法满足我们的需求. 此 ...

  6. 一些看起来简单做起来难的程序员笔试面试题集锦

    1.判断三个bool值中是否至少有两个bool为真? 此题有几种不同的解法 (1)传统解法 bool leastTwo(bool a, bool b, bool c){return (a&&a ...

  7. 每个程序员都可以「懂」一点 Linux

    点击上方"马蜂窝技术",关注订阅更多优质内容 提到 Linux,作为程序员来说一定都不陌生.但如果说到「懂」Linux,可能就没有那么多人有把握了.到底用 Linux 离懂 Lin ...

  8. 边缘计算招聘 :边缘不再「边缘」,计算无处不在

    选择比努力更重要! 如果十五年前您选择了电商领域的阿里巴巴,今天可能就有点不一样了! 如果八年前您选择了视频领域的快手,今天可能就有点不一样了! 现在如果您知道开源是未来,那么您还在纠结去哪里? 我们 ...

  9. 用 Electron 打造 Win/Mac 应用,从「代码」到可下载的「安装包」,可能比你想得麻烦一点...

    首发于酷家乐前端博客,作者@摘星(segmentfault @StinsonZhao) 我们能从很多地方学习到怎么起一个 Electron 项目,有些还会介绍怎么打包或构建你的代码,但距离「真正地发行 ...

最新文章

  1. OKR不但是目标管理工具,也是沟通工具
  2. pandas使用idxmin函数获取dataframe每个数据行中最小值对应的列名称(column label of min value in each row in dataframe)
  3. 路由器的转发能力PPS
  4. php mysql pdo use_PHP连接到mysql的方法--mysqli和PDO
  5. opencv +数字识别
  6. 1660用哪个驱动稳定_PDF转word怎么转?哪个PDF转换器最好用?-PDF ——快科技(驱动之家旗下媒体)-...
  7. java 关联表做修改_java-图关联列表实现
  8. 操作系统之文件管理:7、文件的系统层次
  9. centos7挂载ntfs文件系统_MacOS读写挂载NTFS磁盘,几行代码就行了
  10. Airflow 中文文档:API 参考
  11. [Silverlight 4 RC]WebBrowserBrush概览
  12. 久未更 ~ 四之 —— Vsftpd出现 Failed to start Vsftpd ftp daemon错误
  13. java可以做网页吗_如果我用java 只会做网页,那么我会不会被淘汰?
  14. 3dmax卸载工具_3Dmax软件无法安装?3Dmax软件正确卸载方法,重装无忧
  15. ArcGIS多种面积计算方法的区别
  16. 如何自定义设置macOS的开机启动项
  17. 如何给Digspark ATTINY85下载程序
  18. Unity GUI 中文显示
  19. 物联网竞赛-LoRa和NB-IOT模块学习知识汇总
  20. HFSS学习笔记—12.矩形微带贴片天线

热门文章

  1. 日积月累Day4《为什么家庭会生病》
  2. GoldenDict使用说明
  3. .config文件和Menuconfig以及Makefile参考学习
  4. ie304报错解决方案
  5. 网络安全及安全分析(1)
  6. 装修如何省钱,极家好不好?
  7. linux中文写作软件,码字写作软件下载 极音创作(码字软件)V1.3.5 linux版 下载-脚本之家...
  8. 字节跳动 前端校招 一二三面+hr面(2020-03)
  9. vue.js毕业设计,基于vue.js前后端分离外卖点餐系统(H5移动项目) 开题报告
  10. Nwafu-OJ-1417 Problem O C语言实习题三——5.图形输出