Alibaba DevOps landing practice gameplay and thinking analysis

Abstract:  On July 26, Alibaba's continuous integration and continuous delivery platform, Yunxiao, held a theme salon "How to play DevOps in the era of business is king?" at the Alibaba Center in Shenzhen. Alibaba technical experts from Yunxiaoxin From the conception, to the implementation of Alibaba DevOps, to how enterprises use cloud efficiency for efficient R&D, and to the layered automation of Alibaba CI/CD, it helps participants to comprehensively and deeply understand concepts, strategies, practices, effects, etc. Learn how to play DevOps and how to implement it.

In the Internet era, with the rapid development of business, enterprises increasingly hope to improve the efficiency of R&D, operation and maintenance and other IT departments and support business development by implementing DevOps. How do Internet companies use tools to implement DevOps? How can traditional enterprises improve R&D efficiency and become more Internet-enabled? These are the problems facing businesses.

 

On July 26, Alibaba's continuous integration and continuous delivery platform, Yunxiao, held a theme salon of "In the Age of Business is King, How Does DevOps Play?" at the Alibaba Center in Shenzhen. He proposed to help participants gain a comprehensive and in-depth understanding of concepts, strategies, practices, effects, etc., from the implementation of Alibaba DevOps, to how enterprises use cloud effects for efficient R&D, and to the layered automation of Alibaba CI/CD. DevOps gameplay, and specific ideas on how to land.

Cloud Efficiency: Enterprise-level R&D Efficiency Improvement Services in the Internet+ Era

Yunxiao is a R&D efficiency platform spawned by the Internet business. In 2012, Yunxiao was incubated from Alibaba's B2B business group to provide R&D efficiency services for Alibaba; in 2013, Yunxiao truly realized continuous integration and continuous delivery and implemented it; at the end of 2015 , Yunxiao cooperated with the first Internet insurance company ZhongAn Insurance to start the first step of commercialization, and later officially provided services for Internet + enterprises.

 

After a long-term implementation of cloud effect, a set of tools and products including testing strategies and R&D strategies have been precipitated, and they have begun to better support the Internetization of traditional enterprises. At this salon, Zhang Yi, the person in charge of Yunxiao, formally proposed: "Enterprise-level R&D efficiency improvement service in the Internet + era", a new concept to empower traditional enterprises! At present, it has covered new retail, real estate, brokerage, banking, insurance and other industries, serving traditional enterprises such as Gujia Home Furnishing, Lee Kum Kee, World Union Bank, Guotai Junan, Everbright Bank, and Tianhong Fund.

 

Cloud Effect 2.0 Features

  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;

  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。

 

云效2.0策略

云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

落地效果

在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。 

阿里巴巴DevOps落地实践

 

章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

 

在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。

为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。

 

DevOps实施策略

如何赋能开发自运维、自测?

在赋能开发自运维、自测过程中,工具的价值最为凸显。

  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

 

DevOps实施结果

开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。

企业如何利用云效进行高效研发?

 

苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。

 

云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

 

一个项目如何在云效实现持续集成?

视频演示链接:

http://click.aliyun.com/m/27207/

视频解读:

 

项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。

开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。

 

测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。

集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。

阿里巴巴CI/CD之分层自动化

 

金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

 

手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。

 

如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。

 

为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。

 

在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。

 

阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。

 

这里来介绍几个革命性工具:

 

UI自动化—AUI

创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用

支持本地回放,支持云端执行,解放机器,释放双手

支持项目持续集成,线上监控等各种复杂场景

 

接口自动化—SAT

可视化的接口测试,无需编写代码

支持普通接口调试和复杂后台交互的接口测试的用例沉淀

支持主干,项目用例的沉淀与回归

支持项目持续集成

 

性能压测—Perf

基于 Jmeter 的性能压测平台

集脚本,场景,压测,监控和报表为一体,可快速施压的平台

支持多种协议,适合 http,service 接口等测试

比 LoadRunner 易上手,更轻量

 

单元测试—Amon

可对代码主干及各项目分支进行单测集成

对有代码变更的项目分支自定义频率集成

对有代码变更的应用主干自定义频率集成

拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

 

集成自动化—Pre

支持多种自动化框架接入

支持项目集成相关所有自动化的自动统一触发

支持多种自动化框架不同环境触发

支持日常持续集成

支持自动化失败的原因汇总与总结

 

阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326562259&siteId=291194637