性能魔方:大规模企业该如何应对应用性能挑战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 在7月7日的云栖TechDay活动上,来自性能魔方的朱渝苏给大家分享了《大规模企业应用性能管理实践》话题。朱渝苏从应用性能的挑战和应对策略、大型互联网公司的优化实践、性能魔方优化实践与案例三个部分展开了本次分享。分享最后,他对现场观众所提出的问题也做出了精彩的回答。

在7月7日的云栖TechDay活动上,来自性能魔方的朱渝苏给大家分享了《大规模企业应用性能管理实践》话题。朱渝苏从应用性能的挑战和应对策略、大型互联网公司的优化实践、性能魔方优化实践与案例三个部分展开了本次分享。分享最后,他对现场观众所提出的问题也做出了精彩的回答。

下面是现场分享观点整理。


很高兴来到云栖小镇,我是来自性能魔方的朱渝苏,之前在帝联、百度有工作过。今天分享的议题是《大规模企业应用性能管理实践》。

 今天的内容分三部分,第一部分是应用性能的挑战和应对策略,第二部分是分享我们在百度的优化实践,第三部分主要介绍性能魔方产品的优化实践与成功案例。


应用性能的挑战和应对策略

性能问题无处不在、时时发生,互联网企业从业人员、资源环境、产品逻辑、用户行为等因素都有可能导致性能问题的发生,比如服务器硬件老化、云环境不稳定、产品和产品逻辑复杂、用户秒杀、大规模推广等都会造成网页无法访问或访问速度减慢,用户体验随之大打折扣。另外,中国的基础网络,在全球来说是较复杂的,南北互通,各个运营商之间多地格局。在PC端比如浏览器效果差、环境干扰,在移动端比如移动网络3G、4G网络信号不好,都会造成性能问题。




我们来看下国际一线互联网公司的应对策略。谷歌、雅虎、Facebook、Twitter等是性能优化管理方法论的先驱,并成立了独立的优化团队,将性能优化做到极致。在2007年左右,中国的一些互联网公司也关注和加大这块的投入,比如腾讯在2007年左右开始投入大规模的用户体验,百度和阿里在2010年左右也建立了应用性能管理体系。随着互联网的不断发展,2015年左右新浪、美团等都进行了性能优化实践,基本提速20%到50%左右。


那么优化实践是如何开始的呢?互联网产品由PM进行产品设计, 研发RD的同学对产品开发,然后QA同学测试,再由OP同学上线系统,与此同时系统部SYS的同事对一些基础网络、硬件环境进行维护。运维同学的工作职责是将QA测试交付后的代码最大限度进行优化,然后部署到线上系统,整合出一个大家能够稳定和高效使用的互联网产品。


运维推动优化具有很大优势,当需要做一个优化项目的时候,FE会提供JS测速,系统同学会做IDC和CDN的建设和优化,开发同学会针对影响性能的模块、接口进行专题分析和改进。OP同学作为最核心和最主要的驱动力量,除了会对整个产品负责,对产品应用性能做监测,生成监测报告以外,还需搭建一个监测平台,提供与竞品的分析、速度优化,提出这个评测报告。让FE、SC、RD的同学,都能够参与到性能优化的项目里面。



 

下面讲运维体系是如何体现性能的。op有很多平台,CT统一调度平台、统一流量接入平台和安全防范平台以及用户体验的真机监测平台等。这张PPT主要讲运维的相关工作,配置管理、资源管理、发布管理、容量管理和监控管理。细节上分为系统规划、IDC硬件、预算,管理上分为事件管理、问题管理、成本和需求。可以从运维体系看出处处体现性能,需要的就是在速度、架构、成本去优化。


要想做一个apm——应用性能管理平台,需要做哪些方面?在移动端mobile端、浏览器端都要进行监测,更底层的监测比如网络端、系统端、APP、log。只有具有整个全流程监测,才能有一个很好的应用性能管理体系去发现和监测问题。

一般的监测,比如mobile的移动监测,移动监测分很多种,有移动端到端的监测、移动SDK嵌代码到APP里面应用的监测、移动server端的JS监测和移动WEB的监测,同样WEB监测也会分为这些种类。总体来说监测分两种,主动监测和被动监测。被动监测基本上是在应用里面嵌入一些代码,然后在用户访问的时候,直接对用户的行为、时间进行一些记录,然后把这些速度指标进行收集;而主动监测是一个真实的主动的用户访问的过程。一般的做法是,以开发一款产品为例,需要真实模拟用户的去访问、调用浏览器和手机上的应用,然后真实产生一些数据,这些用户源是通过招募的,分布在全国各地,这样就能最真实的去反馈产品在所有用户下的体验。


下面可以看到一个监测平台的架构过程,比如端到端的监测、服务端的监测,这里所有监测的信息,都要进行接入。接入以后就会有数据聚合、数据过滤、数据去噪、数据关联,到最后产生相应的监测数据,同时也会产生数据报表等一些相关信息,这样可供所有技术人员衡量产品性能如何。


这是分析平台的后端处理,分析平台是经过一步步优化的,最先开始产品可能都会用MYSQL去存数据,大一点的数据可能会用一些分布式文件系统,但是这会存在一些问题,比如随着数据量的增长,MYSQL就会有一定瓶颈,此时大数据平台就应运而生的加入到了系统的后台里面。


数据源一般包括Plugin,server,端对端的监测数据。这里面,主要是在存储端用MYSQL,MYSQL主要存一些比如任务、关系型的数据。当然大量的海量数据基本上是存在HBase或者openTSDB的存储系统里面,同时这些也会将数据进行一些去噪、分析,然后产生时间级分钟级,小时级、日级、天级的数据,这时候就会调用大量离线计算的模块,比如Spark,mapreduce进行离线计算,在线计算主要是通过storm处理。

监测只是一个手段,目的是希望能进行优化,从优化的角度来说我们一般分四块,首先是从网络端的优化,网络端优化分为IDC优化,ISP优化、CDN的优化和BGP的优化,还包括DNS的优化。

系统优化可以分为系统层面的,比如压缩、缓存优化、传输优化,包括网卡的优化,多个网卡做Bang的,一些硬件的优化。

前端主要是优化首屏时间和优化内容,首屏时间比如可以用异步加载,html的优化,在CSS,JS可以用压缩合并和混小,图片优化可以进行无损压缩。

后端优化主要是产品逻辑。尽量让产品逻辑变成简单,可依赖,而不是变成多复杂的,可以优化算法,优化程序,这块主要是开发人员进行优化的一个方向。

大型互联网公司的优化实践 

用户访问质量平台,一般分为六个子产品,比如PC监测和移动监测,这里的性能优化是即时监测,即时监测是一个实时性的过程,能够在第一时间调用全国所有的真实用户去访问产品,输入PC移动的站点地址,一键式分析站点的问题、瓶颈,并快速提供优化建议,同时可以看到细节分析。即时监测相当于一次性的体检,是互联网产品上线前的监测,如果是长期的过程,需考虑用持续监测,持续监测主要是能够监测整个产品的生命周期,元素的趋势视图,通过持续监测可以看出页面中各元素大小、数量的变化趋势,及时发现网页变化,对网页所产生的影响和快速定位性能下降的原因。 

接下来是图片优化,能够提供有损无损的在线和离线海量图片优化服务,实现一键式的全网图片打包。图片好比像是人体中的水分,图片的优化就可以减轻产品的体重,相当于把产品进行减肥瘦身,很多产品线也会接入使用图片优化的功能。一般优化后的图片会减少25%左右,一方面减小体积使用户的访问速度增快,另一方面它就可以使带宽减少,成本也会降低,所以它是一个双赢的过程。

速度准入是对于产品上线前来说的,因为每次发布新版本,都会有很大的改动,都会造成用户体验的下降,有可能会造成访问延时。速度准入能够即刻从全国抽样数百名真实用户的网络,在浏览器完成请求,将速度、瓶颈、优化建议可视化的展现。


之前讲了优化,优化是发现问题,同时要产生告警,这样不用每天查看报表,而这时候也有了质量报警,通过报警去监测问题发生。生产环境的产品因素、系统网络、内容发布、版本更新、各种原因都会造成速度变慢,需要及时告警,针对速度、元素大小、趋势、网络抖动进行监测并建立分析模型。

性能魔方产品的优化实践与成功案例

之前讲了应用性能挑战和大型互联网公司的优化实践案例,下面讲我们现阶段性能魔方产品的优化实践和案例。 

性能优化是手段,最终目的是希望能够提升用户体验,所以性能魔方产品分为三块,能够提供一站式云加速应用性能管理体系,包括云评测、云监测和云加速这三个方向。就好比是去医院的一次体检的问诊疗的过程。


云评测相当于一次性的体检,它能够全面了解应用产品性能的服务,多视图、全方位分析产品在不同地理位置、网络、设备、浏览器下的性能瓶颈,并自动提供行之有效的优化建议。云监测主要是能够监测整个产品的生命周期,它是一个端到端的立体,用户访问、而用户网络、物理及云环境操作系统,应用下载性能监测,它能够让技术人员以系统、网络甚至代码层的角度去监测自己的产品,分析自己产品的应用的性能。 

其实云评测、云监测就相当于去医院看病,去询问又去诊断,如果出了问题,以前我们的做法是提供一些优化建议给出优化报告,最终实施是开发人员或者技术人员,这是不够的,最终是要解决问题,于是我们研发出了一款产品叫做云加速,集合了多年的性能优化的经验。云加速包括图片加速、网络加速、全站加速和移动加速,其中网络加速也就是相当于CDN静态资源的加速。

全站加速是比较核心的,能最终解决问题,全站加速主要分为两块,最开始它是将站点的资源进行重构、动静态剥离、动态进行多点接入、路由优化;在静态这块会做css压缩合并,JS合并、图片优化处理,最终把它上到CDN平台上,通过一系列的优化手段,可以速度达到很好的优化效果,网站基本上都能提速大概50%左右。 

mmtrix性能魔方产品未来想要做的一个方向是云存储、云安全、云计算和大数据。谢谢大家!

精彩问答

主持人:

感谢朱总的分享,肯定大家有很多问题想跟朱总进行进一步交流,现场有问题的大家可以直接举手提问,就对刚才朱总分享当中有疑问的或者有不同的观点现场进行交流。 

提问:

朱总您好,我是一个设计师。我想知道经过性能魔方加速过之后的图片,文件的大小是在降低,但是它这个图片的清晰度大概能降低多少?或者是说跟原图,对比起来有什么太大的差别?

朱总:

我们的图片优化其实分为两种,一种是有损的一种是无损的。我们优化比较保守,基本上是保持它不会失真。一般情况下,页面中的图片资源主要包括四种格式:gif、png等。性能魔方云加速会判断浏览器最适合的格式及压缩比例来进行优化,同时也为移动设备和PC设备提供了两种不同的压缩比例。优化后的图片会在性能魔方云加速系统中保留缓存,并将图片url改写,使之可以通过CDN访问。

提问:

你是指一键加速吗?一键加速完成的图片在保证不失真的情况之下,还能同时的保证图片的文件的大小在降低?

朱总:

对。其实如果有合作的话是可以提供接口,因为是失真和不失真是相对的,有的其实可以失真,比如说图片变小了在PC上失真,但在可以在手机上访问是不失真的。

提问:

淘宝天猫的钻展图,它首先有固定的规格尺寸,又保证图片的降低,当然我们在没有性能魔方平台之前,我们一直是采用的国外的png、jpg的图片。非常感谢朱总提供这样好的平台,谢谢。

 

 

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
1月前
|
机器学习/深度学习 存储 人工智能
CDGA|AI时代:企业生产力飙升与数据治理成本轻松降低
AI时代,企业要实现生产力的持续飙升与数据治理成本的有效降低,关键在于推动AI与数据治理的深度融合。这要求企业不仅要加大AI技术的研发投入,培养专业的AI人才团队,还要构建完善的数据治理体系,确保数据的质量、安全与合规性。同时,企业还需积极探索AI与业务流程的深度融合路径,让AI技术真正嵌入到企业的每一个环节中,发挥其最大效用。
CDGA|AI时代:企业生产力飙升与数据治理成本轻松降低
|
3月前
|
人工智能 异构计算
就AI 基础设施的演进与挑战问题之使用阿里云DeepGPU能带来性能提升的问题如何解决
就AI 基础设施的演进与挑战问题之使用阿里云DeepGPU能带来性能提升的问题如何解决
|
3月前
|
运维 监控 测试技术
运维自动化:提升企业效率的关键技术
【8月更文挑战第19天】在数字化时代,企业面临着日益增长的技术挑战。运维自动化作为解决这些挑战的一种有效手段,不仅能够提高企业的运营效率,还能确保系统的稳定性和安全性。本文将探讨运维自动化的核心价值,分析其在现代企业中的作用,并讨论实施运维自动化时可能遇到的挑战及应对策略。通过深入理解运维自动化,企业可以更好地利用这一技术,以实现业务目标和提升竞争力。
|
5月前
|
人工智能 安全 网络安全
AI如何帮助IT领导者优化成本和降低风险
AI如何帮助IT领导者优化成本和降低风险
|
6月前
|
存储 安全 前端开发
SAAS解决方案深度剖析:适用场景、挑战与成本评估指南
SAAS解决方案深度剖析:适用场景、挑战与成本评估指南
216 0
|
机器学习/深度学习 数据采集 人工智能
人工智能驱动的业务自动化:提高效率和节省成本的利器
人工智能驱动的业务自动化正在成为企业提高效率、降低成本和优化业务流程的重要工具。通过流程自动化、数据分析和决策支持,企业可以更好地满足市场需求,并在激烈的竞争中保持竞争力。尽管面临一些挑战,但随着技术的发展,人工智能驱动的业务自动化有望为企业创造更多的价值。
276 1
|
人工智能 搜索推荐 自动驾驶
使用 AI 工具是否会导致思考能力退化?如何应对?
文本探讨两个问题:使用 AI 工具是否会导致人类的思考能力退化?如何在使用AI工具的同时,保持甚至提高我们的思考能力?
414 0
使用 AI 工具是否会导致思考能力退化?如何应对?
|
人工智能 自然语言处理 监控
利用人工智能和自动化降低合规性成本的五种方法
人工智能和智能自动化流程,例如机器人流程自动化(RPA)和自然语言处理(NLP)可以帮助提高效率并降低成本,以满足合规性。
利用人工智能和自动化降低合规性成本的五种方法
|
自然语言处理 数据可视化 算法
大数据可视化技术面临的挑战及应对措施
本文从大数据本身的特点及其应用需求出发,结合数据可视化的研究现状,介绍了适用于大数据的数据可视化技术;分析在大数据条件下数据可视化所要解决的8个关键问题;讨论了针对大数据可视化应用需求自主研发的交互式可视化设计平台AutoVis及其应用。
|
机器学习/深度学习 人工智能 监控
物联网给IT带来了新的挑战:海量数据、复杂性和超动态应用
物联网已经在许多领域成为现实:智能路灯、智能电表和自耕农田等等。设备可以决定何时启动,何时购买能源(因为价格便宜)以及何时开始浇灌田地。决策基于数据,而不仅仅是预编程的激活。
下一篇
无影云桌面