自2016年,谷歌等先进实践引入中国以来,经常有学友们询问我们SRE和是什么样的关系,以及在具体实践中如何关联等问题。本次雅菲奥朗特别邀请业内知名SRE专家刘老师,对此热点问题进行逐一的分析和解答。
一、SRE 定义 & DevOps定义
DevOps是字面上Dev 开发和 Ops 运维两者组合。DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
SRE 全称是 Site Reliability Engineering,最早是由 Google 提出,并且在其工程实践中发扬光大。 Google出版了一本同名书籍《Site Reliability Engineering》,让这个理念在互联网工程师圈子里广泛传播。 SRE(站点可靠性工程)是一门结合软件工程的各个方面并将其应用于基础架构和运维问题的学科,于2003年左右在谷歌创建,并通过SRE相关书籍进行宣传。
二、SRE和DevOps “殊途同归”
SRE和DevOps同属开发运维一体化时代的产物,有交集很正常,他们是“殊途同归”。 SRE可以是运维向运维研发的拓展,这可以适用于国内广泛的运维部门转型,事实上DevOps或者说“开发运维一体化”在国内刚刚开始落地,很多组织上仅仅通过引入DevOps理念,仍然需要面对“生产环境天天出问题,就是不知道问题出在哪”等问题。
传统运维模式(Dev/Ops分离的团队模式)冲突的焦点:
● 战略层面:
1、直接成本相对清晰;
2、间接成本差异较大(背景、技术能力、工具习惯、工作目标);
初步演变为目标与方向上的分歧以及内部沟通严重问题,上升到部门之间的信任与尊重;
● 战术层面:传统研发团队和运维团队分歧的焦点主要在软件新版本、新配置的变更的发布速度上。
● 执行层面:
1、开发团队宣称不再进行大规模的程序更新,改为功能开关调整、增量更新和补丁化(大变更→小变更),为了绕开运维团队设立的各种流程,从而更快地上线新功能。
2、绕过运维团队设立的新服务/变更发布流程,新功能上线速度是加快了,但事件仍在重现,使得服务质量很差。
三、SRE是DevOps的最佳实践
SRE可以理解成Devops的具体实践。相比devops有更具体的工作或者角色定义。
1、主要思想如下:
事故是正常的/变更应该循序渐进/工具和文化是相互关联的/度量的
2、主要原则或者核心如下:
2.1 软件问题:用软工思想来解决运维领域的问题;
2.2 通过SLOs进行管理:产品团队和SRE团队为服务及其用户群选择适当的可用性目标,并将服务管理到该SLO;
2.3 减少琐事:甄别琐事的来源以便可以最小化这些工作甚至消除;
2.4自动化:决定什么条件下做什么自动化以及怎么自动化;
2.5与开发者共享:工件透明,信息共享,工具同步;
2.6 持续改进:快速试错,快速改进,更高效,更可靠,提高收益;
四、学友们问题合集
1、Googel模式是让运维和开发相互配合实现DevOps,现在很多公司让开发去做运维,哪种模式更加可取?
SRE和DevOps是有点差异的。DevOps是开发拥抱运维,开发人员需要学习运维的相关知识能够承担运维的工作。Googel的SRE是运维侧发起的,运维去拥抱开发,运维的人员需要具备一定的开发能力,并且Googel空降了一批开发人员去做SRE,是比较激进的变革。Googel在做了5~10年的时间后比较成功,现在将他们的SRE实践对外输出。
个人认为这两种方法是殊途同归,即运维开发一体化。采取哪种模式是从运维侧发起还是开发侧发起,更多要看企业的实际情况,包括企业的管理层CEO、CIO如何考虑。个人观点,如果企业资产系统较多,可能开发一下难以接盘运维的工作,这种情况从运维侧发起更加好,因为运维人员非常了解这些系统,只要具备了一定的开发能力,运维人员做运维开发一体化可能会更顺畅一些;如果企业存量资产较少/大量系统在研发过程中,这种情况从开发侧发起更好,开发人员更了解更熟悉系统,开发人员做运维开发一体化可能会更顺畅一些。
个人观点,选择哪种模式跟企业的存量资产多少有关系,否则就变成突变了。一般中国人讲改革是渐变,就是说在原有的基础之上进行改变。两种模式是殊途同归的,采用哪种模式具体看企业的实际情况以及管理层的选择,这是一个战略/战术问题没有对错之分,具体看企业的改革路线。
2、Google的SRE实践的怎么样?
实践的非常好,SRE已经基本变成了Google企业文化的一部分了,强调自动化、尽量减少人为重复操作、重视研发、运维一定要具备研发能力、敏捷式工作、不谴责、互相之间高效协同、目标导向,一定程度上塑造了Google的企业文化。Google已经将他们实践分享出来,由上百位专业专家编写出版了SRE:Google运维解密这本书,我们可以认为是非常成功的。
3、企业愿意培养还是外聘SRE?
说下我个人的实践情况,我所接触到的央企或者大集团的客户更愿意培养,因为外聘的话SRE岗位比较稀缺人员很难招,企业培养可以提供转岗/职业成长的机会,有些像很多年前SAP、人员,最开始的几年市场价位非常高,所谓的物以稀为贵。
五、SRE学习与成长
国际知名的DevOps Institute学院(DOI)推出的代表了这个领域的最新知识体系,该认证介绍了SRE的发展及其未来的方向,并为学员提供了SRE的最新理念、实践方法和日常工具,可以帮助现有的SRE团队将现有的SRE实践和国际理论标准结合,强化SRE实践能力。雅菲奥朗携手DevOps Institute推出SRE Foundation和SRE Practitioner认证培训,成为国内独家SRE全系列课程的授权培训和考试机构。