欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由织云平台团队 发表于云+社区专栏

前言

作为业务运维,你是否经常会碰到这样的问题:

  1. 新业务上线,开发同学会对服务做性能测试,但是换一种机型后的性能如何?服务版本更新后性能是否发生变化?

  2. 节假日即将到来,某个业务预估用户活跃度提升2倍,但假日结束后只上升了0.5倍,提前扩容的资源白白浪费,如何解决?不同活动影响不同服务模块集群,如何分析?

  3. 某个业务下挂靠的服务模块几百个,如何分析出核心模块和旁路模块?

  4. 多地分布的业务,如何规划?

带着这些问题,我们来看一下腾讯SNG运维是如何通过业务画像来解决的。

通过分析模块性能数据(CPU,内存,IO等)、路由关系(上下游访问关系)、抓包关系(更底层的访问关系)、活动指标(节假日和压测演习带来的下游模块增长)得出业务画像。

业务画像类型

业务画像包含了几个模型,用来解决上面的四个问题:

1. 容量模型:通过自动化压测不同配置,不同版本的TPS和其他性能瓶颈。发现异常,推动性能优化,数据

2. 活动模型:分析业务历史活动和关联模块的变化趋势,评估未来活动的变化趋势,解放人力,优化成本。

3. 链路核心视图:根据不同业务场景过滤出核心链路访问关系图,可用于告警收敛,根因分析,架构优化。

4. SET规划:业务条带化,多地分布,快速调度能力。

新业务上线,开发同学会对服务做性能测试,但是换一种机型后的性能如何?服务版本更新后性能是否发生变化?

容量画像:通过自动化压测系统,压测出服务在不同机型、不同版本的TPS阈值。通过阈值基准来自动化管理容量。基于TPS的容量管理相比传统的基于单机性能(CPU、内存等)的容量管理更精细。

举个很常见的例子,基于运维经验,单机CPU使用率超过80%时,我们会认为这台机器的负载很高,服务已经有超时的风险了,所以我们一般会在单机CPU使用率达到70%左右就开始扩容。

但是,实际上有很多服务在CPU使用率30%左右就已经出现大量超时,具体原因此文不细说。如果还是按传统的CPU使用率来评估,业务早已受影响。

TPS容量模型则很好的避免了这个问题,不同机型承载的TPS都有一个压测阈值,只需要评估当前模块下的TPS总量(服务框架自动上报),超过TPS阈值才触发扩容。扩容的设备量也是基于不同机型的TPS标准来自动评估。

支持自动上报TPS数据的标准服务框架我们使用TPS模型,剩余非标准框架,也可通过压测找出性能瓶颈,只是瓶颈指标从TPS变成了CPU/流量/或服务主被调次数。

节假日即将到来,某个业务预估用户活跃度提升2倍,但假日结束后只上升了0.5倍,提前扩容的资源白白浪费,如何解决?不同活动影响不同服务模块集群,如何分析?

活动画像:每个核心链路视图在每个活动周期内的容量增长幅度,都会被记录在活动模型内,用于评估后续活动的增长服务。

可以看到,某次活动带来的活跃用户数增长,不同模块的流量和CPU增长幅度都是不一样的。

活动模型会将每一次活动用户增长幅度和下游模块的流量、CPU、TPS增长幅度都保存下来用于支撑后续活动关联模块的容量评估。

介绍一个基于活动模型评估活动容量的基础模型:

活动关联模块,通过活动过程中产品指标和模块流量变化幅度分析得出

历史增长幅度:模块过去12个月活动对应产品指标的变化趋势

容量指标增长幅度:TPS、流量、CPU绝对使用核心数三个指标在活动期间的增长幅度。

CPU的评估专门提一下,容量增长幅度需要计算某个指标的绝对值,所以CPU的维度我们把CPU的使用率量化成了CPU绝对核心数。比如一个模块包含了N种机型,每种机型的CPU使用率都不一样,我们会这样算:

CPU_total_core=n∑1=A1_coreA1_CPU_average+...+An_coreAn_CPU_average

结合上述三个维度,可以预估出最近一次活动对应模块的容量增长幅度,容量托管后台可根据容量预估结果制定不同的扩缩容或调度方案。

每一次活动评估结束后,需要对比现网真实数据和评估结果。差异超过20%的模块会被要求做二次分析,增加更多高级维度优化评估模型。比如模块业务场景维度,某些离线场景,我们会单独打标,使用专门的算法进行评估。

*某个业务下挂靠的服务模块几百个,如何分析出核心模块和旁路模块?*

核心链路视图

业界流行的链路视图方案是google dapper模型。但是体量庞大的社平业务因为历史原因,短期内将所有业务都增加上报各种链路节点信息是不现实的。

于是我们采用另外一种方法来实现核心链路视图的绘制:根据路由、抓包、主被调关系梳理出接入->逻辑->存储三层的完整调用关系链路。结合不同的场景,在完整关系链的基础上根据服务主被调次数,出入包量等指标做进一步过滤。最终得出业务核心关系链。

未经处理过的业务链路视图看起来是这样的:

经过抓包数量、主被调次数过滤后的核心业务链路视图是这样的:

核心链路视图可以用于告警关联分析,根因分析,活动实时大盘视图等业务场景。

*多地分布的业务,如何规划?*

SET规划

对于一些要求高可用低延迟的业务就可以通过业务画像来实现业务多地分布了。

SET画像包含了:

  1. 可视化视图:业务核心链路

  2. 多地数据同步策略:这是SET画像的核心能力,对于多地分布的业务,难点就是如何实现多地数据一致。社交类业务形态主要是多读少些,我们使用单点写,多点读的策略规划多地分布架构。如图:所有的写请求都收归到深圳(因写入量相对少,跨地域访问的延时用户并无明显感知),深圳存储的数据通过同步中心同步到其他地域。所有的读请求都读本地存储。

  1. 可度量指标:核心业务指标(比如承载多少用户,上传多少张图片等)、达到对应指标时各模块的容量等维度。

拿空间业务举例:

业务目前主要分布在深圳、上海、天津三地,每个地域可以承载各1/3的用户接入,每个地域的SET容量维持在50%,当一地故障时,另外两地可以分别承载25%的用户。

根据核心链路内模块的不同功能分类,划分不同子功能SET。

根据同地域不同机房分类,划分不同子机房SET。

下图是空间基于SET画像的业务架构示例:用户通过手Q接入,在空间上层接入获取用户的读写操作,将读请求路由到本地,写请求路由到深圳SET。底层数据通过同步中心通过到异地。进而实现了空间的多地分布。

随着后端服务的不断迭代,SET核心指标也会不断变化,我们通过定期的SET调度演习来保证SET画像的准确性。演习过程中我们可以找出SET内瓶颈模块,提前修正模块容量。

SET建调度的流量变化:

结语

业务画像的目的是将多年运维经验的沉淀成模型,自动化解决运维问题。

容量模型提供基础支撑数据到容量托管平台,上百个模块全自动扩缩容,容量稳定保持在45%左右。

活动模型智能预估业务活动期间各核心模块的容量变化趋势,提供预估结论到资源池,自动完成模块活动前扩容,活动后缩容,节约大量人力,预估准确率80%。

核心链路视图解决了社平业务复杂架构模型自动化梳理,目前统一告警ROOT平台使用核心链路视图做告警收敛以及根因分析。业务上云过程中,也会使用链路视图分析优化业务架构。

SET规划则主要解决了业务多地分布,持续保证业务高可用。业务多地分布,经历了天津机房爆炸,深圳光缆被挖断等大规模故障的检验。

业务画像随着业务的海量和多样化也在不断变化,同时也会根据运维需求沉淀出更多的业务画像。在处理日常的运维困难中,需要不断积累,多多关注业务的需求,善于总结。希望这些能够给大家带来一些启发。

问答

Angular2如何处理http响应?

相关阅读

HTTP/2之服务器推送(Server Push)最佳实践

如何备份你的MySQL数据库

MySQL 8.0 版本功能变更介绍

云学院 · 课程推荐 | 腾讯高级工程师,带你快速入门机器学习

此文已由作者授权腾讯云+社区发布,原文链接:cloud.tencent.com/developer/a…

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区!

模型剖析 | 如何解决业务运维的四大难题?相关推荐

  1. 监控易:为医药行业解决IT运维与业务故障难题

    (图片来源网络) 当前,中国的医药行业正面临新一轮变革,国内的政策环境.产业结构和病患需求都在发生快速变化.突如其来的新冠疫情更是加速了医药产业的数字化进程,为医药产业管理.医药资源配置以及创新药物科 ...

  2. 美团外卖:日订单量超1600万的自动化业务运维之路

    背景 美团外卖业务在互联网行业是非常独特的,不仅流程复杂--从用户下单.商家接单到配送员接单.交付,而且压力和流量在午.晚高峰时段非常集中.同时,外卖业务的增长非常迅猛,自2013年11月上线到最近峰 ...

  3. 什么是业务运维,企业如何实现互联网+业务与IT的融合

    业务运维并不是一个新概念,针对传统信息架构提出的业务服务管理就是把以业务为核心的IT系统与IT基础设施性能进行整合运维的解决方案.然而随着互联网+转型的不断推进,基础设施的智能化和广泛云化成为IT发展 ...

  4. 美团外卖自动化业务运维系统 - Alfred

    1背景 美团外卖业务在互联网行业是非常独特的,不仅流程复杂--从用户下单.商家接单到配送员接单.交付,而且压力和流量在午.晚高峰时段非常集中.同时,外卖业务的增长非常迅猛,自2013年11月上线到最近 ...

  5. IT业务运维可观测技术的发展浅析

    什么是可观测性(Observability) 可观测性指如何从外部输出推断及衡量系统内部状态,描述的就是"观测-判断-优化-再观测"这个闭环的连续性.高效性.当下,应用架构从单体系 ...

  6. 业务运维:站在企业转型风口上的云智慧

    文:胖头陀 云智慧绝对不是一间大的公司. 尽管在所处的"江湖"里,它已经是响当当的角色,然而毕竟原先的市场领域相对狭小,于是殷晋总会有些使不出力的感受. 殷晋是云智慧的创始人,云智 ...

  7. 十分钟看懂传统运维、互联网运维和业务运维异同

    从信息化时代到互联网时代,再到如今大幕初启的数字化时代,IT.互联网和移动化已经渗透到工作和生活的方方面面.今年早些时候一群歪果仁评选出中国的新"四大发明"--高铁.网购.支付宝和 ...

  8. 记——凡科业务运维工程师面试总结(5.10)

    初到凡科,是在凤凰新村地铁A出口,右拐50米,第一栋建筑就是5号楼,首层便是凡科科技. 到了前台,先说明来意后(通知来面试业务运维的),登记一下基本后,对方便拿出一套笔试题给我做,试题都是关于linu ...

  9. 软硬结合解决电脑运维困境,让SMB IT管理从小而杂到小而精

    我们都知道且熟悉一个道理:任何一个小问题,乘以N,都会变成一个大问题.但我们也经常会忽略,对于体量不大的中小企业而言,很多看似很小的问题同样会造成很大的麻烦. 例如,电脑坏了怎么办-- 体量不大,痛点 ...

最新文章

  1. Merge into 详细介绍
  2. Qt5 中 关于Widget Mapper的简单应用
  3. Linux云服务ModuleNotFoundError: No module named 'MySQLdb'
  4. OpenCV方形检测Square Detection的实例(附完整代码)
  5. mysql 匹配所有记录_如何记录mysql中所有的查询
  6. Android轮播图
  7. python编程入门教程下载-Python编程从入门到实践的PDF教程免费下载
  8. 使用.NET Mobile API即51Degrees.mobi检测User-Agent
  9. ELK logstash中grok使用if判断消息是否包含某个字符串及以某个字符开头
  10. android viewflipper 动画,Android ViewFlipper动画
  11. 软件项目管理-会议记录模板
  12. springboot整合阿里云oss上传文件(图片或视频)
  13. DAS、NAS、SAN、ISCSI的区别
  14. 生成BMP格式图片备忘
  15. 0基础学RS(二十七)ACL访问控制列表
  16. MAC版 破解百度云、百度网盘限速的方法
  17. 洛谷3月月赛 R1 Step! ZERO to ONE
  18. 对于机械键盘的一些见解(转载)
  19. 抖音账号和视频都没问题,为什么投放不了DOU+呢?丨国仁网络资讯
  20. 【BIM入门实战】InfraWorks2018图文安装教程

热门文章

  1. 计算机操作系统专题一:多道环境下进程同步与互斥制约关系的学习
  2. linux vim(gvim) 多标签页,Vim 的标签页功能
  3. java 文件上传 demo_java文件上传Demo
  4. python多线程实现生产者消费者_用Python实现多线程“生产者-消费者”模型的简单例子...
  5. 贪心算法区间调度问题思路代码证明
  6. java实现留言版并回复_Java-留言板-回复页面(JSP)
  7. python猜数游戏流程_Python 猜数字游戏
  8. 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法
  9. 【企业管理】组织与管理的思考
  10. 《系统集成项目管理工程师》必背100个知识点-47质量保证人员(QA)的主要工作...