分享实录 | 企业CICD规模化落地浅析

00.png

 

【以下为分享实录,有删节】

今天分享的题目是《企业CICD规模化落地》,因此我们不会侧重讲解CICD是什么以及怎样做CICD,而是你已经知道怎样“玩转”CICD了,要如何在一个比较大的企业中规模化地落地。

研发流程与持续交付简析

持续交付是随着互联网的迅猛发展逐渐普及的一种研发模式,它具有“快速反馈”“质量内建”“自动化”“开发自运维”等特点。

01.PNG

这种研发模式主要包含如上图所示的四个环节,“分支管理”“测试验证”“制品管理”和“发布”。在业界有很多工具支持这些操作,在云效产品矩阵中也有对应的产品提供相应功能。

在一个中小型的研发团队(比如5-10人),无论你是使用商业软件还是开源的工具,经过一段时间的学习,你都可以把“持续交付”做起来。但是当需要规模化落地之后,就有更多的问题需要考虑,如:

  • 如何提高协作效率;
  • 新团队如何快速接入;
  • 如何进行全局风险的控制;
  • 研发流程如何全局更新。

持续交付在阿里巴巴的规模化

接下来简单了解一下“持续交付”研发工具在阿里巴巴内部的演化历程。2009年,我们开发了自动化发布工具;2013年,建立统一构建部署平台;到了2016年我们已经有了持续交付平台,内部称为“Aone”,该产品包含了从代码开发、构建、发布等功能,以一个一站式的研发平台,这个产品到现在也一直在演进;2017年时,我们将“Aone”的核心功能开放出来,供广大开发者使用,就是我们的“阿里云·云效”。目前该产品在公测中,大家可以登录阿里云官网进行访问、使用。

下面我们介绍几个帮助阿里巴巴实现持续交付规模化落地的研发实践。

02.PNG

要使持续交付规模化落地,很重要的一点是需要有一套工具对研发模式进行全自动支持。 “研发模式”是指你做事情的一种方式,在这里主要是指代码发布模式以及对应的分支使用方式,比如“主干模式”,这也是持续交付比较提倡的一种研发模式。但是“主干模式”对研发人员的要求比较高,并且也不能很好的体现出当前要进行发布的内容。作为一位研发负责人,你可能会选择更灵活一些的研发模式,比如 “Aone Flow”或者 “Git Flow”等,这两种模式都需要一定的自动化工具进行支持。

其中Aone Flow是在阿里巴巴内部主流的一种发布模式及分支管理方式,我们这里简单介绍一下,感兴趣的同学可以在网上搜索相关文章了解。Aone Flow使用三种分支类型:主干分支、特性分支、发布分支。主干分支上的代码跟线上版本的代码是一致的,当你要开发一个新的功能时,就会拉取一个特性分支作为开发分支,然后在这个分支上提交代码修改。当你需要发布的时候,需要先将不同的特性分支合并为开发分支再进行发布。发布到线上正式环境后,合并相应的发布分支到主干,在主干添加标签,同时删除该发布分支关联的特性分支。这个过程中涉及到大量的“拉分支”“合分支”“打标签”“回滚版本”等等复杂操作,这就需要有一系列自动化工具进行支持。在阿里巴巴内部我们是通过Aone平台(即云效的内部版本)提供自动化支持的。

03.PNG

第二个实践是以应用为核心的一站式研发体验。“应用”是指一个服务或者微服务,可以直接对应一个代码库。以应用为中心,我们又可以串联流水线、环境管理、构建配置、部署等工具链。可以让开发人员很好的理解和打通整个研发流程,同时也可以帮助一个新团队快速上手。

04.PNG

上图是我们内部一个产品研发过程的截图,会有一个研发向导帮助你提交各种信息、初始化代码库、源码自动生成、申请测试环境、进行线上发布等一系列操作。这种“以应用为核心的一站式体验”非常爽,可以帮助研发团队节省很多耗费在协作上的时间,而且有了这套流程之后,只要按照向导的提示去做就好了,很少出错。

接下来,我们聊一下如何进行全局风险管控。

05.PNG

在部署正式环境之前,会有一个Checklist,进行安全审核、PE审核等等,我们很多对外发布的应用都会经过这样的安全审核。在前DevOps时代(2016年以前),阿里巴巴内部还是有专门的运维团队的,我们叫PE团队。在正式发布前,他们会去审核发布的时间点、配置参数等。这就是全局风险管控,这些卡点会强制在一个流程中实施,不能够取消。(当然现在已经阿里巴巴内部已经取消了PE团队,这些卡点会通过自动化工具实现)

**兼具灵活性与规范性的持续交付平台
**
通过以上几个措施,就能够在阿里巴巴内部规模化的落地CICD,当新的研发团队加入时,也不用花费太多的时间去理解这个事情,而是很快上手去操作。但是我们这一套流程也遇到一些问题,这套流程面向Web端服务是可以很好去应对的,比如我们只有一个版本的“天猫”“淘宝”,永远是面向最新版去交付的;但是随着阿里云业务的发展,特别是出现了混合云的业务,出现了面向多Region和多版本交付的情况,我们这套研发流程就有点捉襟见肘了;因为我们的研发理念是“以应用为中心”,当遇到一些跟应用无关的交付场景时这套研发流程也会显得不合时宜。

06.PNG

如何提高阿里巴巴持续交付平台的灵活性呢?我们最早的研发架构如上图左侧所示,底层是研发平台,上面我们做了很多“场景化”的研发组件,同时保留了一定的扩展性,比如“自定义组件”,用户可以把自己的组件接入到我们的流水线里来;也暴露了一部分API,主要只读接口,其他团队可以在这上面做一些他的场景化。

我们认为这种研发架构的灵活性和扩展能力是不足的,(如上图右侧所示)后来我们就把构建、编排、部署、制品这些能力单独拎出来,并开放对应的API,上层我们再去编纂“场景化”,而且有可能这些“场景”都不是我们开发的,而是使用这个产品的用户自己去开发,重点是我们需要将这种扩展能力暴露出来。我们还会有“自定义步骤”和“自定义组件”,这两个功能已经在云效产品中提供。同时,我们还会开发更多API、支持更多的源,也可以通过配置webhook在流水线的生命周期中(失败、成功、暂停等)通知第三方。

这样的研发架构就具备了一定的灵活性和可扩展性,但对于企业来讲这是不够,还必须具有开箱即用的能力。

07.PNG

云效内置代码扫描、 安全扫描和各种自动化测试能力,并通过流水线模板串联起来 。如上图右侧所示,针对主流的开发语言Java、PHP、Node.js、Go、Python等提供从构建到部署发布的各种模板,可以帮助你快速开始。

模板化能力其实是推进CICD规模化落地的关键,云效不仅提供了数十种通用的模版来帮助你快速创建流水线,同时提供定制化能力,支持定制企业自有模版来管理企业持续集成和持续交付流程,将复杂的流程通过可视化编排和结果展现,保障交付可见可控可度量。

总结:

当你已经对CICD有一定了解,怎么样更好的在组织内规模化落地呢?第一,你需要选择一款兼具灵活性和规范性的工具平台。第二,制定适合自己企业的研发模式,并将其固化下来;第三,研发模式的变更可以应用到已有的团队;第四,通过适当的卡点来控制全局风险。

以上内容整理自怀虎的视频分享《企业CICD规模化落地》,欢迎大家加入云效开发者交流群(钉钉群号:34532418)观看视频回放,下载演讲PPT。


【关于云效】

云效,企业级一站式DevOps平台,源于阿里巴巴先进的研发理念和工程实践,致力于成为数字企业的研发效能引擎!云效提供从“需求 ->开发->测试->发布->运维->运营”端到端的在线协同服务和研发工具,通过人工智能、云原生技术的应用助力开发者提升研发效能,持续交付有效价值。

【云效官网】https://www.aliyun.com/product/yunxiao
【公测指南】https://developer.aliyun.com/article/756207
【申请公测】https://devops.aliyun.com
【学习路径】https://help.aliyun.com/document_detail/153739.html
【开发者社区】https://developer.aliyun.com/group/yunxiao
【精彩活动】云效公测开启 「产品体验官」招募中~
https://www.aliyun.com/activity/yunxiao/Beta2020

 

开发者俱乐部(组织)180.jpg


欢迎扫码加入云效开发者俱乐部(钉群:34532418)

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅发布:阿里云云安全中心一键防勒索功能上线!

5月6日,阿里云云安全中心重磅发布一键防勒索功能,致力于帮助客户实现对勒索病毒的一键式纵深防御。 勒索病毒对企业来说是危害极大的安全风险之一,一旦核心数据或文件被加密,除了缴纳赎金,基本上无法解密。两年前爆发…

用 Excel VBA 提取小数部分-自定义函数

利用VBA 提取小数部分 Function GetDec(cell As Range, Optional ConvertToWhole As Boolean) As Variant 示例:2.154a)如果忽略或设置为FALSE,则函数返回小数,类似于“0.154”的形式b)如果设置为TRUE,则函数返回一个整数,如“154”Dim i%If

【数据湖存储】数据湖的终极奥秘,无招胜有招

作为海量数据存储与分析的重要承载方式的数据湖,从2011年概念诞生至今,已经发展了9个年头。而数据湖是什么?又能为数字化经济带来什么?《阿里云数据湖存储解决方案蓝皮书》将为您揭开数据湖的终极奥秘——无招胜有招 关注“阿里云…

科天云会议产品升级,打造企业数字化转型办公协同新基建

2020年11月24日,科天云会议宣布升级科天章鱼云并发布科天aPaas办公协作中台。依托科天aPaas办公协作中台核心技术架构,科天章鱼云10大音视频通讯核心能力,科天云会议将以便捷轻量的SaaSPaaS模式,为大中型企业提供云到端、全场景的…

社区首款 OAM 可视化平台发布!

作者 | 徐运元,杭州谐云科技合伙人及资深架构师,云计算行业和 Kubernetes 生态资深从业者 导读:什么是 OAM?2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小…

linux:根据关键字或日期查找日志

文章目录脚本11. 脚本描述2. 要点3. 格式4. 脚本原型5. shell脚本6. 效果图脚本22.1. 脚本描述2.2. 要点2.3. 格式2.4. 脚本原型2.5. shell脚本2.6. 效果图脚本1 1. 脚本描述 查询指定日志文件中是否包含指定的关键词的日志信息 2. 要点 包含则输出包含的关建行所在日志信息…

Go 语言成为最受欢迎的语言

<关注阿里巴巴云原生公众号&#xff0c;回复 Go 即可下载清晰知识图谱> 对 Go 语言感兴趣但又不知从何学起的同学&#xff0c;可以参考一下 Go 语言系列文章&#xff1a; 为什么你要选择 Go&#xff1f;Go 面向失败编程带着服务器编程金刚经走进 2020 年敢问路在何方&a…

如何在DevSecOps道路上快速、安全地抵达终点

作者 | 吴翔责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国近年来&#xff0c;移动互联网的迅猛发展给人们带去不少便利&#xff0c;在软件安全领域内&#xff0c;一种名为敏捷开发的模式正悄然流行&#xff0c;而可打破业务隔离、提高效率的DevOps&#xff08;开发…

构建更动态更灵活的分布式计算生态

0. 前言 作为阿里巴巴核心大数据底座&#xff0c;伏羲调度和分布式执行系统&#xff0c;支撑着阿里集团内部以及阿里云上大数据平台绝大部分的大数据计算需求&#xff0c;在其上运行的MaxCompute(ODPS) 以及PAI等多种计算引擎&#xff0c;每天为用户进行海量的数据运算。 在&q…

企业微信H5_身份验证,H5应用网页授权登录获取身份

文章目录一、调用流程1. 企业微信OAuth2接入流程2. 使用OAuth2前须知3. 构造网页授权链接4. 获取访问用户身份二、调试前准备2.1. 配置域名映射2.2. 跨域域名请求2.3. 设置可信任域名2.4. 登录企微2.5. 选择自建应用三、实战演练3.1. 前端编码触发后端api3.2. 后端构造授权链接…

Istio 网关之南北向流量管理

作者 | 王夕宁 阿里巴巴高级技术专家 参与阿里巴巴云原生公众号文末留言互动&#xff0c;有机会获得赠书福利&#xff01; 本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书&#xff0c;文章介绍将集群外部的客户端连接到集群内运行的服务&…

想在边缘运行计算机视觉程序?先来迎接挑战!

作者 | alwaysAI翻译 | 火火酱~&#xff0c;责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国人工智能可以让计算机聪明地行动&#xff0c;并且在真实环境中快速做出决策&#xff0c;同时收获相对理想的效果。当然&#xff0c;这个概括性的定义较为宽泛和模糊&#xf…

企业微信_通讯录管理,获取部门列表部门成员及详情

企业微信H5_通讯录管理,获取部门列表部门成员及详情 文章目录一、POSTMAN调试1. 获取access_token2. 获取部门列表3. 获取部门成员4. 获取部门成员详情5. 获取成员详情二、实战演练2.1. 获取部门列表2.2. 获取部门成员2.3. 获取部门成员详情2.4. 获取人员详情三、代码讲解3.1.…

【深度学习】基于 Alluxio 数据缓存的性能优化

作者 | 车漾&#xff08;阿里云高级技术专家&#xff09;、顾荣&#xff08;南京大学 副研究员&#xff09; 导读&#xff1a;Alluxio 项目诞生于 UC Berkeley AMP 实验室&#xff0c;自开源以来经过 7 年的不断开发迭代&#xff0c;支撑大数据处理场景的数据统一管理和高效缓…

企业微信H5_身份验证,PC网站企业微信扫码授权登录

企业微信H5_身份验证,PC网站企业微信扫码授权登录 文章目录一、扫码登录配置1. 企业微信扫码登录接入流程2. 企业微信扫码登录接入流程拆解3. 开启网页授权登录二、实战演练2.1. 用户发起流程2.2. 构造授权链接2.3. 显示扫码二维码2.4. 用户扫码2.5. 用户确认登录2.6. 回调前端…

深根固柢 云起磐石——移动云大云磐石服务器重磅推出

中国移动云能力中心在2020年中国移动全球合作伙伴大会移动云分论坛上&#xff0c;发布了新型自研软硬融合弹性计算架构——大云磐石服务器。该架构以自主设计的可编程芯片HyperCard和轻量级Hypervisor为核心&#xff0c;将存储、网络虚拟化能力卸载到硬件芯片&#xff0c;彻底突…

面向大数据与云计算调度挑战的阿里经济体核心调度系统

编者按 伏羲&#xff08;Fuxi&#xff09;是十年前最初创立飞天平台时的三大服务之一&#xff08;分布式存储 Pangu&#xff0c;分布式计算 MaxCompute&#xff0c;分布式调度 Fuxi&#xff09;&#xff0c;当时的设计初衷是为了解决大规模分布式资源的调度问题&#xff08;本…

企业微信_读取成员(获取用户详情)

接上一篇&#xff1a;企业微信H5_身份验证,H5应用网页授权登录获取身份 这篇获取用户详情信息,是在上一篇&#xff08;我们已经获取到用户的简要信息&#xff09;基础上做的。 文章目录一、官网文档1. 阅读官网文档2. 接口地址和参数3. 重点说明二、实战演练三、代码讲解3.1. 获…

智算中心新基建 浪潮首发智算中心操作系统

2020年11月25日&#xff0c;“远见卓实 践所未见”浪潮云海创新论坛2020在济南召开。会议分享了浪潮对于前沿科技的创新洞见&#xff0c;并以扎实可靠的落地实践为用户呈现技术的商业价值。 会上&#xff0c;浪潮全球首发智算中心操作系统&#xff0c;信通院、OIF、Globaldata…

新基建来了!5G边缘计算如何展现勃勃生机?

最近“新基建”是个热词&#xff0c;那么新基建到底是什么&#xff1f;与之紧密相关的5G何去何从&#xff1f;这给边缘计算带来了什么机遇&#xff1f;边缘计算的生态产业链条是怎样的&#xff1f;它的典型特征和经济效益是什么&#xff1f;本文将为大家带来分享。 新基建是什…