查看原文
其他

如何做一个靠谱的技术运营人

taydai 腾讯技术 2022-11-05

本文作者:taydai,腾讯PCG技术运营服务中心副总监

过往十多年互联网产品形态和技术需求在巨变,从PC互联到移动互联和产业互联,基础技术和平台从物理机到容器化、云化;网络从2G到5G;产品的数据量级从百亿级/天到万亿级/天。

但不论发展如何变化,技术运营提供的服务其实本质不会变,从还是需要保证产品极致的用户体验和降本增效,根据产品的生命周期来提炼服务模型:


本文会按质量、效率、成本、安全,结合实际案例论述靠谱运维的原则与方法:

一、质量、效率

原则1: 服务健壮性需依从程序架构容灾调度(全网调度)原则,以最终服务能力构建考量体系。

举个案例:

10年负责taf平台运维时,主导过基于场景细化TAF框架下调度策略和机制。在询问开发时,开发答复是运维不用关心这个,其实开发本身对主控的更新策略、client和server容错轮训策略也不能完整说明,最后查看代码,整理出taf框架的容错保护机制,并演习验证。

当时整理的taf框架调度策略如下:

1) server状态变化,registry会立即更新至数据库,并且registery会每60s异步跟数据库更新信息

2) client采用随机轮训和hash轮训调用server,失败连续超过10次,500次内失败率高90%则屏蔽掉server,屏蔽后并且每10s尝试一次探测是否恢复

3) 服务会定时上报心跳给node,如果未上报则认为服务僵死重启,后每10分钟尝试一次。

详情如下图:

向前一步,16年开始运维逐步接手地图运维工作,当时服务使用自身框架因为同步调用和容错策略健壮性不够等问题,出现了四次事故。运维侧推进业务侧架构改造使用MIG标准的TAF框架和Dache,在架构评审时,技术VP曾老师说过一段话一直记忆犹新:

不管业务使用什么框架,程序架构设计的五点原则是要遵守的:

1)不出现写死调用方式的架构设计。

2)需要有主控实时感知框架节点的运营状态,并且能及时剔除异常节点。

3)基于资源容量、服务状态,可动态伸缩调度

4)尽量使用异步调用少用同步调用。 

5)框架支持多语言异构能力。

更进一步,遵从上述原则,梳理出MIG(12-18年)当时,整体业务架构能力演进以及容灾能力状况如下:


原则2: 通过SLO的设定,端到端基于业务场景保保障业务质量,并且结合故障预防、故障管理体系化保障质量。

机制、工具、数据分析结合实现:

1、树立SLO为重要标准与口径:推广SLO:由SLO与错误预算自动生成工单(高级别工单),由故障复盘补齐SLO,形成闭环的螺旋式提升。高级别监控告警同理,但需注意监控项与SLO重合度问题,若重合,建议以核心SLO为口径

2、明确级别的标准与整个后续流程:工单背后一定由人来处理。需要避免建单不准确,避免类型不明确,避免分类太复杂。为此,明确、准确、简单、标准化的工单级别与分类至关重要。让接入方follow此标准,而非实现各种个性化需求。

3、明确事中处理机制:机制制定:明确制定事中处理流程,包括升级机制与通告机制,进行Oncall人员培训,以及如何使用。人的引导:明确Oncall人员不是一个人在战斗,明确授予Oncall同学的升级权限,并建立易用的升级与通告功能,是降低Oncall人员压力,缩短MTTR的有效手段。

4、明确事后复盘机制:

机制制定:明确复盘不只进行单一case的措施跟进,针对非自动化的故障来源,同样作为待跟进措施,提升SLO与监控的覆盖,是体系形成闭环的重要部分。由此提升MTTI(故障发现时间),如初始定义的SLO是后端服务入口的指标,无法覆盖域名劫持或代理层故障,是否进行改造排期。

人的引导:定期进行故障复盘会,将覆盖度提升作为非常重要的一环;优秀的故障复盘进行宣导与奖励机制,建立对事不对人的理念,让更多人愿意参与到体系的建设中。

5、明确故障管理体系建设路径:根据Google经验以及ticket现状分析,SLO与故障管理的相互促进是中长期工作,在规则上先紧后松,在建设路径上先查准率后召回率。此策略的制定会影响体系参与者的积极度。

6、数据分析:全流程埋点,进行有价值的数据分析,反哺业务决策、体系闭环;MTTR;运营看板:管理侧运营数据;业务看板:业务侧日/周/天级聚合分析与明细;故障看板:故障数据分析。


原则3: 质量需以用户和价值导向,以最终用户的满意程度和产品价值来构建考量指标体系。

举个案例:

应用宝起初下载成功率只有90%左右,除了单纯解决下载劫持场景和提升下载功率外,需要从从下载到安装到用户激活整条链路来考量。技术手段、产品策略需要完整结合,才能给用户和产品最大价值。

向前一步,18年会对MIG核心产品的用户体验质量的目标始终以用户体验的结合和产品价值来进行考量。

更进一步,在用户体验度量指标确定后,如何实时分析决策就是另一项关键路径。通常会遇到三个问题:

1)数据通过终端上报上报的实时性、清理和计算的实时性。

2)指标多(16年浏览器在做用户体验指标是质量指标超过100个)、纬度多(用户归属、产品版本、功能细项纬度几十个),阈值随产品特性变化多,靠人工分析效率极低。

3)端到端调用分析决策链条长。

相应解法:

1)计算实时性保障:通过客户端和SDK实时可配置抽样上报,基于消息队列,通过程序实时进行数据清洗,存放至时间序列服务中,进行实时计算

2)实时计算特征模型训练(包括周期、非周期、波动、锯齿)结合调用链、基础环境、线上变更,进行收敛决策收敛

3)再补充一点AI in all但不是all in AI,业务的策略场景作为技术运营工程师必须清楚,机器学习只是一种工具和手段

更进一步,在终端发布质量度量魔镜体系构建工作,整体方案如下:


二、成本、效率

原则1: 成本生命周期在预算、预测、交付、运营、核算、服务下线回退,各方职责明确,并且各环节通过工具资源自动化交付,有明确的效率度量,找到短板,循环提升。

  
对于业务场景、架构、应用组件的深入理解,找到合理资源和架构方案支持产品快速发展是运维提升自身技术能力和价值体现的关键路径之一。
举个案例:
QQ看点业务,21年全年优化成本20%以上,整体上做法:
1)成本分析覆盖QQ看点相关所有的规划产品和中心,包含信息流、搜索、直播等不同的产品形态。
2)运营成本按中心核算,包产到户责任到人,让成本优化有章可循,在各个计费系统推进优化和完善。
3)业务自身架构和策略优化,结合中台技术提效,也推动中台和平台进行成本优化。包括带宽的专项优化、利用云平台弹性能力的利用率提升、以及架构整合收敛。
4) 引入单位成本模型,对比行业,按功能细化找到优化空间。
更进一步:面对新的数据驱动的业务架构,理解数据架构和计算原理,建立数据资源模型和管控机制,是业务运维下一个非常明确的发力方向,能看得到的事情:
1)深度结合业务当前的场景进一步加深对当前的数据架构和数据应用的理解。
2)计算平台特性、资源种类、应用场景三个方面形成有效的知识积累和模型积累
3)主动参与到数据计算、机器学习等的技术调优

原则2: 容量从管理到规划,保障业务有足够的容量和冗余度去服务预测中的未来需求。一个业务的容量规划,既包括自然增长容量,也需要包括一些非自然增长的因素(新功能、新产品发布、运营推广等因素)的快速支持。
(此处原则参考SRE)容量规划的三个步骤是必需的:
1)必须有一个准确的自然增长需求预测模型,需求预测的时间要超过资源获取的时间。
2)必须有周期性压力测试,以便准确地将系统原始资源信息与业务容量对应。
3)规划中必须有明确的非自然增长的需求收集和形成规划的策略。

三、安全
原则1: 安全是底线。常规管控有漏洞快速解决是基础。通用方案的快速彻底推进,研发控制漏洞减少,外部风险提前感知,内部系统防渗漏能力提升,是主动应对的关键。

原则2: 构建全链路立体化的安全监控防御能力。


总结:
以上是tay个人经历中觉得有意思值得反思总结的点滴,再把基于此提炼的如何成为一个靠谱的业务运维的部分原则总结如下:
一、质量、效率
原则1:服务健壮性需依从程序架构容灾调度(全网调度)原则,以最终服务能力构建考量体系。
原则2:   通过SLO的设定,端到端基于业务场景保障业务质量,并且结合故障预防、故障管理体系化保障质量。
原则3:质量需以用户和价值导向,以最终用户的满意程度和产品价值来构建考量指标体系。
二、成本、效率
原则1:成本生命周期在预算、预测、交付、运营、核算、服务下线回退,需要有产品、平台、中台,职责明确,并且各环节通过工具资源自动化交付,有明确的效率度量,找到短板,循环提升。
原则2:容量从管理到规划,保障业务有足够的容量和冗余度去服务预测中的未来需求。一个业务的容量规划,既包括自然增长容量,也需要包括一些非自然增长的因素(新功能、新产品发布、运营推广等因素)的快速支持。
三、安全
原则1:  安全是底线。常规管控有漏洞快速解决是基础。通用方案的快速彻底推进,研发控制漏洞减少,外部风险提前感知,内部系统防渗漏能力提升,是主动应对的关键。
原则2:  构建全链路立体化的安全监控防御能力。

最后引用达里奥在《原则》里的观点,也希望能在以后的日子里随着变化不断充实技术运营的原则。
“随着你对事物的理解不断加深,你就能看到隐藏在扑面而来的复杂事物中的实质。你将明白你面对的事物属于哪种类型,并自然而然地运用正确的原则帮助自己渡过难关。接着,现实会向你发出强烈的信号,或者回报你或者惩罚你,以体现你的原则的运用效果,这样你就能学着相应地调整这些原则。所以我们能不能妥善应对我们遇到的现实,最重要的决定因素是有没有良好的应对原则。”

#有料程序员 直播#

对谈95后复旦博士:

爱数学,也爱戏剧,做自己喜欢的事最浪漫

点击预约,get开播提醒

往期回顾:
做了14年开发,如何保持代码优雅?
程序员在哪些场景写过代码 
如果有机会,你会选择脱产学习深造吗?
“做程序员这事儿吧,可以吹一辈子!” 
成为技术大牛,只能靠天赋吗?

点个关注,我们下期再见👋

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存