ArchSummit全球架构师峰会见闻之APM

a3.png

引言:

     近几年来是一个创客的时代,我们每天都能在各种不同的地方看到不同的人在各种不同的产品,国内已形成一种创业的热潮。媒体捧吹,政府政策支持,这年头不说自己是创业者都不好意思创业。就拿北京来说,不知道一天内有多少家创业公司兴起,有多少家创业公司倒闭。

    从2011年开始,大数据逐渐进入互联网热词行列。2012年美国硅谷投资的最热门主题就是大数据,大数据的时代的到来也造就了不少创业公司。国外的比如,大数据业务分析公司Splunk、数据服务公司Metamarkets、数据可视化公司Tableau、大数据分析公司ParAccel等。当大数据这个热词涌入国内的时候也促进国内的互联网巨头们也在纷纷布局切分蛋糕,比如阿里、百度、腾讯、金山,还有在线教育的小象学院和早期成立的数据分析专业社区炼数成金。

    进入到2013年莫过于最火的就是云计算和虚拟化技术,作为技术人员熟悉的kvm,vm,esi,cloudstack,openstack等,逐渐进入到互联网技术人员的视野。其中也不乏不少创业者看到了方向。比如基于openstack技术成立于2013年的OpenStack开源云计算公司UnitedStack,还有基于基于cloudstack市场的天云趋势等。

    2014年大家听得最多的莫过于devops和Iass这两个词语吧。devops让我们的运维同学从脚本时代走进了coding时代,因为现在越来越多的公司都要求你会python或者其他的语言,不只简简单单的会个shell脚本就行了,因为互联网在进步。从云的概念进入中国市场,越来越多的创业者看到了中国这个行业的大市场,在国内做Iass服务的,有我们熟知的阿里云,腾讯云,ucloud,青云等。

    从2014年下半年到2015年互联网创客,熟知的应该就是基于Docker容器技术的创业者们,比如DAOCLOUD,云雀,数人科技,希云,Tenxcloud等,同样APM这个词也逐渐成为创客们中的热词了,在国外有我们熟知的APM的创业公司比如:Compuware、iMaster、New Relic、AppDynamics等,而国内的创业者们也看到了中国这个大市场,大蛋糕,也不乏创业公司比如:云智慧、OneAPM、听云等。


  APM是什么鬼   
    应用性能管理(Application Performance Management)是一个比较新的网络管理方向,主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本(TCO)。使用全业务链的敏捷APM监控,可使一个企业的关键业务应用的性能更强大,可以提高竞争力,并取得商业成功,因此,加强应用性能管理(APM)可以产生巨大商业利益。
              如果你还不了解APM是什么东东,请你移驾这里一张图告诉你什么是APM,想知道什么是真正的APM看这里。

AMP见闻之云智慧
              2015的ArchSummit架构师大会可谓是空前盛况,有将近近千名的架构师们参加。不乏百度、AWS、小米、华为、腾讯等大公司的架构师参加,也有Ucloud、青云、DAOCLOUD、云智慧等新型创业公司的加盟。
 
              作为一个运维人员我可能最关心的就是我们线上的架构应该怎么部署合理和现有架构的性能在哪里的问题,所以我这次特别关心了一下APM主题的演讲,所以在这里我为大家介绍一下我在大会看到的云智慧 高级架构师 高驰涛(Neeke)演讲的"APM与高性能架构"
 
              首先我先介绍一下他在PPT中展示演讲的三个点:性能瓶颈----->瓶颈是谁----->怎么解决 ,那下面我就逐一介绍。
 
性能瓶颈
      1.用户体验            
st1.png

               不管是一个网站、产品、衣服,用户体验是很重要的,因为只有公司的产品有了用户,这家公司才有前景,才有收益。我之前一个同学在小米的应用推广平台做运维,有一天他跟我说,他们今天平台的日流水要破千万了,可想而知,一个产品只有用户才是你最大的支柱,只有用户体验好了,才能留住用户,你的产品才能体现出更高的价值。所以雷军说过要把产品做到极致,而这个极致的背后就是用户体验。
 
               而用户体验的改善我们需要去从不同的角度去分析,就如上图所示的一样,从设计方面,我们设计出更符合现在用户更喜欢的UI的风格界面,从服务方面,我们需要做好技术售后的服务和海底捞式的优服务,从产品方面我们要把产品做到极致,从性能方面,我们要让用户体验的更爽,让他的抱怨更少,从架构方面,我们应该拿出GEEK的精神去部署,从交互方面,我们应该做到简约明了,而这些并不是每个公司都能做到的,我们可以通过第三方的SaaS提供商来解决这些,可以促进我们更快、更高效的解决这些问题,当这些问题不存在了,作为工程师的我们就可以坐到办公室里面喝茶了,而不是天天焦急频繁迭代去改善我们产品的这些问题,当然这是一个最理想的状态,我想不久的将来会是这么一个状态,因为我们就在做这件事。
      2.网站架构模型
st2.png

st3.png

                 作为技术人员我们都知道网站的典型架构模型如上所示,随着业务增长,架构也会越来越大,关系的方面很多有网站的高可用性、数据的一致性、数据存储和搜索等等一系列的问题。随着这些问题的不断产生、扩张,你觉得作为技术人员的你,还有时间喝茶吗,公司只会不停的去招人,不停的去解决这些问题,从而导致你的网站、产品的质量和体验值都会下降,所以应用系统性能对用户的体验是至关重要的!
      3.应用系统性能
st4.png

                 说起流氓这个词,我想流氓会武术,谁都挡不住哦。但是在这个创客的时代,创业者们本来就是"流氓",因为创业就是这样的,你成功了你就是预言家,失败了你就是在催牛逼。
at4.png

                 前不久淘宝、携程相继出现故障,我想对他们自己的业务带来了不小的影响,淘宝还好,我相信淘宝确时是因为光缆破坏导致的故障,可怜的是携程,整个业务故障时间整整有半天之久,这个对用户的体验是非常不好的。也会造成用户对公司的信任,我的个人信息是不是会被暴露等一些问题,所以说应用的性能确实很重要,直接影响到了公司财政收入啊。难怪携程故障,老板会发出话来说,谁能给我最快的速度解决问题,奖励100万呢!

瓶颈是谁
        1.环境分析
at5.png

                 一个公司由不同的部门组成,又我们的技术客服、运维、开发、市场等组成。作为一个互联网公司,当公司发展的道路上,遇到了阻力,我们产品的应用性能问题,到底是谁负责,谁来解决呢?通常我们一般都会先想到我们可爱的开发者同学们身上,然后我们开发的同学就不停的加班,解决bug和问题,但是最后效果并不是很好。就如下图所示:
at6.png

                 那就让我们来分析分析应用的环境吧
at7.png

                 没错,如上图所示应用就是一个多技术栈复合的整合环境。我想大家看到这么一个细化的环境,你让我们可爱的开发同学,怎么去发现问题点,即使花了大部分时间找出的问题所在,这么一个环境一个人可能完成吗,需要多个开发同学配合修复,但是等你花了大部分时间来分析你应用的时候,你公司的业务进度也是停滞不前的,蛋糕也许就被别人切走了!所以这就是APM的价值所在,透视宝则孕育而生
at8.png


       2.坑在哪里
at9.png

at10.png

                   问题出现了,作为技术人员就会去找坑,但是业务环境和系统环境都可能有问题,所以找坑成为一种苦恼,喝茶的时间自然没有,我们需要从前端cdn层、web层、缓存存、数据层等方面着手一一去分析,但是最后你不一定可以准确的找到答案。就拿我们线上一次事件来说吧,我们的业务任务调度出现了瓶颈,我们足足花了三天之久的时间,最后才有80%的把握确认瓶颈出现在缓存系统redis上面,虽然已经找到了问题所在,最后重启redis,把资源释放了,最后暂时把问题解决了,但是最后这种问题还是会发生了,所以最后我们只好扩展redis,最后选择用来豌豆荚开源出来的分布式redis系统codis得于解决。从这个案例上来看,可想而知,查找坑是多嘛痛苦的事情啊,这让我想起了一句歌词"多么痛的领悟"! 而APM正好可以帮你解决你的痛苦。
 
怎么解决
                     那我们到底应该怎么去发现和解决呢?
       1.优化方案
as5.png

                      我们的分享人给出了如上图所示的一些建议。无可厚非,我们在设计架构和语言程序的选择上面,头期一定要多考虑到性能问题和可扩展和高可用的问题,要不后期随着产品和业务的增长你只能去找坑,填坑了!
as6.png

as7.png

                      对于监控大家当然不陌生,监控是作为一个业务增长保证的基础,因为在业务增长的同时,我们要未雨绸缪的考虑到一些性能方面的问题,而监控正好可以我们很好的做个预警工作,可以让我们有足够充裕的时间来解决问题,不至于等到问题出现,来临时抱佛脚,着急的处理。而云智慧他们有这个优势,因为他们还有一款产品监控宝, 我想大家应该都听说过吧。
     
        2.发现解决
as8.png

                       如上图是云智慧产品透视宝的Smart Agent的架构图,那它的特点是什么,能干什么?
as9.png

                       从上图可以看出smart agent就是类似于我们常说的一个嵌入的sdk一样,只不过这是一个比较高级的sdk,它可以自动发现你主机上面的应用程序、代码执行效率、已经整个环境的生态关系和性能指标的采集、分析数据,从而发现你这个应用系统的性能瓶颈所在。那有人,就会问了这个东西安装在我服务器上是否安全,我的信息是否会被盗取和丢失呢?
ab1.png

                         我想作为用户有担心是无可厚非的,但是我想做一个长久的公司,是会考虑到我们用户的感受的,看到如上图的解释,我想安全问题,应该不存在的。那这个系统实现原理是怎么样的,是怎么实现的?大会上分享人给出了一个php code执行的数据流图
ab2.png

                          整个系统又能解决哪些问题呢?
ab3.png

                          web端用户体验问题
ab4.png

ab5.png

                          作为运维工程师,经常会有客户反应公司网站慢,但是作为运维人员有不能很好的去查询预知,哪个地方的客户访问比较慢,只有客户反应过来才了解,这样就导致用户体验不好的问题,以致业务收到影响。我这里举个例子,我上家公司是做app市场推广和下载的,类似于91助手,我们公司的用户群体主要集中在北京、上海、深圳、广州等一线城市,有一天我们领导要我分别去测试评估这几个城市在我们平台用户下载速度,这可是给我出了一道难题了,我只好让朋友帮忙,测试了,然后评估一个数据了。页面详情追踪我想,为我们做web优化做出了很好的分析,可以针对相应慢的资源,做出相应的优化方案,不错觉得功能还可以,可以解决痛点!
                         后端服务事务分析
ab6.png

ab7.png

                         深入到后端可以让我们清晰的了解性能出现在哪个节点上面,代码级别可以让我们深入了解开发者的代码性能的问题,已经查询SQL性能的问题。看起来挺好高级的,但是如果能提供解决方案更好了。比如查询出来我有一个SQL执行时间过长,然后给出一个认为更优的SQL语句,来做到真正为用户考虑,尽最大力度,减小用户的痛点,就更好了,不过作为创业公司已经做的很不错了,继续加油吧!
                          应用架构
ab8.png

                          有一个清晰的业务应用架构,当然对解决问题是有很大帮助的。最后问题发现了,解决了,是不是可以喝茶了,balabala,happy!
ab9.png

ab10.png

                           真心要喝茶去了,因为大牛的分享结束了,真是意犹未尽啊!
下面我分享几张现场的照片和大牛的PPT给大家
PPT下载地址
2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

本人文笔有限,欢迎大家交流、拍砖

0 个评论

要回复文章请先登录注册