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 产品研发流程,就是需求变成一个产品之后会有一个功能的时候,它的流程是怎么样的,一般分成这几个阶段,先是需求和概念提出,比如说客户提出一个功能,见简单的,他提出一个功能说我要回滚功能,那回滚功能我们先提出这个概念会做需求讨论。