首席架构师李佐辉:浙江移动SRE转型实践
李佐辉
DBAplus社群(dbaplus)
读完需要
20分钟速读仅需 5 分钟
本文根据李佐辉老师在〖deeplus直播第221期〗线上分享演讲内容整理而成。(文末有获取本期PPT&回放的途径,不要错过)
李佐辉
浙江移动网管中心SRE首席架构师
浙江移动SRE团队发起人、高级工程师,通信网络工程师IT开发转型推动者。
毕业于浙江大学信电系,12年通信网络运维经验,深入理解通信网络IT需求。
一、背景:我们是网络运维工程师
我们维护的设备:厂家定制,专有软硬件的通信设备。
我们眼中的世界:路由、协议、网元、信令、局数据…
我们日常工作内容主要涉及以下三个方面:
但是,我们的人员素质较高,100%的工科背景,都具备基础的编程技能,大部分人对运维开发转型充满兴趣。
二、我们遇到了点小麻烦
随着通信技术的发展,网络运维的压力和责任越来越大。
与知名互联网公司对比,我们维手段较原始,大量工作处于人肉运维阶段;对标先进互联网公司,我们还有很长的路要走。
国企的人力成本存在红线,人力资源不足。即运维的设备越来越多,但是人不见多。2014到2019年,语音核心网元增加了80%,但是运维人员仅增加12%。
虽然支撑系统平台手段众多,但日常维护中仍存在大量的手工冗余操作。支撑平台开发周期长、开放性差,是两个较大的问题。
网络设备正在向IT云化演进,网络运维人亟需转变传统思维,向IT化思维靠拢。
复杂的云化架构有时发生故障根本无从查起,诡异的故障无法用科学解释。
无法用科学解释的时候,迷信就出现了。
三、浙江移动的SRE转型之路
在转型过程中,我们吸收了谷歌的SRE运维思想。SRE是Google对DevOps的实践总结。
SRE的终极目标:保证业务连续性。
SRE把运维问题变成了软件工程问题:
50%~60%软件工程师;
其他具备85%~99%软件技能,且具备一定程度其他IT技能的工程师。
SRE模型的优势:
运维人数相对少;
开发团队和运维团队的冲突焦点消除;
SRE团队和研发团队之间的成员可以自由流动。
•SRE模型的问题:符合SRE的人才难招聘
SRE与DevOps的关系:SRE理念是DevOps的具体表现形式。DevOps和SRE是道,DevOps工具是术。
SRE做的是运维自动化,但自动化不是目的。
自动化有3种形式:
外部自动化:即通过外部的工具和脚本,实现运维自动化功能。
内部自动化:即将开发的脚本和工具部署在系统内部,实现自动化
服务强化:在系统设计和开发阶段就考虑到运维手段,将运维自动化体系原生嵌入到系统中。
目前我们主要做外部自动化,冰箱内部自动化和服务强化迈进。
自动化后带来的好处:
高度的一致性:无论新手还是专家,作出的判断和操作完全一致
问题快速反应:发生故障快速反应
完成任务省时:完成报表取数、优化分析等任务省时省力
固化经验:将运维人员的经验和教训固化到代码中流传下去
SRE团队的目标:提倡主动运维思维,以运维开发为手段,依托SRE运维模式,提升运维人员ICT技能, 支撑各专业高效运维。
但是只有当团队目标与个人目标相一致时,团队才是可持续发展的。
让我们来看看SRE运维开发转型如何实现运维工程师们的个人目标:
1)建立组织架构
建立议事会负责制的半刚性组织架构制度:
议事会:负责组织架构设计、管理模式探索、人员IT转型等。
技术支持团队:负责技术演进、技术支持、人员技能培养、开发平台搭建和维护等。
工作小组:聚焦应用开发、服务开发和平台开放性探索。
2)建立OKR导向的正向激励制度
除了行政架构的激励外,还存在横向的SRE OKR激励。
3)探索人员分工
人员角色介绍:
Enbedded SRE:嵌入式SRE,活跃于运维团队中,主要实现自身的自动化需求,有日常负责运维的设备,需要参与on-call值班。我们大部分成员均属于此种类型。
Platform SRE:平台开发型的SRE,主要对平台负责,开发新平台或对存量平台进行开放性改造,以使其它SRE成员可以方便的在其上开发。无日常运维设备或on-call值班的要求。
Consulting SRE:顾问型SRE,技能较高的成员,平时负责为SRE其它成员答疑解惑,解决问题,或是参与到其它成员的具体项目中进行开发指导或牵头开发,项目进入正轨后即退出项目组。平时无运维设备或on-call值班的要求。
4)专注人员培养
技能培养:依托IT和CT能力培养体系,针对SRE人员、存量运维人员、新员工、协维人员制定不同的人员培养体系。
人员成长后评估:从5个方面,21个评分项对人员进行画像,完成人员的培养后评估。
5)完善日常工作框架
建立SRE日常工作框架,确定技术规范,避免技术债务。
6)搭建开发支撑平台
通过建平台、解耦合两部分工作来搭建SRE的开发支撑环境。
服务原子化,新增开发区,积木式开发,提升效率,降低开发难度。
平台开放化,依托平台进行功能增强,不需考虑底层和前端,大大降低难度。
四、阶段工作成果
团队经过2年多的建设已经初具成果,共培养SRE团队成员97人,完成开发需求200余个,具有如下的优势:
需求实现快:基于开放解耦的平台进行搭积木式二次开发,单个功能点开发平均仅需2个小时,需求到上线时间缩短551倍。
痛点切入准:运维专家转型开发人员,网络痛点了然于心。
人力大解放:机器换人,大量运维工作自动化,值班人员减少70%。
压力大释放:逐步接受与信任系统,具体的运维工作逐步转交给自动化系统完成,释放运维人员压力。
Q&A
Q1:请问如何说服领导组成sre团队的?毕竟是垂直管理的企业。
A:转型肯定是自上而下的,自下而上那叫革命,如果得不到领导的支持,那么转型肯定不会成功。随着通信网络技术的演进,语音、短信这类传统业务的收入大幅下降,后续的技术和人员架构会怎么样,我们之前也是迷茫的,不知道路在何方,但是通信网络IT化这个趋势是明确的,这个就需要我们去转型。
对于如何进行转型,领导层面的考虑肯定比我们多,而且更深入。这时我们了解到了Google的SRE理念,觉得很符合我们的诉求,就跟领导一拍即合,把这个作为我们转型的方向了。
Q2:请问贵公司的自动运维是自研的吗?用了哪些开源的技术或产品呢?
A:公司层面我不太好回答,但是在我们部门,大部分是的。我们使用了很多的开源技术和产品,比如Hadoop、Flink、Zabbix、Ansible、Jenkins等等。不过虽然使用了那么多开源的软件,但是我们还是非常注意开源软件的引入安全的。
Q3:如何让外购系统厂家帮忙解耦他们的系统?
A:之前外购系统都是一个一个独立的烟囱,我们有新的需求提给厂家实现都很慢,厂家不懂业务,我们不懂开发,需求沟通存在较大的成本,而且开发出来的功能往往与我们需要的相差甚大。这种情况下我们与厂家存在比较大的矛盾,我们说他们开发慢,难沟通,开发出来的东西不好用;他们说我们需求奇怪,需求变更太频繁,对完成时间点要求太高。
如果外购系统解耦之后呢,系统厂家只需要维护他们系统框架和开放出来的接口,一些业务功能由我们自己来开发实现,搭在他们的平台上,这样需求实现快,功能上可以完全满足我们的需求,而我们又省去了平台维护的工作,对平台厂家来说又不会受到频繁的需求变更单,也不需要去深入的了解我们的业务需求,对两方来说都省事多了,完全是双赢的局面。
我们把以上这些有利之处跟厂家说清楚,厂家都是比较愿意接受的,后面我们就把需要开放解耦的地方敲定,作为需求提给他们就可以了。
Q4:SRE日常工作里面,提到的需求归口管理,是指业务需求?
A:是的,对于我们来说,运维需要的功能就是我们的业务需求。
Q5:此外开发的开发规范,是约定到所有业务系统开发厂家的代码开发规范,一套标准么?还有API调用规范等,如何进行约束?因为涉及厂家非常多,管控难度非常大。
A:开发规范是针对我们SRE的,并不是针对业务系统开发厂家的。这是为了规范代码格式和代码行为,形成良好的代码风格,便于运维经验固话在代码中后的回溯。因为都是基于SRE团队的,也不存在厂家多管控难度大的问题了。
推荐阅读
回看本期直播,请点击阅读原文↓