【IT168技术沙龙】现如今,移动、大数据等热门技术经过几年的历练,发展脉络已经相对明确,技术的变革空间相对收窄,留下的是无限的创新空间与冷静思考。创新不是盲目的耍新花样,不是拍脑袋的灵感,而是在通过反复推演之后的冷静思考。在中国这个竞争日趋激烈的市场,每天都有数以万计的初创企业诞生,又有90%以上的初创企业没有见到第二天的太阳,现实摆在面前,战争一样的惨烈。
很庆幸的是,能有一些企业如同诺曼底登陆一样幸存下来,他们是幸运的,积累了大量的经验。今天,易到用车、陌陌、blueware的技术负责人来到IT168旗下Club168"移动互联网时代企业创新发展"沙龙,分享自己的经验,为更多的创业者和技术创新者提供参考。
一、易到用车架构演进
首先是易到用车的架构师余庆,带来了《易到用车架构演讲》的主题分享。易到用车于2010年成立,是智能交通和汽车分享理念引领者,采用互联网模式 “共享加盟+服务平台”,目前已覆盖北上广等57个城市。
易到用车架构图
据易到用车的架构师余庆介绍,这个架构比较清晰和合理,个别模块存在耦合。而且主要基于数据库,基本上没有分库分表。
在实践过程中,余庆总结了一些经验,比如文件保存到mongodb太费内存;通过移动终端承担一些计算工作,比如采点数据;流水数据在方案设计时就应考虑历史数据问题,如:订单、支付、采点数据。
余庆认为,未来架构演讲的方向主要包括:平台化和服务化、数据库分库分表、异步化处理,支持更大的在线用户数。
在架构演进过程中遇到的技术挑战主要包括:1、业务规则变化快,比如派单。2、冷数据存储:如日志文件。3、消息推送:实时性和送达率要求,高并发连接。
现有的消息推送平台主要基于ejabberd:xml格式臃肿费流量;基于mongodb轮询,简单但低效;而且无法线性扩展。对新的消息推动平台的期望目标是:做到可靠消息推送,支持server和app双向推送;基于epoll的高性能server,轻松支持100K级连接;无单点问题,高可用;支持线性扩展。
新的消息推动平台的关键点是:1、尽可能避免查询DB。2、用户在线的情况下消息不落地推送。3、用户不在线或者推送失败,存储到DB中。4、用户上线时,会从DB中加载待发送消息。
最后,余庆给初创企业提出了两个建议:1、初期避免使用过重的架构,不要生搬硬套大公司架构。2、初期够用即可,后期改进或重构。
二、陌陌存储平台发展史:五大阶段
第二位登场的是来自陌陌的陈湛翀,重点讲述了陌陌存储平台发展的五个阶段:
第一阶段,使用的云主机,采用了openfire、nginx、php、mongodb等开发技术和数据库技术。由于使用了云主机,遇到了瓶颈:云主机性能跟不上访问量。第一阶段总结的经验是,能够用起来远比所谓的完美系统要好的多。
第二阶段,将存储服务与逻辑业务开始分离。优点:方便开发者。缺点:高并发下性能差。这个阶段的瓶颈:NFS 在高并发下性能极差。初创经验:不要过早优化。
第三阶段,还是将存储平台与逻辑业务分离,用ngx_lua 写的 uploade,实现了同步上传,同时优化了异步上传。这个阶段的瓶颈是:扩展困难。图片文件名例子:…/A0/B9/*.jpg。总结的初创经验:技术选型要注意可维护性。
第四阶段,选型分布式文件系统(HDFS、MogileFS、FastDFS、TFS),处理好文件名转换,cache 使用快盘,TFS 使用慢盘。
第四阶段架构图
第四阶段遇到的瓶颈:MySQL 作为文件名转换的 DB
…/AA/BB/*.jpg -> /v1/tfs/T1pabnek…
总结的初创经验:是否有必要自己搭建存储平台。
第五个阶段:区分冷热数据、采用 atom cpu 的低功耗服务器、多 IDC 上传、细分存储,节省成本、…
三、应用性能监控与管理
第三位上场的嘉宾是blueware技术负责人赵海俊,带来了《应用性能监控与管理》的精彩分享。
赵海俊率先讲述了什么是应用。普通用户定义的应用(包括百度、陌陌…);技术人员心目中的应用(开发和部署的程序);Gartner定义的应用(具备五个特性的集合),具体体现在:
1、最终用户发起一个请求,这个请求会触发一系列软件和硬件的执行来响应这个请求。
2、软硬件的执行过程中的有些步骤的顺序是按照业务逻辑描述的,而不是计算机系统
逻辑。
3、多种软件算法在执行时互相协作。最后的执行结果被编译和组装成一系列数据的结果集。
4、结果数据集通过软硬件被传输和展现到最终用户的使用界面上。5、假设一系列算法被执行完毕,它们就达到了终端使用者的使用目的。
紧接着谈到了应用性能和管理主要做的工作包括如下四个步骤:
Sense:即帮助用户发现,并定量的确定整个应用处于非健康状态。
Isolate:当确定了综合应用确实存在健康问题后,需要定位到底问题出在哪里。
Diagnose:一旦问题定位到某个具体的应用领域,我们就可以对这一应用领域进行的专业的问题根源诊断。
Reapair:最后是修复,当通过前3步对问题的Drill Down,定位问题的根源。
Gartner 定义APM的五个功能
目前国内外主要的APM提供商:国内有BlueWare、监控宝、基调网络、天旦网络等。国外有NewRelic、AppDynamic、Compuware、Crittercism等。
Blueware APM 实现原理
JVM监控:
主要通过java.lang.management 接口
ClassLoadingMXBean:监控类加载系统。
CompilationMXBean:监控编译系统。
GarbageCollectionMXBean:监控 JVM 的垃圾收集器。
MemoryMXBean:监控 JVM 的堆和非堆内存空间。
MemoryPoolMXBean:监控 JVM 分配的内存池。
RuntimeMXBean:监控运行时系统。
ThreadMXBean:监控线程系统。
源代码插装
拦截器截取
类包装
字节码插装
小结
本次沙龙活动现场嘉宾分享了个自己的经验总结,个个是干货,处处是精彩。这也是Club168做沙龙活动的初衷,希望给创业者和开发者们搭建一个平台,有更多的业界专家来分享干货,也有更多的创业者参与其中,期待下次的精彩续集。