`

【先锋】从代码层诊断,云端OneAPM平台让开发者专注开发

 
阅读更多
原文地址:http://www.csdn.net/article/2014-09-25/2821871-cloud-oneAPM-hexiaoyang


摘要:从你写下第一行代码到整个持续的运维,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亿美元了。

中国创新“先锋”企业系列报道
序号 公司名称 成立时间 CEO/CTO 官方微博 公司产品/方向
1. 云适配 2012年 陈本峰
网站适配
2. 友友 2010年 
姚宏宇
@友友微博 C、C++、Java产品研发 
3. 聚合数据
2010年
左磊 
@聚合数据 移动数据服务
4. Anchora 2009年 鲁为民       

MoPaaS和InPaaS 
5. 够快 2012年
蒋烁淼 @够快科技 
云存储
6. 文思海辉
2012年 吴凯
@文思海辉 OpenStack公有云       
7. 搜狐云 2011年 邱英波
SendCloud                  
8. 联想云存储 2009年 罗予晋
云存储
9. 南京讯之智 2012年 谢晚霞
大数据实时分析
10. 上海圣何赛 2012年 
金剑 

云管理、云存储                
11. 国云科技 
2010年
季统凯
@国云科技 云操作系统                
12. SSO365 2012年 赵健               

云安全、云身份认证 
13. ClouDil云方案 2001年
叶滨 @世纪鼎利 
通信运营商                
14. 多备份 
2013年 胡茂华            
@木浪 云备份                 
15. 上海越诚软件 2011年 王炜                  
基于云的建站软件超市 
16. 云智慧 2009年 殷晋 @监控宝 云监控、基于大数据APM
17. 深圳泽云 2012年 何巨彬
高性能存储系统
18. 深圳智冠 2004年 卢慧莉  
手静脉生物识别、虚拟化
19. 北京沃安科技 2009年 曹学武 @沃安科技 移动视频技术提供商
20. 星环信息科技 2013年 孙元浩 @星环科技 大数据分析平台
21. 杭州数云 2011年 宣晓华 @杭州数云 数据挖掘
22. 红象云腾
2012年 童小军 @RedHadoop
基于Hadoop的大数据平台
23. APICloud 2013年 邹达 @APICloud 云API和端API
24. SequoiaDB
2012年 王涛 @SequoiaDB
大数据、云计算、NoSQL 
25. Syscloud
2012年 张雄国  
云主机、云托管、虚拟数据中心
26. 易思捷 2008年 杨炳富   @易思捷虚拟化和云计算
数据中心,虚拟化
27. 亲加通讯云 2011年 须泽中   @亲加通讯云 
通讯云
28. OneAPM 2008年 何晓阳 @蓝海讯通OneAPM 基于SaaS平台的APM
备注:2014年9月28日更新,持续更新中......

备注:云先锋系列文章是由CSDN云计算频道打造的,主要报道(免费)国内外在云计算、大数据方面具有独特竞争优势的企业,以传播技术为目的,推动中国云计算技术的发展,只有你有云计算或大数据方面独特的技术、产品和服务,你就可以投稿,欢迎投稿weiwei@csdn.net。
分享到:
评论

相关推荐

    从代码层诊断,云端OneAPM平台让开发者专注开发

    从你写下第一行代码到整个持续的运维,APM都是不可或缺的工具。在国外,APM已成为ITOperation的...借助OneAPM,开发者可以提升开发速度、让应用更快发布,并且能精准定位使用体验中的瓶颈。据蓝海讯通介绍,OneAPM的

    开发者必备的8个最佳云端集成开发环境.pdf

    本文将详细介绍8个最佳的云端集成开发环境(IDE),它们为开发者提供了便捷、灵活且功能丰富的编码体验。 1. **Cloud9 IDE**:基于NodeJS构建,支持多种编程语言如C#、C++、Python、Perl、Ruby、Scala等。它内置Vim...

    云端代码Google App Engine编程指南 高清带书签

    最后,通过《云端代码Google App Engine编程指南》的指导,开发者可以更加系统地掌握GAE开发的核心知识,学会如何高效地使用这一平台来构建和维护各种Web应用和服务。通过学习这些知识,开发者能够利用GAE提供的各种...

    基于 Git 的代码托管平台(同时支持 SVN) 专为开发者提供稳定、高效、安全的云端软件开发协作平台

    在IT行业中,代码托管平台是软件开发不可或缺的一部分,它们提供了集中存储、版本控制以及团队协作的功能。基于Git的代码托管平台如Gitee,更是深受开发者喜爱。Git本身是一种分布式版本控制系统,它允许开发者追踪...

    华为软件开发云: 一站式云端DevOps平台.zip

    综上所述,华为软件开发云作为一款全面的云端DevOps平台,覆盖了软件开发的全生命周期,从代码编写到应用上线,再到后期运维,都提供了强大的工具和服务,旨在帮助企业和开发者提高效率,降低风险,实现敏捷开发和...

    藏经阁-HaaS物联网云端一体低代码开发课程(上)-70.pdf

    本课程主要介绍 HaaS 物联网云端一体低代码开发的基本概念和开发方法,涵盖物联网基础知识、Python 基础语法、HaaS 开发框架、物联网云平台和 IoT Studio 等方面。 一、物联网基础知识 物联网(Internet of Things...

    云端软件平台

    【云端软件平台】是一种基于互联网的计算方式,它允许用户通过网络访问各种应用程序和服务,而无需在本地计算机上安装和维护软件。这种模式通常被称为Software-as-a-Service(SaaS),是云计算的三大服务模型之一,...

    阿里云物联网平台-设备端与云端开发.pdf

    阿里云物联网平台-设备端与云端开发技术创新 阿里云物联网平台-设备端与云端开发技术创新是指通过阿里云物联网平台实现设备端与云端之间的数据交互和数据处理的技术创新。该技术创新主要应用于物联网设备的管理和...

    藏经阁-开发工具的云端化.pdf

    总结来说,云端开发工具旨在提升开发效率,简化代码管理和构建过程,通过将这些流程迁移到云端,开发者可以更快地访问和处理大量代码,实现更高效的协作。阿里云作为国内领先的云服务提供商,也有可能借鉴并发展类似...

    云端代码Google App Engine编程指南

    Google App Engine是一款由Google提供的云端应用程序开发平台,它允许开发者使用Python和Java等语言创建并运行分布式Web应用。本指南将深入探讨如何利用Google App Engine进行高效、可靠的云端代码开发。 **一、...

    物联网平台开发者指南

    【物联网平台开发者指南】是为物联网云端平台及手机APP应用开发者提供的一份详细指南,旨在帮助开发者理解并掌握物联网开发的核心技术和实践方法。本指南由北京龙博中科软件有限公司编撰,涵盖了多比物联网平台的...

    DiverseCloud 平台开发者手册1

    在开发物联网(IoT)应用时,与云端平台的集成是至关重要的步骤。DiverseCloud 平台提供了一套完整的开发者工具和指导,帮助开发者顺利接入其设备和服务。以下是接入DiverseCloud 平台所需了解的关键知识点。 ### 1...

    云端html5开发工具maqetta-preview

    Maqetta Preview是一款专为HTML5开发者设计的云端集成开发环境(IDE),它提供了丰富的功能,旨在帮助开发者更高效地创建和编辑HTML5、CSS3以及JavaScript应用。这款工具的独特之处在于它的可视化编辑器,允许开发者...

    Android框架、应用于云端软件开发

    【Android框架详解】 Android框架是Android操作系统的核心组成部分,它提供了构建和运行Android应用...通过这次培训,学员将有机会从理论到实践全面掌握Android框架和云端开发,成为能够在Android领域实战的高端人才。

    华为端云一体化端云一体化开发支持开发者在 DevEco Studio 内使用一种语言同时完成 HarmonyOS 应用的端侧与

    应用运行所需的服务器和环境可以皆由云端平台提供,开发者只需关注应用的业务逻辑,而无需关心基础设施 华为云开发服务框架 常见的云服务 - 认证服务:助力应用快速构建安全可靠的用户认证系统。 - 云函数: 提供...

    智路OS是全球首个开源开放的智能网联路侧单元操作系统以高等级自动驾驶技术为牵引,沉淀出来的车路云网图一体化的智能交通基础软件平台

    智路OS是一套完整的软件和服务开放系统,由路侧操作系统(airos-edge),车端(airos-vehicle)和云端开发者平台共同构成,为行业提供了统一的车路云开发环境。其中airos-edge自下而上分别由内核层,硬件抽象层、...

    云端代码:利用Google AppEngine编程

    1. **简化部署**:GAE自动处理服务器硬件购买、操作系统安装等基础设施问题,让开发者能够更加专注于应用程序的核心功能。 2. **高度可扩展性**:应用程序可以根据用户流量自动调整资源分配,确保在任何情况下都能...

    DiverseCloud 平台开发者手册 - 1.11

    【DiverseCloud 平台开发者手册 - 1.11】是成都雅鲁科技有限公司针对其物联网(IoT)平台提供的一份详细指南,由Edward撰写。这份文档旨在帮助开发者了解并实现对DiverseCloud平台的顺利接入。以下是文档中的关键知识...

    开发者常用的20个开发工具

    11. **VS Team Services (VSTS) / Azure DevOps**:微软提供的云端开发运维一体化平台,包括代码管理、持续集成/持续部署、项目管理等功能。 12. **Chrome DevTools**:浏览器内置的开发者工具,用于前端调试、性能...

Global site tag (gtag.js) - Google Analytics