`
猫耳呀
  • 浏览: 160860 次
社区版块
存档分类
最新评论

崔立强:Dev无感Ops,如何做到高效软件交付

 
阅读更多

在2018第二届研发效能嘉年华上,阿里巴巴云效技术专家崔力强带来了如何做到高效软件交付的精彩演讲,首先介绍了阿里巴巴在近几年在交付平台上的技术经验,以及目前云上工具平台交易的趋势,其次分享了阿里巴巴内部交付平台如何帮助我们统一步调、并行工作,最后详细讲述了Dev无感Ops可以解决DevOps遇到的一些问题。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!
视频观看请点这
PPT下载请点这
以下为精彩视频内容整理:

阻碍开发者前进的问题
对于一个普通的工程师而言,第一要务是完成需求交付,我们的最终诉求是保障编码、测试、部署的高效。但实际发现我们在交付的过程中并不顺畅,研发流程的混乱经常出现代码错合,漏和,丢代码的现象;质量化下降最主要是代码有bug,线上环境交付不稳定,会有严重问题出现,测试环境不稳定指的是在做集成测试时需有一套环境,若环境不稳定,开发测试工作会被block;团队之间沟通不畅,开发和开发之间,开发和测试之间,没有统一规则或流程约定;一堆开源工具攒出来的开发工具链,不但提高了学习成本,还导致过程数据无法统一存储。几年前,几乎都使用开源工具模式做持续交付,后续发现存在许多问题,于是开始做自建平台过程。

上图为知名公司的一份统计数据,统计持续交付是否能帮助我们提升研发效率,分别是瀑布模式、敏捷模式和持续交付模式,可以看出在持续交付模式下,开发在设计、测试、部署上的时间比重大大减少,在真正做开发上的时间达到了80%。也即是说我们更专注,更高效的在进行开发,从Waterfall到Agile的模式在研发阶段效率高,主要是因为有更少的时间做设计、coding,而coding时产生核心价值的一个环节;从2-3饼图开发时间更长,是因为我们把交付时间压缩。

如何做到持续交付有以下五点:
 1.需求的小批量流转,通过拆分让价值可以快速的交付,减少集成成本,一般单个需求我们不会超过1周。
 2.自动化一切,不单是测试和部署,运维也需要自动化。
 3.内建质量,尽早的测试可以显著降低测试成本,保障交付流水线通畅,增强环境稳定性。
 4.每个人都为交付过程负责,不单单编码完成交给测试就ok了,要负责代码上线,并且各项功能数据都正常才算完成。
 5.研发过程数据,用户反馈数据,对我们有非常大的价值,可以看到目前还有哪些坑阻碍着我们前进。

团队不同阶段面临的问题 
最初我们团队只有1-7人时,是在最敏捷的状态,类似Jeff Bezos所说的two pizza team。按照目前微服务化的规模,应该有2-3个应用。这样的团队首先应该具备基本的CI能力和质量保障,确保自己的代码在一定质量下持续迭代。至于发布、运维并不一定是马上需要面对的问题,一些纸面上的流程和脚本,足够应付一阵子。

团队成长到7-20人时,我们应该有了一个比较大的产品,有复杂的架构和持续成长的业务。10多个应用之间互相影响,互相阻塞会导致我们线下开发和线上SLA面临挑战。此时一个统一的研发流程可以帮助我们规范开发行为,再加上统一的质量标准,不会让我们集成环境和线上环境面临较大风险。随着应用增多,我们也需要一些契约测试来确保服务兼容性。

团队成长到20-100人时,已经是一个相当大的规模,我们掌握着一个企业核心的产品,业务压力和稳定性压力像两个小人不断PK。如何在质量和效率上达到最佳平衡,是我们要考虑的核心问题。应用规模达到了几十个,已经不是简单研发自动化能解决的了,此时需要一个统一的研发平台,帮助解决从CI到CD的全链路问题,甚至包含全自动化的运维工具。产品、开发、测试、运维等角色可以在一个平台上高效协作。在2017年,已经有83%的企业开始使用云计算来解决企业基础设施问题和软件交付问题。相比2016年出现爆发式增长,不难理解利用现成的经过验证的可靠方案,可以大大缩短企业达成高效率目标的路径。帮助企业在市场竞争中获得先发优势。

统一步调、并行工作
阿里巴巴内部端到端的研发平台包括项目协作、持续交付、应用运维、测试度量以下几方面。用云效首先可以获得研发模式的标准化,我们将其命名为AoneFlow,这是目前应用最广最适合阿里巴巴的分支管理模式,不但具有高度自由,快速迭代的特性,还可以与CD流水线结合,让整个公司具有统一的软件交付规范。

上图为研发模式标准化-AoneFlow,将分支管理模式落地到产品层面,开发只要通过平台新建特性分支,checkout push代码,后续合并上线全过程全部由平台接管,不但可以让开发者协作变的非常简单,高效,永不出错,而且在研发流程中可以加入自由配置的预设规则,比如什么时候合并代码,需要达到什么样的标准,codereview 安全是否通过,发布分支怎么处理,等等像乐高积木一般定义自己的研发流程。

将繁琐的易出错的事情留给平台,实现研发模式全自动化。真正的做到了研发过程全上平台,所有数据可追踪,并且彻底杜绝了漏发、错合、管理混乱的情况。让开发专心价值交付,是云效首先要解决的问题。
持续交付核心是快速交付价值,给与开发最大自由度,负责开发和运维全部过程。在监控、故障防控工具,功能开关的配合下,可以在保障用户体验和快速交付价值之间找到平衡点。

Dev无感Ops
Ops自身复杂由繁杂重复性的工作,Dev可以很轻易做Ops,是Dev感觉不到Ops的存在,Ops真正出现问题时,平台会通知Dev处理问题,最后帮助团队做度量。首先介绍阿里巴巴内部是以应用为中心DevOps理念使用来应用串联整个DevOps工具链、开发定义应用,同时定义运维、开发为应用全生命周期负责、系统自动完成应用运维配置。

因此我们一直在推动标准化,智能化,无感的Ops体系建设。目前在研发端我们的三个实践第一个是无人值守发布,众做周知绝大部分的故障来自于变更,变更的绝大部分又来自于发布,如何保障每次发布都是对用户无影响的,如何用系统代替人来关注庞杂繁琐的运维指标。去年我们应用运维产品推出了无人值守发布功能,它使用人工智能的方法,计算发布过程中监控指标、日志数据、用户数据等等多重维度的变化,预判可能出现的风险,警告用户或者触发回滚,保障发布过程无人参与。最终避免了90%的发布故障。第二个是应用健康检查,同样我们用大数据,人工智能的办法,获取多重运维数据,来帮助开发同学发现目前应用存在的风险,进行一键修复,有点类似大家电脑里的360管家。不需要有多少经验,人人都可以成为运维专家。最后是应用自愈,我们将运维工具和经验沉淀到了这个产品,对一些场景和问题进行自动修复和调整,达到无人参与的目的。这就是我们无感Ops的目标。

截图来自阿里云云效研发的某过程
上图为全云端构建,加速研发过程,云效完全自研的全云化构建调度系统,已经可以支持所有语言构建,拥有经过阿里云安全团队认可的安全加固机制。并且根据不同技术栈提供了自适应的构建缓存策略,避免依赖的重复下载,大大节约构建时间,提高开发过程效率。开发在使用云效只需要选择他的技术栈和构建命令,其他都可以交给平台自动化完成。

云效目前支持阿里云容器服务、edas、ecs三种部署方式,对每个应用的每个环境都可单独定义它的部署方式,并且实现任意切换。比如我们生产环境使用edas保障稳定,测试环境使用ecs混合部署节省资源都是可以实现的,非常方便。

在我们做运维栈转型升级的时候,可以通过修改部署配置进行平滑升级,如果有问题,我们还可以实现一键回滚。云效保存着历史所有软件发布升级的基线数据随时可查,随时可rollback,这些都是阿里巴巴内部多年经验的积累实践。

在运维方面,我们支持了通过ECS模板快速扩容,并且在云市场也上线了云效推荐镜像,直接可以获得和阿里巴巴一致的运维标准。最后是基于特性分支的测试环境管理功能,支持环境隔离能力,具有生命周期管理功能,让每个开发都可以享受到独立的研发环境,并行工作,高效交付。以上功能都可以在阿里云云效帮助中获得详细操作指南。

原文链接

分享到:
评论

相关推荐

    基于java的技术大健康综合咨询问诊平台的设计与实现.docx

    基于java的技术大健康综合咨询问诊平台的设计与实现.docx

    #_ssm_121_mysql_酒店管理系统_.zip

    均包含代码,文章,部分项目包含ppt

    #_ssm_099_mysql_花卉养殖知识平台_.zip

    均包含代码,文章,部分项目包含ppt

    HTML+CSS实现一个好看的动态交互效果底部导航栏源码

    演示地址:https://blog.csdn.net/qq_41221596/article/details/142372140

    电子卫浴,基于8266,云智易,远程控制浴缸、光波房、温蒸房的工作状态 Android版.zip(毕设&课设&实训&大作业&竞赛

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于java留学生交流互动论坛网站设计与实现.docx

    基于java留学生交流互动论坛网站设计与实现.docx

    软件自动定时启动器-添加可执行文件软件,设置启动的时间,也可以设置关闭的时间-供大家学习研究参考

    点击添加软件,可以添加可执行文件软件,设置启动的时间,也可以设置关闭的时间 注意,时间为00:00:00 等于没设置,这个时间不在设置范围,其他任何时间都可以 1.1更新 1:修复,设置的软件启动时间无法保存到配置文件 2:修复,设置的软件启动时间软件启动自动加载 3:修复,设置跨天,可能出现,无法执行的问题。

    92092092092011111111111111111

    92092092092011111111111111111

    java-ssm+vue小雨杂志在线投稿网站实现源码(项目源码-说明文档)

    本系统的集成开发环境是Eclipse,前端使用了html+JavaScript等技术,数据库管理运用了MySQL,Web服务器采用Tomcat,另外还采用SSM框架技术和B/S结构。 系统功能实现是系统编码环节,本系统主要分为三个模板,用户管理模块、稿件信息管理模块、留言管理管理模块 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 后端技术:ssm 前端技术:Vue 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog

    基于java的旅游资源网站设计与实现.docx

    基于java的旅游资源网站设计与实现.docx

    基于java的高校教师科研信息展示网站设计与实现.docx

    基于java的高校教师科研信息展示网站设计与实现.docx

    计算机二级计算机网络基本概念重点内容自行整理

    计算机网络是现代信息社会的重要基础设施,它通过各种通信设备和协议将不同地理位置的计算机连接起来,实现信息的传输、共享和处理。 计算机网络是指利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统互连起来,以功能完善的网络软件(网络通信协议、信息交换方式及网络操作系统等)实现网络中资源共享和信息传递的系统。

    ASP基于web的学校新闻发布系统开发(论文+源代码+开题报告+文献综述+外文翻译).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    2015 APMCM B题

    2015 APMCM B题

    基于java的手办周边商城设计与实现.docx

    基于java的手办周边商城设计与实现.docx

    asp.net多线程的TCP端口扫描程序的设计与实现(源代码+论文).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    POI产品介绍.pptx

    POI产品介绍.pptx

    #_ssm_115_mysql_互助养老系统_.zip

    均包含代码,文章,部分项目包含ppt

    我的网页设计部署.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    springboot和一些主流框架的整合的各个基本demo

    hello word 可能性版本 Springboot-web 网页版本 springboot-log 是给项目添加日志管理 springboot-mybatis-config 这是mybatis的配置版本 springboot-mybatis-annotation 这是mybatis的注解版 springboot-mail 就是springboot发邮件 springboot-redis springboot之使用redis数据库 springboot-editor.md springboot 与editor.md 集成 springboot-filter-listener-interceptor 过滤器、拦截器、监听器 Springboot-mongodb 与MongoDB集成 Springboot-elasticsearch 与Elasticsearch整合 Springboot-i18n SpringBoot国际化配置 SpringBoot-多源 SpringBoot多数据源配置,全局异常自定义处理

Global site tag (gtag.js) - Google Analytics