从你写下第一行代码到整个持续的运维,APM都是不可或缺的工具。在国外,APM已成为IT Operation的核心,而现在,通过APM提供的用户体验管理工具,他们可以实时监控到最终用户体验,也能掌握业务层面的动态。
实际上,针对企业用户在应用性能管理解决方案部署和交付模式上的不同需求,蓝海讯通提供了两种产品和服务交付模式:传统的软件许可证模式(blueware)和基于云计算的SaaS模式(OneAPM)。blueware主要针对传统大型企业,而OneAPM主要针对互联网企业开发者 。
借助OneAPM,开发者可以提升开发速度、让应用更快发布,并且能精准定位使用体验中的瓶颈。据蓝海讯通介绍,OneAPM的功能很适合支持敏捷开发模式。他们希望提供一种服务,让应用性能管理不再是问题,对开发者来说,你只需要把业务做好,把你要提供给客户的服务想好,不需要再去关心性能的问题,本文将就OneAPM的相关问题采访了蓝海讯通创始人兼董事长何晓阳。
蓝海讯通创始人兼董事长 何晓阳
CSDN:首先介绍一下你们为什么要做APM,有什么样的意义?
何晓阳:我个人微博可能经常看到这样的信息,有用户吐槽@服务商,说你的性能体验不好,我在网上付了钱都我没有收到票,这种事情很常见。再比如说某APP用着用着就弹一个报错,弹出一行代码,觉得这个东西很奇怪,这行代码什么意思呢?对普通用户来讲他觉得很困惑。那么这个东西显然不是这个应用的开发者他想看到的,但他并不知道这样一个事情的发生,所以对他们来讲,首先会导致用户体验下降,第二是消费者就直接选择另外一家的产品。现在尤其在中国2C这样个领域竞争是很激烈的,无论是任何一个领域,比如在线教育或者最近比较火的旅游行业,竞争都很激烈,如果体验不好,可能最终用户就选择别人,这会直接导致营收的下降。
我们是希望提供一种服务,我们想让应用性能不再是问题,对开发者来说,你把你的业务做好,把你要提供给客户的服务想好,把你的业务创新想好,不需要再去关心性能的问题,我们提供这种应用性能管理的Total Solution,我们是帮助我们所有的客户统一的解决这些问题。我们OneAPM这个SaaS平台,面对的是中小型企业,还有创业团队,这个在美国叫small to middle business,在国内觉得可能会更小,甚至就是个人开发者。你只要是一个创业者,有自己的理想、梦想,可以自己写一行代码,写一个应用出来,我们可以保证你的这个APP的performance是没有问题的。
那么我们现在在做什么呢?我们是希望给所有的开发者提供一种能力,让他们不再担心性能,无论他写的是什么样的代码,只要使用OneAPM,就可以迅速保证不会因为应用的性能问题导致客户体验的损失,导致业务的受损。他自己的能力是多少,可以发挥出来多少,不会因为自己的IT能力的缺失,使得业务能力下降,这是我们第一步要做的事情,而且现在这个事情我们已经做到了。
CSDN:APM跟传统的运维监控的主要区别是什么?像IBM提供了CA、惠普的,也是对基础设施做监控。
何晓阳:其实基础监控设施的产品我们也有,但其实基础监控设问题在哪?这个应该说和APM行业发展过程有关,我们拿美国人来说,美国最早的时候1998年以前或者1995年到2000年这样一个时间点,这个时候我们知道是互联网1.0的时代,就是网站,基本上像雅虎是那个时候兴起,就是一个网站,没有任何的交互也没有任何的业务逻辑在,比如雅虎给你提供的新闻,你只有上去看的份,你想跟它产生一些交互是不可能的。这个时候速度取决于您的网速,所以那个时候产生了一些测网速的应用,并且今天他们都说自己是做APM的。从2000年到2005年的时间点,计算机从网站变成了一个实际的业务,那时候像Ebay这样的厂商可以兴起,在网站上用户产生实际业务的,那个时候应用程序运行在什么地方呢?就是框架上。我们知道那个时候SUN公司很值钱,卖服务器、小型机,它卖的服务器和小型机,这种性能自然是需要监控的,基础设施监控大概是美国人在2005年干的一件事情,那个时候在SUN的的小型机上跑数据库软件,专业软件,跑weblogic Server这样的一些软件。再往后,从2005年以后application变成了以应用为核心,随着虚拟化云计算的兴起,随着SOA的落地和DevOps的应用,这个时候监控基础组件已经没有用了,因为很多的故障是发生在应用内部的,所以第三代的应用型的监控是以应用为中心,你要注重用户体验,强调的是端到端的应用性能管理。
CSDN:但是像CA、IBM都是传统做软件的,你刚才提到APM包括BSM他们都在做,你现在做APM,优势在哪?
何晓阳:是这样的,BSM现在没有厂商能做到,APM他们确实都在做,其实APM的技术本身来讲是不断变化的,上一代APM即便我们说能感知到用户体验的,能做端到端的,2008年的APM到现在已经是非常不同了。2008年的APM那个时候已经是第三代的APM软件了,其实是做端到端的应用性的管理,那个时候IT的基础架构是什么样的?首先那时候数据在内部是垂直扩展的架构,没有太多的虚拟化,没有太多的云,都是部署在小型机之上,所以这个应用是向上扩展的。这种应用程序往往布置在JAVA和.NET上面,因为这两个的兴起所以导致了这个容器也很贵,我们知道BEA卖了80亿美金,这个价格现在想来是天价,居然和Splunk一样贵,居然比SUN还贵。所以说在一个很大很昂贵的小型机上,运行很多昂贵比如像WebLogic的应用服务器,这个时候的APM无论是IBM、惠普的HP SS做的东西,都是这样的解决方案,是针对这样一个场景来做的。但这个问题就在于,现在的应用已经远远不是这样的了,现在应用都是分布式的,都是虚拟化的架构,像IBM的ITCAM,一般一套license费用在美国也都是要100万美金以上,因为它非常重,它的UI之类都是面向重型的企业级的应用,面向小型机的环境,所以没有办法面对SMB的客户。对于个人开发者,他们没办法去使用这样一个软件,首先看不到,其次是买不起,即便买到了会发现这个东西可能不符合他的使用方式,因为传统的APM是支持JAVA语言,但现在程序是用什么写的?很多程序都是用快速的ruby来写,或者是在手机端,是用安卓或者iOS,你像IBM根本没有这样的概念,根本不会对这种应用提供支持,所以你用不了。所以新一代的APM都是基于分布式的云框架,提供一个相对来说比较简单、易用的APM解决方案,大概是这样的感觉。
CSDN:能分享一下OneAPM在打造你们的核心产品上的一些具体思路、用到的技术,基本架构吗?
何晓阳:主要利用了AOP(面向切面编程)的编程思想,把应用所有的监控逻辑抽象出来,让用户专注写自己的业务逻辑,在系统启动的时候,通过相应的技术手段把应用监控的逻辑代码再织入到用户的应用里面,从而添加应用监控功能。以java 在tomcat容器的应用为例,用户下载OneAPM的探针后,在tomcat的java虚拟机系统的参数里面添加-javaagent:/路径/Oneapm.jar,然后启动tomat,在tomcat的jvm启动期间,jvm在加载相应的应用类的时候,通过BCI(Byte Code instrument)技术把相应的应用监控逻辑织入到应用的java类文件当中,从而完成对应用的监控。
OneAPM 技术栈:
- 语言:JAVA、DOTNET、C++、PHP、RUBY、PYTHON、NODE、JAVASCRIPT、OBJECT C 、HTML5等
- 开源框架:Spring、Mybatis等
- 后端数据库:mysql
- web容器:tomcat7
- web服务器:nginx
后继会用到的技术:Strom、Kafka、Flume、Elasticsearch、hadoop 和spark等
OneAPM架构
CSDN:你能介绍一下,国外其实有很多的创业公司已经在兴起了,而且获得了很好的发展,国内现在有几家也在做?能介绍下进入APM领域的门槛到底有多高,你在创业的时候有没有一些难点遇到?
何晓阳:首先你做后端的monitoring第一个概念,你既然要做到跟应用无关,那你的实现层面要比应用层面低一些,要更加底层一些。我们其实和国外的Wily科技、Appdynamics都是一样的,我们都是在语言层面实现的,比如说JAVA语言,你要写一种探针。假如用户是.NET语言,那你的JAVA探针就完全没有用,你要重新写一个.NET探针。现在的语言有多少种呢?.NET、JAVA、PHP、Ruby、Python、NodeJS、GO、Lisp等等需要每一个语言写一个探针,那这个探针且不说有多难,先把每个语言凑齐弄成一个团队,一个语言一个团队,那你后端就需要很多团队了,加上IOS、安卓,要10个研发团队,你想想对一个创业型的公司来讲凑10个研发团队,而且需要每个语言都有人,所以中国本身也是开发者紧缺的情况,你招一个语言的技术合伙人都很难了,你要把7个语言都召齐,实在真是很困难的事情,这是第一个门槛。
第二个门槛,把探针做完了之后开始搜集应用程序的数据,但这个数据的量,大家可以想像一下这个量会有多大。我们其实在做saas的时候我们后端的服务器接收到的数据来自我们用户的用户,他的每一个实际的浏览器和手机端,我们的并发量基本上相当于我们用户并发量的总和。像新浪网,人人,酒仙网都是我们的客户,假如说你的并发量他们并发量的总和情况下,可以想像一下后端的服务器要承担多少负担。我们看一下New Relic接收到的事件是每天2万亿条数据,你需要的计算和存储的能力非常非常强,就是早在前年的时候,New Relic的并发访问量远超twitter,现在应该是twitter的很多倍了,你想作为一个twitter这样的平台要多少钱,要多少人力,你再算一下作为一个远超twitter的后端服务处理能力需要多么难,所以探针会卡住很多的团队,你做了探针之后还要做后端。
再说第三点。即便把探针做出来了,他能不能在极端的环境下经受住考验,我们知道中国IT环境很复杂,并发量是全球最高,应用程序属于全球最脆弱,因为我们的程序大多数都是应届毕业生写的,甚至是还没有毕业的学生写的。在这样的环境下写一个应用等级的探针,你很容易就会把别人的系统搞宕,或者占用很多的资源,你需要在很多的环境下验证你的探针是OK的,这个事情对很多的团队来说尤其困难。
CSDN:同一个创始人,Wily和New Relic的区别在哪?还有比如都是SaaS的环境,刚才说到New Relic和Appdynamics如果进入中国的话,和他们的区别在哪?
何晓阳:第一,New Relic和Appdynamics的区别,本质上来说他们都是APM产品,但他们的定位不太相同,New Relic自己的定位是提供给开发者的应用服务,开发者肯定是个人。Appdynamics是指大型、中型这种互联网公司和传统公司。在美国还有一个公司叫Compuware,它的客户就是像全球两千强这样的客户,其实我们的客户群体是Compuware加New Relic,我的SaaS服务于所有的开发者,我的企业级Sorftware服务属于中国最大型的企业,我们不做中间的大型互联网公司。产品定位不同,你的界面,你的UI,你的实验细节也会有很大的不同,这种轻与重是有区别的。至于说他们进中国,这事其实是这样,我们一直在美国的SaaS服务,像Zendesk一直在用,美国一个叫SaaS计费的zuora我们也在用。Zendesk访问速度非常慢,我们SaaS Help Center是用Zendesk做的,用户访问我们网站很快,但他提一个Ticket,或者去看一个文档的时候,就会变得很慢。
CSDN:你觉得开发者和企业客户这两个不同的群体,在推广上会有一些什么不同吗?
何晓阳:对开发者来讲,我们更多的是想让大家知道这个事情,我们认为他们一定需要这个,但他们可能不知道这个,所以对开发者来说我们就是让他们知道有这个东西的存在,你用就行了,我们也不会收多少钱,我只是希望这些人在更多新的工具面前,要学会用新的工具提高效率,这对新一代的开发者来讲能够具备的能力。
至于企业客户来说需要更多的服务,因为中国的企业客户典型的属于未必知道自己需要什么,他可能不知道APM,不知道基础架构监控,但他知道要达到什么样的效果,所以我们给企业提供的是一个solution,我说的solution这里面未必说一定有别人的软件,我们是希望我们给客户提供的就是效果,未来我们的企业就做到类似像palantir,palantir这个公司在美国,它的客户都是像美国的FBI、NASA,石油公司这样的,他做生意模式很简单,往往是他们的人员找CEO谈一谈,你现在最关心哪五个问题列出来,这些人把自己的软件、人放到你的公司工作三五个月,把你所有的数据弄一遍,现在告诉你这五个问题的答案是什么,最后给你一个最终的结论,说多少钱,可能一个案子一千万美金,这个公司就是这样的模式,现在营收已经将近10亿美元了。
|