万字长文 | 详解优维科技内部 DevOps 研发实践 | 演讲实录

分享创造 · sara23333 · Created at · Last by mm0089 Replied at · 1720 hits
4534 1494815333

7月15日,优维科技和数人云在上海举办了“DevOps&SRE超越传统运维之道”第三期,现场座无虚席。在这里再次感谢顶着酷暑来参加活动的小伙伴们!以下为优维科技刘劲辉的演讲实录。

刘劲辉 优维科技高级解决方案架构师
曾就职于阿里巴巴移动事业群,具有多年的业务运维和运维研发经验。曾负责开发建设基于阿里游戏中心JWS框架的自动化运维平台,对DevOps实践落地有丰富经验。

《优维科技内部DevOps研发实践》

一、Why DevOps?

首先,我先简单跟大家讲一下DevOps基本的理念,可以简单问一下现场对DevOps有比较深刻了解的举一下手。好的,大部分都是比较不清楚的。

我先讲一下这部分内容,其实在企业生产的过程里,他们关注的核心都是3个东西,就效率、质量和成本,不管是哪个企业,不管是互联网金融还是科技公司还是传统的制造业,他们关注的点,在生产过程里面关注的点一定是这三个目标,基于这三个目标传统行业里是怎么做的?

传统行业制造业里面会提出一些模块化的生产、流水线生产、自动化废品检测等等很多的自动化流水线,精益管理是想帮助他们做制造业的生产过程,精益化的过程,但是对传统的IT服务业来说是怎么样的?

IT服务业不会生产实际的产品,它会生产服务,而服务来源我们用户需求,比如说我们要听网易云音乐,要玩游戏等等其实是线上的用户服务,不会产生实际的东西,但同样这也是一个生产过程,只不过这两个生产过程生产的东西不一样而已,这两个生产过程同样要遵循刚才所看到的企业在生产过程中遵循的三个核心。一个是质量,还有成本、还有效率。

对于我们的IT制造过程里面遵循这三个目标会去关注什么方面?会关注这些方面,如下图所示。比如说我们把用户的需求变成线上的服务,比如说你能够多快去发布我们的用户需求,还有你发布这个需求需要多长时间?还有你发布这个需求出问题了,该怎么去解决?还有最终怎么防止?

这里列出一些是不是你组织高性能的一个衡量标准。比如说我们的谷歌、facebook 在这四个指标上执行上是非常好的。谷歌每天发布量高频率会达到3万次。

然后,面对这些挑战的话,我们提出了DevOps 的概念,其实它也是来源于传统制造业里面的精益管理的思想,跟传统制造业其实是一样的,只不过换一种方式变成了IT服务业里面的一个落地而已。最开始它的思想是来自于传统制造业的精益管理,精益管理抽象成到IT里面会变成3个基本的模块,一个是敏捷管理,一个是持续交付,还有一个是IT服务管理。所以DevOps是一种文化,基本模块就是分成这3个模块。

在这些模块里,这些东西以前都已经有了,也就是不是DevOps提出的,而是它以前都已经有了。比如说敏捷管理里面,涉及到很多敏捷开发,版本管理,SE开发等等这种规范或者一些版本规范、分析规范、部署规范这些,这些都是属于敏捷管理里面的内容。

还有一个持续交付,肯定在DevOps出现之前,你们都已经做过一些运维自动化、测试自动化这种东西。还有一些IT运营的东西,可能以前的产品会分析线上的性能,或者是研发会分析系统性能这些,去搜集这类的问题管理等等。

所以DevOps的话,并不是这几个模块具体的产生,而是它把这几个模块做一个比较好的整合,根据传统的DevOps 精益管理的思想把这几个模块很好的串通起来,这才是DevOps 整个文化理念基本的概念。

二、How does DevOps Team works?

首先,我们先看一下DevOps 团队一般是怎么构成的,从研发的模式来了解DevOps 的模式的话,以前我们会采用瀑布流的模式,团队可能会分成3个团队,一个是研发团队,一个是QA团队,还有一个是操作团队。然后当这种效率其实是违反了持续交付模式里面很多内容的,比如说手动部署、开发完成再生成部署,所以它的迭代效率会慢一点。

随着而来,我们会在研发还有测试这一块会提出一些敏捷开发的思想,希望能把这个过程加快一点,基于这种模式的企业一般它的团队都是研发本身是一个合作的团队,但是操作还是比较严格的,这其实违反了一个模式,就是说这里研发是快的,但只快在研发和测试方面。

它的生产环境还是会出问题,因为它在开发完成之后才出现生产环境问题,之前一直开发的时候都没有部署过生产环境的,所以环境不一样可能会有一些问题出现。因此,从DevOps 来看,DevOps 希望它是一个功能团队,希望在这个团队里面把开发、测试运维拉在一起互相合作,这才是一个DevOps 团队基本的构成。

来讲一下EasyOps,接下来会讲一下EasyOps 的DevOps实践是怎么样的,先讲一下EasyOps 产品研发流程,就是需求变成一个产品之后会有一个功能的时候,它的流程是怎么样的,一般分成这几个阶段,先是需求和概念提出,比如说客户提出一个功能,见简单的,他提出一个功能说我要回滚功能,那回滚功能我们先提出这个概念会做需求讨论。

然后首先会去做调研,你回滚平时是怎么做的,大部分用户是怎么做的,大部分企业又是怎么做回滚的,这里面在调研里其实有一个误区在里面,很多用户在做需求调研的时候用户都会说你帮我在这里加一个什么东西,或者是你帮我在这个页面加一个按钮就好了,这样做就OK了,它的需求就搞定了,它的需求真的是这样子吗?其实最终很多时候做这种的需求都是失败的。

一般正常逻辑都是这样的,我不让用户指导我来做什么,而是说我会问用户,你为了完成这个需求,你现在是怎么做的,你一五一十告诉我,我回答之后我会把你做的那个工作,业务流程划出来,我会分析这个过程里哪些是好的,哪些是坏的,哪些是有问题的,哪些是可以优化的。

然后我会去做一个流程创新,我会把用户故事的流程进行一个创新再设计,设计出一个业务流程图,包括这个原型需求的设计文档,然后再交给我们的研发团队去做这次任务的编写,然后最终是一个功能的发布。

好的,那就是我们一个DevOps 团队组成至少要包含这一块的东西,DevOps 基本组成会是这样子的,比如说第一个,我们至少有一个产品经理,而且这个产品经理负责做我们的需求的收集、分析、业务流程等等的调研,这个需求分解完之后会有需求轮岗出来,这边的需求轮岗会交给测试和QA控制组做这个事情。

QA这边有一个评委组出一个文出来,然后再根据需求文档去写那些根据需求出来的知识,我们的这个用户就看情况了,比如说这个需求需要前端支援的话,可能有UI、前端和后端,所以一个虚拟团队的话基本组成大概会有一个7人的小团队这样子的。

但是大部分的情况,这不是固定的,大部分的情况下,很多产品不同,可能产品会经常穿插于各个功能特性上去,所以不是固定的,会在团队里去穿插,我们的QA也是,当它根据需求写完这个测试和场景覆盖的话,可能去帮助其他的功能团队去做更多的测试。这些也是按照实际情况来调整的。

比如说我们的功能比较简单,需要一个后端,需要一个前端就搞定了,有可能会出现这样子。但是,这些角色的话是一定要存在的,它是一个单独的团队。这些团队一般是按照产品线来划分,它在组织架构上会调整。

来看一下EasyOps 迭代效率是怎么样的,如果是按照这样的组成来构建内部一个团队,功能研发团队的话,首先我们会去产生一个功能,比如说用户级的回滚功能。

我们同时在一个版本开发里会有同时很多这样的功能在开发,比如说有一个团队正在开发回滚的功能,有一个团队正在开发版本类型的功能,有一个团队正在开发持续交付流水线的功能,所以它会有不同的小组一起正在进行工作,这些功能最后合并成一个上线时的一个版本,比如说这个版本里面就可能发很多内容在里面。

我们的EasyOps 研发大概是35人左右,比如说按照7人团队来做的话,同时能够并行5个功能的开发。但是实际上其实很多功能都不需要那么多人的,也是可以穿插各个功能一起做这个事情,所以平时基本上EasyOps 内部同时迭代的功能大概有10个或者是10个以上,这就是EasyOps 内部产品研发团队的工作模式。

三、How Does Aglie Management works?

接下来我会讲一下我们的产品研发团队组成在敏捷管理这一块是怎么工作的,其实这个也是DevOps 最主要的内容,DevOps 里面两个最核心的模块一个是敏捷管理,还有一个是持续交付,大家平时听得比较多是持续交付,很少讲敏捷管理,我会简单的讲一下。

我们EasyOps 内部敏捷管理是怎么做的?首先看一下整个产品研发的流程,我们把刚才的那个圈细化一下,首先在需求概念阶段的话,是怎么样的?有用户提出我要回滚,然后我们就会把这个需求提交上去,它会有一个通道说这里显示一个回滚的功能是需求待讨论的。

我们会把这个拿出来一起讨论,我们的研发会一起讨论确定这个功能确实是需要做,然后把这个功能立项把它给到一个分支号,比如说f056。就我们现在已经立项做这个事情了,立项做这个事情怎么做呢?

首先还是按照刚才所说的,在你的调研和设计阶段,你必须要去做调研,你必须要知道你一个回滚的流程整个流程图是怎么样的,你必须画出来,这个流程图出来之后会产生一些用户操作的场景,这实际上是用户用你的功能以后会出现一些场景,比如说回滚,它可能立即回滚,比如说他发布完一次之后,马上有问题了系统帮它立即回滚。

或者是另外一种场景,他选择发布之后,15分钟之后发现业务上有问题,但是他本来原来刚才启动的时候是没有问题的。后面事后回滚的话是怎么做这个产品的,然后多应用,比如10个应用、10个应用发布了,现在要回滚这些应用怎么去做,这就是用户故事的场景。

然后根据这些用户故事的场景我们会去设计一个原型出来,根据不同的场景设计这些原型,最终得出我们的需求文档,这个需求文档包含了我们的设计原则和业务流程图。然后产品,研发和测试就是看到这个测试流程图干活的,当然也有需求讨论会去讨论这个需求文档。

简单看一下业务流程图是怎么样的,这里是f063是我们的docker 开发的业务流程图,用户是怎么样在我们平台上使用docker 的镜像管理的,比如说这个有一个docker 镜像管理它会有不同的业务流程管理它,不然研发没有流程图,没有需求原型是很难精确理解到这个需求,最终做出来很容量变样的,所以这块在管理里是非常重要的。

这是业务流程图,这是业务原型,产品性大概做这个东西做成什么样子,会给一个原型出来,可能可以交付给我们的后端研发或者是前端的UI等等去参考,然后最终这个需求文档会出来,明确一下这个功能的详情是用来做什么的,功能描述等等,还有里面包含很多的流程图,还有我们的业务原型图。

需求文档提出来进入讨论阶段,我们会开需求评审会,需求评审会完了之后会有特性面板去跟踪,这是我们EasyOps 内部的特性面板,特性面板这个功能面板是正被在做的,一部分是正在做的功能,一部分是已经完成功能,另一部分是准备发布的功能,还有一部分是已经发的那些功能,可以在历史的版本里会找到这些功能。

这是每一个功能的项目,比如说f056持续交付流水线这个功能所包含的一些基本的描述,根据这个基本的描述我们会有专门的面板跟踪这个功能的开发,比如说这里需求已经定稿的,这是研发出来的大概的任务,这些任务会跟需求1,有标签1,比如说这个是*01、*02的需求,那些研发任务上面会打标签说这是属于哪一个需求分解出来的研发任务,全部都在这里。然后研发的那些比如说待办的、开发完成的,正在QA测试的都能看到。

这个是我们的项目管理进度,就是研发任务分解完之后我们有面板跟踪,分解了明确的研发任务,分解了明确测试的编写任务。当所有的任务完成了就标志着这个功能已经被完成了,所以我们会时刻跟踪这个面板上面的那些任务完成的进度,比如说这里有总的任务数,每天完成的趋势,还有每个人的任务统计,防止延误的风险,这里还会精确到个人的分析,比如说这个人工作状态是怎么样的,他每天完成的任务是怎么样的。

我们在分解这个任务的时候要小心,如果他是比较大的功能,我们分解任务的时候希望分解到每人每天,这样项目经理还有研发经理就很容易判断,他这个人挂了多少任务,他现在是不是空闲的,他还有多少的工作开发量,还有天的开发量,这个面板还有多少的任务没有完成,他就看一下比如说有10个任务没有完成,这个团队有10个人的话,他就知道这个任务今天就可以投入使用,它是这样的模式。

在敏捷管理里刚才说的都是整个的需求分解、研发分解、研发分解、测试用例分解等等一些管理,敏捷管理还包括其他,比如说我们的分支管理是怎么做的,版本管理是怎么做的,分支管理我们没有做很多的创新,直接用了git-flow做我们的分支管理和版本管理。

这里面敏捷管理还有环境管理规范,我们EasyOps 的环境管理规范首先包含这几个东西,首先我们采用分支开发模式,所以那些功能之后分支都有独立的环境。然后我们会有固定的功能开发和服务器,这个是QA控制组立项的时候,会分配一个独立的环境,比如说同一个功能我就分配163给他做这个开发,还有持续交付流水线,我们就分配164给他做功能开发。

接下来是我们的产品管理。比如说2.27.0版本我们都会开一个产品发布会,这个版本带来哪些功能去,比如说2.27这个版本前端支持开发,应用部署支持什么,还有什么流程工具版本控制,流程工具的支持配置管理等等这些功能在这里。

然后我们一目了然的,知道这个版本发完了什么东西,有什么新的特性。这是敏捷管理里面的产品管理。其实还有很多的东西,比如说EasyOps 的部署规范,由于时间关系,有兴趣的可以后面跟我聊一下。

四、Why Pipeline?How Does it work?

我们讲完敏捷管理,讲第二个核心模块,持续交付是怎么做的,大家会比较熟悉一点,这里就简单的讲一下EasyOps 是怎么做的?

刚才出现了两个产品研发的流程图,那是项目管理里面的流程图,这一页是持续交付的流程图是怎么做的,首先在研发和交付阶段分成几个模块,刚才我们拿到需求文档,开需求评审会,可能研发就会分解他的任务。

然后进行代码研发,在这里少写了一个就是测试分解测试用例的场景,所以在代码研发的时候同时测试用例正在编写,有可能测试用例写完了研发都还没有把代码写完。研发写完了以后就可以马上进行集成,进行版本交付的过程。

讲到持续交付肯定要讲流水线,我们讲一下流水线,这个流水线经常会看到很多教科书写的可靠、可重复流水线,大家知道可靠可重复是什么意思?为什么流水线是可靠可重复的?我来简单解答一下,可靠是什么意思?

可靠就是说流水线它也是一种基础环境,你可以认为它是一种代码环境,它也是一种代码,输入1,输出E永远是这样子的不会输错,是不可变的。这是它的可靠性。第二个可重复是什么意思?它永远只干一件事情,这个过程可以追踪、可以审计的,从来不会做其他的事情,你让他干A活就A,干B活就B。

再举个通俗一点的例子,比如说我线上部署应用A,如果人去做这个部署,可能我给上面5个人做部署应用A,可能这5个人最终都是专家应用到部署上去,但是应用部署方式不一样,比如说第一个人先把包上传下来,然后解压放到临时目录,然后再把文件覆盖过去,但是另外一个人不是这样做的,另外一个人也是先把包上传下来,解压把原来目录备份一下比较安全,然后再把这个文件放进去,可能不同的人来做过程不一样,但是结果有可能一样的,有可能不一样。

就是人去做部署的时候非常不可靠的,这就是为什么持续交付里面非常反感那些人做手工部署,这些手工部署不仅要理解部署文档,而且你做的事情换另外一个人来做有可能不一样,所以这是为什么用流水线做这个东西是可靠可重复的。

我们来简单看一下一个需求发布的基本工作流程是怎么样的,至少包含这4个阶段,第一个是需求设计和研发。就是你会有不断的研发,需求设计完之后就是本地研发,本地研发之后最常见的就是提测,提测就会进入到我们的测试环境去做功能验证,因为很多已经做了自动化的测试,这里测试环境更多是做什么?

做人工性的探索测试,演示性测试,会起到一些安全性的,比如说容量的压缩等这些测试,可能会测试环境做,当测试通过之后这个版本就可以进行版本上线,版本上线比较复杂,生产环境会按照这个测试来做,比如说滚动部署。

一般的功能流程包含这4个阶段,我们认为这四个阶段用一条流水线来做实在是太困难了,而且是不同的阶段在干不同的事情,所以我们认为流水线可以分成多个阶段来做这个事情,真正的流水线之间是有衔接的,在敏捷管理里面它是同一个需求就可以了。我们把流水线分成三个阶段,一个是开发阶段本地的,一个是开发运营的流水线,一个是测试的流水线,还有一个最终交付上线的发布策略相关的交付流水线。

在EasyOps 内部开发流程是这样子的,就是它关注研发本地开发,我在这个功能环境里,比如说研发正在做回滚的功能,我在163这个服务器上不断的提交我的代码,它会自动的更新163这个东西,这里涉及到一些我们的代码管理怎么做,分支管理怎么做,以及构建设施怎么做,你的单元测试怎么做的,结构测试怎么做的,还有流水线构建的能力,就包含这些能力在里面,不要小看这么广,其实包含一个一个的东西在里面。

像我们的研发,在本地一旦提交代码,就会代码构建,构建完之后就去做打包管理,打包管理注册我们的版本,把版本注册上去就部署到我们的163环境,然后就跑自动化的接口测试,它就包含这几个东西。等会会讲一下为什么这里不是单元测试,代码覆盖率,为什么这里内部只有一个接口测试,我会在QA环节解答一下。

然后就是测试流水线,测试流水线比较严格一点,跟开发流水线有什么不一样,其实大部分都是一样的,但是有一个地方不一样,就是它有一个明确的版本是二进制的包提出来,开发不关心这个过程的,所以他导入的包可能没有真正录入到我们的二进制仓库里去,但是测试和运维关心的不是某一个分支,而是明确的版本。

所以这里构建的时候,在版本管理里面还涉及到一些版本管理,我们会通过打标签的方式,标签就是我们的版本号,打标签的时候会自动触发这个流水线,比如说给一个标签出来,注册成一个测试版本,在我们的二进制仓库里面去,要运行一些测试的自动化的接口测试,还有自动化的UI测试等等,最后就进入了人工确认的环节,人工确认比如说有一些手工测试,有一些探索性的测试要做,做完之后我就上线,如果他不想上线就结束了,这样的模式。

简单看一下在构建流水线的时候本身具备什么能力才能适应,就算公司开发自己的流水线你要注意有这些能力,比如说你要有串行的能力,有并行的能力,因为有些自动化测试可以并行调的,一定不能忽视这个环节。有串行、并行、合流、分流,有子流程,可以穿插子流程,可以放一个任务,失败了可以继续进行,失败了也可以停下来。然后还有判断,一些人工确认也是需要做的。

比如说它不是OA流程的,那种人工圈是比较简单的应用人工暂停。还有输入输出共享,这个在流程设计里非常重要的,它是跟OA流程完全不一样的地方,就是每一个模块里面的输入输出在后面的时候模块都是共享的,在构建这个流水线的时候能力非常的便利。

五、EasyOps封闭开发

讲完了流水线具体来看一下我们的封闭开发是怎么做的?比如说把上个月持续交付的流水线,就是开发这个功能,我们是怎么开发的?把这个例子给大家说一下。

EasyOps 开发特性的案例,比如说开发持续交付流水线的功能,这个功能去清远做了封闭开发,在那里我们用了两周的时间来设计持续交付流水线,只用了5天的时间开发,7个小组3个模块,一共分解了56个研发任务。

为什么设计这里这么复杂,研发周期为什么那么短,其实你在设计阶段,刚才不断强调敏捷管理里面的作用,一旦需求在里面,业务流程图非常明确,业务原型有参考的意义,这样研发拿到这样的数据文档才好开发,开发的效率才会高,在简单的测试用例才不会有偏差。

需求文档设计得好,研发的效率其实会大幅度的提升,绝对不会慢,而且开发出来的东西也不会偏离场景的意图太远。这个能力因为我们核心团队人都是来自于腾讯的,腾讯内部也非常重视这个东西,腾讯的产品经理的权利是最大的,只要这个需求文档说我要做研发,基本上没有讨价还价的机会。

因为他的产品都非常的专业,会画出非常详细的业务流程,把用户的使用场景一步步的列出来,比如说正常的流程是这样子的,异常的会是什么样子,规划得非常的详细,然后研发就看就懂了,这东西就开发成这样子。业务员也觉得很详细,有参考的意义,而且看完之后不需要弄太多,所以他们的产品经理都是有非常高的权限。

接下来看一下用户场景,我们流程图出来之后就会搞一些用户故事出来,总结一些用户故事出来,用户故事就是用户的使用场景,在这个使用场景上我们去分解我们的研发任务,比如说在持续交付的流水线有哪些的使用场景,比如说第一个创建流水线,第二个维护流水线,第三个使用流水线,用户会有这三个基本的场景使用,在这个场景里可能会分解出哪些的使用场景和研发任务,我们用小卡片的方式把它列出来。

这就是我们的流水线的业务流程图,比较模糊,大家可以参考一下,这个是我们的需求流水线F056,持续交付流水线是F056,原型图是怎么样的,然后就用需求文档。

这个需求文档包含了流程图还有原型,分解完之后CTO就可以简单看一下这个功能的研发任务有多少个,这里有一些统计在里面,每天他可以看一下统计,可以根据持续交付流水线开发的进度,这是我们一些项目进度的分析,交付流水线基本上就是这样子。

接下来讲一下交付流水线里面测试是怎么做的,其实在整个持续交付流水线里面,测试是最重要的环节,在我们的EasyOps 平面,刚开始也想做单元测试、代码覆盖率这些,后面想一些这些直接体现价值的没有接口测试高。

因为在现代应用研发里,比如说它是很多微服务架构,那些服务组建接口就是它最基本的功能,只要这个接口功能响应是正常的,内部大部分的逻辑都是OK的,所以大部分的团队都非常希望写接口测试,比如说关注小写的单元测试,这个现阶段可以补上,但是现阶段马上要完成就是我们的接口测试,保证在开发过程中每一个接口都是OK的。

六、QA、Not QC!

我们EasyOps 接口测试怎么做的?我们的接口测试首先也是基于robolframe work封装,这个接口测试是全自动的,据说不需要人工干预,这个研发不需要谁接口测试用例,它是怎么做到的?

首先,它基于robolframework的封装这里会使用一些robolframe work,只要你按照这个规范去写接口,这上面是一个接口,按照那个格式来写接口注释,把这个参数写好,robolframe work的一些关键字写好,它就能够自动的把这东西生成出来,比如说它会生成这样子的,两个接口测试库就出来了。

这样只是一个库,因为它是通过代码接口生成的,通过注释生成的,没有维护测试用例的数据在里面,所以测试用例的数据是我们的研发自己维护的,比如说这个测试库上面支持测试数据,这些测试数据也是作为代码的一环回到代码库里面去的。

这里还有在开发过程里不断的迭代我们的代码,不断的做自动化的接口测试,自动化的接口测试质量也是可以去看的,比如说现在CMDB这个项目特性接口测试用例大概有多少个?它的成功率、覆盖率是怎么样的?这里有两个衡量接口的东西,第一个是你的覆盖率,第二个是你的成功率,覆盖率是什么意思?这个项目已经覆盖满了没有,接口就全部写入那个接口测试里去。

这是覆盖率。另外一个是成功率,我不断的提交我的代码,在每一次提交代码的时候他就会刷一下这个自动化测试的面板,把这一次提交他的覆盖率和成功率算出来展示给大家看。这个面板是挂在我们公司大屏上去的,所以CTO就坐在前面每天监控看的,然后他看到哪个项目说,为什么你这个成功率失败这么多?因为我们提交代码是用企业微信通知的,每一次都会发出来,或者看这个面板就知道了。

这里简单总结一下,我们的注释通过我们对robolframe work自动化的生成一个测试库,然后我们自定义我们的测试资源,测试资源就是我们的测试数据,这里有一个规范,测试库加我的测试资源就会形成一个测试用例,在这个逻辑里我们的研发只需要把注释写好,剩下来不需要关心,结果都是自动化生成的。

为什么说在EasyOps内部,测试是QA不是QC,这里重点讲一下,我们没有测试组,只有质量控制组,质量控制组的工作就是需求文档出来了,现在产品让研发和质量控制组的同学一起去开需求评审会。

需求评审会之后研发就自己分解自己的分解任务,测试去做测试用例的编写,所以他会提前参与到设计里,当需求文档一旦明确了,测试用例就可以开始了,完全不需要等研发了。随着需求在研发过程中有细微调整的话,最终开发完成之后,UI用例会被重新审查一遍,已确保和需求完全吻合。

还有一个接口测试和UI测试有成本上的考虑,我可以告诉大家整个版本所有项目的任务,一个项目资源项目大概有30多个组件,跑完所有的接口测试大概需要10分钟-15分钟左右,这里跑完所有的UI测试需要40多分钟,所以一般UI测试很少跑,只能在一个地方跑,只会在什么地方跑?

就是说你会做一个测试工程,这就是平时我们经常说的测试工程为什么会去做,我们在本地经常跑组件接口测试,基本上一分钟内跑完非常快,所以在本地开发的时候不断去跑这些接口测试保证功能是OK的。

但是UI测试在打版本的时候,比如说这个版本包含了几个特性在里面,比如说回滚的特性,持续交付流水线的特性,还有版本类型的特性都包含在里面了,所以会做比较严谨整个系统的测试。

这里有一个QA组还要提一个规范,就是我们的研发就是维护测试用例数据,但是没有规范,比如说一般的研发只会显示两个,一个是OK的,一个是失败就搞定了。

但是质量控制会规范整个开发过程,比如说这组测试要写的数据至少符合哪些场景,哪些场景这个接口必须要,接口用例数据都补充完,不然这个就是不通过的。我算一下,多少个接口?接口用例是多少个?一算我就知道你这个完不完整,这就是质量控制在定这个规范,要研发去遵守,这就是质量控制组平时工作的一环。

有一个工作就是这个东西,所以大家看到质量控制和测试人员不一样的,质量控制是做规范,定规范,然后去控制整个生产过程的质量,但是测试人员只是这个产品出来我做一下校验是可以OK而已,起码要承担更多的东西,之前我看到老王发一张图,说工程图里面薪水最高的是哪些工程师,就是说QA人员的工资是最高的,比研发还高。

七、总 结

最后总结一下EasyOps 的实践,其实我们做更多的事情,现在没有时间做,比如说我们提交之前就做静态扫描、单元测试、代码覆盖率这些,后面也是可以提升一下我们的质量,但是现在是重要不紧急。

还有一个代码审核平台,比如说回滚功能完成后,我就直接合并到上面,没有人审核,这个东西风险也是有的,到后面可能会有代码审查,当你的功能完成之后,我们有跟开发分支部的人审查一下这个代码是不是OK的,然后才把它合并到分支上面去,因为一定要保证它是否稳定可靠才行。

第二个是用例数据的规范,QA组会定这个规则,所有的接口测试都要去覆盖。我们这边也要支持docker ,可能后面的组建会容器化,就算我们创建一个环境,功能测试环境怎么快都要10分钟,它是一个完整独立可以运行的环境。

如果用容器这方面可能会提高一点,但是在创建环境的需求平时不是很频繁,10分钟还是能接受的,因为你只是创建一下环境而已。还有降低生产维护的成本,我们现在微服务的架构上组建比较多,虽然用微服务来去做动态的变化调整,对于客户来说还是组建太多了,后面通过容器来降低生产维护的成本。

我来总结一下DevOps 基本的理念,我认为DevOps 是一种文化的精神,它是一种组织工作的方式,也是持续不断的进步,不是说一下子就能完成整个能力链条,而是慢慢在DevOps 迭代过程里慢慢把这些能力给补上来,比如说我们的自动化UI测试,自动化的接口测试,还有流水线的接入等等这些方式,后面慢慢的补上来,刚开始也是什么都没有的。

以上就是我今天分享的内容,谢谢大家!

共收到 2 条回复
5733 1506307741

good

96
mm0089 · #2 ·

臺灣約妹找妓女做愛打炮賴mm0089 堅持讓你花得值得 讓你一次就滿意
薇薇外送茶優質正妹網站:http://www.kiss69lg.com/forum.php?forumlist=1&mobile=2
堅持讓你花得值得 讓你一次就滿意
保證咩咩 熟練多變的技巧 讓你三度回味
堅持誠信經營 絕不會說的天花亂墬 浪費彼此寶貴的時間
精心安排 保證約好的時間 20分鐘內火速到達
絕無強迫消費‧購買點數‧匯款‧ATM轉帳‧都是見到本人 滿意在消費
優咩咩都是經過篩選 絕無地雷 請放心光臨體驗享受
㊣平價錢又安心 熟客 新客都享有優惠
薇薇茶坊營業時間:中午12點-凌晨四點

外送地區:臺北新北林口龜山新竹臺中彰化南投高雄臺南
妹妹類型:學生 OL 巨乳 蘿莉 人妻 技術茶 空姐小模 AV女優 婚紗助理等
服務內容:全套服務
約妹流程:賴上先預約然後準時給房號在房間等妹到
約會地點:你自己選擇的旅館or熟客可送住家
消費方式:看到妹喜歡在當場現金交易 不喜歡可換三次

北部:一節6000內立減500送1000優惠券
一節7000 -8000第二節半價 買三節送一節
一節9000-10000 立減1000-2000送2次半價
一節11000-15000 立減3000-5000送3次半價
一節15000-30000 立減5000-8000 送一年半價

中南部:一節4000-5000 二節半價
一節6000-7000 買兩節送一節
一節7000-10000 買兩節送兩節
一節11000-15000 立減3000-5000送2次半價
一節15000-30000立減5000-8000送一年半價
約小姐部落格看照網址:https://www.cssanyu.org/bbs2/forum.php?mod=viewthread&tid=333726&extra=
約小姐部落格看照https://www.photostore.me/mm0089/?list=images&sort=date_desc&page=4&seek=ursjV
雙北桃園林口龜山新竹看照約妹網址:http://www.kiss69lg.com/forum.php?mod=forumdisplay&fid=143
臺中彰化南投看照約妹網址:http://www.kiss69lg.com/forum.php?mod=forumdisplay&fid=145
高雄臺南看照約妹網址:http://www.kiss69lg.com/forum.php?mod=forumdisplay&fid=147
安全旅館便宜經濟實惠旅館推薦:http://www.kiss69lg.com/forum.php?mod=forumdisplay&fid=182
色情圖片露點照片網址:http://www.kiss69lg.com/forum.php?mod=forumdisplay&fid=177
成人小說網址http://www.kiss69lg.com/forum.php?mod=forumdisplay&fid=163
台中台北外送茶莊、茶坊推薦|優質台北、高雄外約茶妹任你選南投外送茶/全套叫小姐彰化外送茶
草屯外送茶大台中外送茶,外約美女,薇薇外送茶賴mm0089外約服務網,台中一夜情 .台灣出差旅館叫小姐line:mm0089
台北外送茶/台中外送茶/高雄外送茶/台南外送茶/新竹外送茶/彰化外送茶/南投外送茶/薇薇外送茶賴mm0089大台灣台北台中高雄台南新竹地區喝茶服務外送茶薇薇外送茶賴mm0089/鼓山區看照約妹薇薇外送茶賴mm0089前鎮區美腿茶/三民區火辣茶/新興區惹火嫵媚茶/左營區MT外送... 外送/台北清涼茶莊/更多優質妹妹/台北外送茶莊/高雄外送茶/新竹外送茶/洗澡/愛愛薇薇外送茶賴mm0089/口交旅館酒店外送小姐/上門服務/薇薇外送茶賴mm0089茶魚分享/大台北外送茶坊/大台中外送茶坊/高雄外送茶/援交妹網站台灣叫小姐俱樂部,薇薇外送茶賴mm0089台北叫小姐,薇薇外送茶賴mm0089西門町外送服務 板橋外送茶高雄約妹外約茶莊薇薇外送茶賴mm0089/夜市附近叫小姐,85大樓叫小姐 高雄叫小姐按摩外送茶西?町找小姐薇薇外送茶賴mm0089林森北找茶喝/台北?正妹/台?援交找薇薇外送茶賴mm0089台北叫小姐台中旅館叫小姐高雄旅遊找妹兼職美女茶外送看照約妹好茶外送到家西?町找小姐|林森北找茶喝/台北?正妹/台?援交找薇薇外送茶賴mm0089
#台灣汽車旅館找小姐 #商旅找小姐薇薇外送茶賴mm0089 #星級酒店找小姐
#旅館找小姐 #商旅找小姐薇薇外送茶賴mm0089 #星級酒店找小姐 #旅館找小姐
#飯店找小姐 #住家找小姐薇薇外送茶賴mm0089 #賓館找小姐 #台灣出差旅遊外約 #台灣出差旅遊找小姐
#酒店外約叫茶 #台灣汽車旅館外約叫茶 薇薇外送茶賴mm0089#商旅外約叫茶 #星級酒店外約叫茶 #旅館外約叫茶 #飯店外約叫茶
#住家外約叫茶 #賓館外約叫茶 #台灣出差旅遊外約叫茶 薇薇外送茶賴mm0089#台灣出差旅遊外約叫茶 +薇薇外送茶賴mm0089#
台中外送茶 #台北外送茶 #新竹外送茶薇薇外送茶賴mm0089 #高雄外送茶 #台南外送茶 #彰化外送茶 #南投外送茶 #台中外約
#台北外約 #高雄外約薇薇外送茶賴mm0089 #新竹外約 #台南外約 #彰化外約 #南投外約 #台灣外送茶 #外送茶 #情愛全台外送茶看照約妹叫小姐
#外送茶不戴套 +薇薇外送茶賴mm0089#板橋外約 #三重外約 #永和外約 #中和外約 #汐止外約 #新莊外約 #土城外約
#新店外約 #蘆洲外約 #五股外約 #泰山外約 #淡水外約薇薇外送茶賴mm0089 #八里外約 #林口外約 #龜山外約 #台中外約 #高雄外約
#台北外約薇薇外送茶賴mm0089 #本土外約 #外約台妹 #中正外約 #大同外約 #松山外約+薇薇外送茶賴mm0089 #板橋外送茶 #板橋外約
#大安外約 #萬華外約 #信義外約薇薇外送茶賴mm0089 #士林外約 #北投外約 #內湖外約 #南港外約 #文山外約 #新竹外約 #台南外約
#西屯外約 #南屯外約 薇薇外送茶賴mm0089#北屯外約 #逢甲外約 #大里外約 #大雅外約 #七其外約 #東海外約 #烏日外約 #太平外約
#豐原外約薇薇外送茶賴mm0089 #沙鹿外約 薇薇外送茶賴mm0089#逢甲茶莊 #逢甲全套
#薇薇外送茶賴mm0089逢甲外約 #逢甲外送茶 #逢甲叫小姐 #逢甲打砲 屏東汽車旅館叫小姐.薇薇外送茶賴mm0089屏東找茶,屏東外送舒壓按摩.屏東護膚全套外約.屏東找妹薇薇外送茶賴mm0089.屏東找小姐.屏東汽車旅館叫妹妹服務薇薇外送茶賴mm0089.屏東叫小姐.妹妹服務找歡樂.薇薇外送茶賴mm0089屏東優質外送茶莊.屏東出差旅遊約妹 .薇薇外送茶賴mm0089屏東正妹論壇.屏東約情人.薇薇外送茶賴mm0089屏東找女人兼職妹.推薦屏東茶莊##屏東外約妹妹價位#屏東找小姐.薇薇外送茶賴mm0089屏東全套外送.屏東辣妹薇薇外送茶賴mm0089.屏東找學生妹.人妻
#逢甲茶訊 #逢甲援交 #逢甲找女人薇薇外送茶賴mm0089 #逢甲魚訊 #逢甲炮神器 #逢甲紓壓 #逢甲性愛服務 #逢甲鐘點情人 #
太平全套 #薇薇外送茶賴mm0089大里全套 #沙鹿全套 #豐原全套 #大雅全套 #烏日全套薇薇外送茶賴mm0089 #台中車站應召 #台中南屯約妹
#台中西屯叫小姐 #台中逢甲外送 #台中勤美約妹薇薇外送茶賴mm0089 #台中車站叫小姐 #台中北屯應召 #台中南屯叫雞 #台中車站叫妹
#台中北區叫小姐薇薇外送茶賴mm0089 #台中應召 #台中車站叫雞 #台中車站茶莊 #台中西屯外送薇薇外送茶賴mm0089 #台中逢甲約砲 #台中北屯叫妹 #台中市區應召桃園半套店薇薇外送茶賴mm0089 ,#桃園半套價錢 #桃園找援,#桃園聯天室找援,#桃園西門找援桃園半套店薇薇外送茶賴mm0089 ,#桃園半套價錢 台中一夜情,台中??,台中全套基隆叫小姐電話 #基隆叫小姐 #基隆飯店叫小姐 #基隆旅館叫小姐薇薇外送茶賴mm0089 #基隆找女人 #基隆找妹 #基隆出差叫小姐 #基隆打炮薇薇外送茶賴mm0089 #基隆看照約妹#桃園茶莊心得,#桃園茶莊ptt,#桃園桑拿薇薇外送茶賴mm0089 ,#桃園桑拿浴,#桃園桑拿網
#桃園桑拿論壇薇薇外送茶賴mm0089 ,#桃園桑拿澳門,#桃園桑拿168,#桃園半套店薇薇外送茶賴mm0089 ,#桃園半套價錢
台北外送茶/高雄鐘點情人外約,台北旅館叫小姐,台北鐘點情人,台灣一夜情,高雄一夜情,台中一夜情,台北一夜情,台北美女外約,台中美女外約,高雄美女外約,高雄茶莊,台中茶莊,台北茶莊,台北叫小姐,台中叫小姐,高雄叫小姐,高雄外約/外約/援交妹,吃魚喝茶論壇,大家來找茶,PLUS,伊利,微克成人網/女優GoGoGo/淘A片/一刀未剪/免費成人影音薇薇外送茶賴mm0089 /交換網站/交友網站/性愛成人網/一葉晴成人貼片/成人極品情色站/癡漢線上免費A片/台灣明星淫片流出露比線上免費A片/伊莉成人論壇/◆免費線上A片◆/寶貝一夜情聊天室/免費A片頻道/無名成人網/成人網/台北情色聯盟/天天幹貼圖/洪爺色情網/台灣噴精成人網/十八小妹自拍美少女自拍貼圖老婆自拍貼圖/色色女孩情色總站/A圖情色交流/666人氣貼圖/插插穴排行/69Kiss電影排行/薇薇外送茶賴mm0089 彩虹頻道/后宮電影院/中文搜性網/酷站排行入口/上我人妻/成人龍虎豹/干爹情色排行/十七歲少女/台灣1歲/104寫真銀行/插插穴排行/熱酷美眉網/台灣性樂園/只有貼圖/波波美女網/交換連結eyny,玩美情人,男人幫,高雄女外約,高雄外送,高雄賓館叫小姐,高雄飯店叫小姐,高雄鐘點情人外約,台北旅館叫小姐,彰化外送茶,台灣兼職美女外送,薇薇外送茶賴mm0089 台北兼職美女外約,台中外送茶坊,高雄外送茶坊,台北外送茶坊陸妹價格,檳榔西施清涼秀,台功援學生兼差 msn,援交妹,24h 台北私兼,CLUB,台南指壓 3k,高雄酒店經紀,台中學生兼差msn,台北 夜店 舞廳 酒吧 制服便服,中年夫妻聯誼,高雄媛交,台南茶妹,台北指油壓留言板,情趣精品,大台南一夜情人外約\俱樂部,台北賓館叫小姐,高雄原味貼身衣物買賣,夢時代購物中心,台北推拿中醫,0204一夜崤◆隆f聊天室,熟女圖,討論區,台南喝茶的店哪好,網路購物,台中理容按摩,台南陪唱,台北下\午茶 blog,高雄 砲友,台中好茶討論區,高雄茶店news,高雄按摩個人工作室,旅遊,台南24h台南24h餐廳,台北茶訊交流msn,卡債,台中旅館外叫服務,台中 spa油壓男按摩小姐服務/漁會玩美情人遊戲成人論壇 台北吃魚喝茶留言板外送/台北一夜情重點情/台北旅館飯店找服務叫小姐/找女人全套服務加按摩指油壓成人夜遊魚訊交流論壇區/台北應召站/伊莉喝茶/第一手論壇/外約愛愛/外約電話/外約高檔茶到府服務/伊莉plus28/成人性愛慾茶園 性交易/正妹外送服務/找茶論壇薇薇外送茶賴mm0089 /找茶討論區/台灣外送GTO/台灣樂緣外送茶/兩性論妹板橋外送酒店 北投泡溫泉三溫暖趙小姐/援交妹網站論壇/FB交友網站/UT天室交友一夜情炮友/台北喝茶買三送一接多買多送純情動感兼職妹/華僑台北旅遊出差消伴遊找女人茶/薇薇外送茶賴mm0089 極品俱樂部嚴選絕色經典,第一手娛樂論壇/卡提諾/玩美情人/吃魚喝茶網 薇薇外送茶賴mm0089 伊漁網/Plus論壇/台灣樂緣/小女人論壇/台灣論壇/微風論壇/伊莉論壇/禁地論壇/維克斯論壇/捷克論/男人幫論壇/大眾論壇/竹北旅館飯店找女人按摩舒壓叫小姐3p服務 愛情公寓論壇 交友/ 愛情/戀愛/貓都論壇/賽斯論壇/104論壇/九州娛樂論壇/櫻雪論壇/2B級/台灣、送茶坊台北外送茶坊,台中外送茶,高雄外送茶,美女外約服務/台中/高雄/新竹/彰化/莊極品俱樂部嚴選絕色經典,成人性愛慾茶園,找茶討論區,催情藥,唯美貼圖,成人論壇,網絡報稅,線上遊戲,高檔平價好茶,淫照聊天是尋夢園美女外送,情趣用品八大行業指油壓全套,暑假打工,網站設計,中國合夥人,鋼鐵俠3,HTC,蝴蝶機,變裝遊戲,茶,motel,hotel,性感絲襪,A片下載,AV女優,第一手論壇,貓都,卡提諾,喝茶,完美情人,BJ論壇,小女人論壇,卡提諾論壇,台灣論壇三溫暖中陪酒ktv,台北全套護膚個人工作室,尋找台南援交auty 美容美體 SPA沙龍,台北外約茶棧,台中越南餐廳,台南應召站,台北外送 3k,高雄下午茶外,台中三溫暖全套,台南全套油壓泰國,台南半套店1600元,高雄推拿指壓,小姐,台北夜生活 pub,台北單身聯誼,兼差,台北交換伴侶,台北一夜情,高雄聊天網,高雄美女兼職,台南車站美食,8000mile,台北一夜情緣俱樂部,高雄應徵\酒店酒店上班,高雄成人視訊聊天室,台南兼職找利菁,高雄24h到府指油壓,女兼職,酒店兼職\,壽山,台南茶訊茶資薇薇外送茶賴mm0089 ,台南陪酒小姐,高雄絲襪美腿高跟鞋,夫妻聯誼部落格,薇薇外送茶賴mm0089 台南小野貓檳榔西施外送時被下藥拍照,自拍女老師,找台中援妹地點,台北大陸妹價格,檳榔西施清涼秀,台功援學生兼差 msn,援交妹,24h 台北私兼,CLUB,台南指壓 3k,高雄酒店經紀,台中學生兼差msn,台北 夜店 舞廳 酒吧 制服便服,中年夫妻聯誼,高雄媛交,台南茶妹,台北指油壓留言板,情趣精品,大台南一夜情人外約\俱樂部,台北賓館叫小姐,高雄原味貼身衣物買賣,夢時代購物中心,台北推拿中醫,0204一夜崤◆隆f聊天室,熟女圖,討論區,台南喝茶的店哪好,網福祿猴林千又 吳宗憲 2015 黑豹旗 王大陸 徐太宇 登革熱 波多野結衣 金鐘獎 蔡英文 洪秀柱 蛇精男 靈異 鬼故事 柯文哲 柯P 大家來說鬼 綜藝玩很大 時尚脈動 賈靜雯 陳佩琪 氣象 反課綱 2015星光大賞 宅男女神 愛爾麗 泛舟哥 張吉吟 ET看電影 八仙 塵爆 楊子晴 范冰冰 安心亞 陳泱瑾 Grace ISIS 林書豪

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up