IT系统稳定性创新者:分布式软件“笨马”先跑

 软件开发     |      2020-07-02 16:11

  早在2006年前后,IT系统稳定性就成为了当时集中式架构的挑战。随着互联网的快速兴起,当时的“Unix+小型机”架构遭遇了数据爆增的冲击。特别是在线交易、商业分析和数据库等关键业务系统,在2010年前后进入了TB甚至PB级,导致传统IT架构不堪重负,对IT系统的稳定性和可扩展性等提出了新要求。也就是从那时起,阿里巴巴开始了去“IOE”改造,采用X86服务器和标准存储与网络设备等,重新架设高稳定和可扩展的分布式IT系统。

  2010年后的10年,中国的互联网公司先后进入了分布式系统的改造和建设;而2020年一场疫情和新基建,更推动了电信、金融、电力、零售、医疗、教育、政府机构等全社会各行各业IT系统基于云计算的分布式进化。从集中式架构到分布式架构,IT系统的稳定性不仅仅涉及到机房布线、网络通信、硬件部署、应用架构、数据容灾等,还需要对平台自身的精细化管控和保障,包括容量压测与评估、全链路压测等。

  在实践分布式系统稳定性过程中,还经常涉及到对应用软件故障的根因探查与修复,这就涉及到相应的关键数据:Java执行堆栈、Java虚拟机(JVM)状态、变量状态、事件分析等。2017年底,国内创业公司杭州笨马网络技术有限公司(PerfMa)成立,两位创始人都来自阿里系,其中CEO李嘉鹏是JVM专家、CTO童庭坚曾多次参加双十一的全链路压测。2020年6月,PerfMa宣布获得来自嘉御基金数千万的A+轮融资,这也是继去年9月获得来自同创伟业的数千万元A轮融资后的又一轮融资。

  在谈及本轮融资及今后的发展时,李嘉鹏表示PerfMa以分布式系统稳定性为发展方向,准备以三到五年时间推出完整的工具链产品,帮助国内互联网公司以及数字化转型企业平滑向下一代分布式软件架构迁移。

  分布式系统和软件的稳定性,是一个近十年来新兴的IT实践领域。与传统的IOE集中式架构相比,基于X86服务器集群和大规模数据中心的互联网分布式系统,主要是由阿里在近十年推动的一个新兴软件开发与工程领域。实际上,亚马逊也是直到2020年才下线了最后一个Oracle数据库,也就是说不少互联网公司其实在过去十年还在沿用集中式架构。

  和SOA以及现在的微服务,从小规模的服务器集群到大规模自动化多租户的云计算系统,分布式系统和软件的概念一直在进化。从大型机到Unix小型机曾经被视为一种分布式进化,从小型机到X86服务器也被视为一种分布式进化,而从X86集群到今天的互联网、企业云计算又被视为一种新的分布式进化。

  以云计算为代表的互联网规模分布式系统,其基本假设是底层基础设施的不稳定,也就是说即便底层数据中心有多台服务器等设备出现故障,也要保障分布式软件的持续运营以及服务水平和用户体验不降级,这也是云计算与集中式系统以及之前的分布式系统的最大区别。然而,云计算模型下的分布式系统,非常难于理解、设计、构建和管理,特别是由于引入了大量服务器、存储和网络等设备,导致应用程序的根源问题更难于被发现。早在2009年的时候,支付宝就经历了分布式系统稳定性的巨大挑战,当年曾出现了大面积故障。2013年开始,支付宝跟随淘宝进行单元化的异地多活改造,这是分布式系统的进一步升级,也是双十一流量的巨大挑战,随后支付宝分布式系统的稳定性再次得到进化。2013年,阿里实践了双11备战的核心武器——全链路压测;2017年实现了常态化智能化全链路压测。2017年以后,阿里双十一开始常态运营,不再成为技术挑战。

  对于传统企业和中小互联网公司来说,服务器集群规模往往在几十台到百余台左右,只是近年来随着消费互联网、产业互联网、工业互联网和物联网等互联网应用的大规模发展,分布式系统和软件的规模才开始快速增长。而以支付宝为代表的分布式系统与软件稳定性,才开始受到业界的重视。

  进入2020年,随着企业互联网与产业互联网的大繁荣,特别是2020疫情强化了全社会上云上网,这些都为分布式系统的IT系统稳定性打开了一个新赛道。

  PerfMa是一家主打对分布式系统和软件进行全链路压力测试以及系统性能优化的创业公司。CEO李嘉鹏作为业内顶级JVM专家,曾先后在蚂蚁金服的中间件团队以及阿里巴巴JVM团队工作,也是阿里性能分析平台的创始人;而CTO童庭坚曾主导建设了蚂蚁金服的性能压测体系,更早之前在就职于惠普期间专注于为传统行业提供性能、自动化测试解决方案。

  分布式压测系统与应用性能调优,这是分布式系统稳定性实践中两大重要的领域。中大型互联网应用的服务器规模从几千台到十几万台不等,如何以更少的人力管理更为庞大复杂的分布式应用软件质量,这就需要引入经典的软件测试技术并应用于分布式系统上。而在分布式测试中,压力测试又是保障生产系统中软件质量的重要手段。童庭坚在蚂蚁金服期间专注于工具性平台的研发,他在5年时间里主导了4届双十一支付宝业务的稳定性验证,包括整体性能和容量能否支撑得住流量峰值,准备应急预案和风险应对,提前演练和探索存在的问题等。

  由于大多数互联网软件服务都是基于Java,当分布式压测发现问题后,就需要JVM专家进行问题排查和性能调优。阿里巴巴以及支付宝(就是后来的蚂蚁金服)的绝大部分业务代码都是Java编写的,支付宝从2013年开始,伴随着移动支付的高速发展,爆出的性能问题数量激增,JVM性能问题占比显著增加,也导致李嘉鹏痛下决心钻研JVM。李嘉鹏与同事们的其中一个成果就是阿里性能分析平台——Profiling就是通过收集Java程序运行时的信息来研究程序行为的动态分析方法,其目的在于定位程序需要被优化的部分,从而提高程序的运行速度或是内存使用效率。

  在集中式架构的时代,应用软件按照大的业务功能划分为不同的模块或者系统,无论在系统类型、数量还是依赖上均相对可控,一旦出现线上问题也容易在线下模拟分析。但建立在分布式架构体系上的应用服务具有数量多、规模大、环境复杂的特点,不仅带来了很多问题,也不是单一的工具和系统能解决的。而且分布式软件服务的线上问题有时与环境有关、线下难以复现,有时又是偶发性出现、难以捕捉。随着系统复杂度的增加,线上问题的快速定位和实时分析是一项巨大挑战,一般只能靠人力解决,阿里性能分析平台就是把相关人员的宝贵经验沉淀到工具软件中。

  2017年底,李嘉鹏与童庭坚决定离职创业,将阿里的分布式系统压力测试与JVM调优等经验通过产品化方式对外输出,2018年开始正式对外推出产品。基于二人之前的实践经验,很快就积累起了太平洋保险等客户,并一直保持健康的现金流。而李嘉鹏一直在坚持运营的Java程序调优技术经验分享公众号“你假笨”,也成为了创业期间积累种子客户的重要渠道,很多客户在读了该公众号分享的技术内容后就主动找上门求解难题。

  不论对于全球还是中国市场,分布式系统稳定性都是一个新的领域。全球范围看,也就Google、Facebook、阿里等具备相关的实践,而阿里也是唯一经过IT系统稳定性考验的超大规模电商系统。在超大规模互联网和云服务公司之外,很多大中型互联网公司和传统企业在最近几年才刚刚接触到分布式系统稳定性这一新实践。

  李嘉鹏认为,分布式系统稳定性是对企业DevOps以及Testing等的一体化改造。进入2020年,很多公司开始引入DevOps,但却根据传统观念把Testing测试功能放在Ops运维侧。实际上,分布式系统稳定性是横跨Dev、Ops和Testing的连动连调,不仅要发现问题,更要以解决问题为目的,特别是需要相应的工具软件作为技术支撑。从这个角度来说,分布式系统稳定性工具是一片新的创业蓝海。

  目前,PerfMa形成了一套成熟的“产品+服务”级解决方案,产品做支撑、服务做加磅。为客户提供全方位的稳定性服务。

  在解决方案方面:分布式全链路压测解决方案能够充分暴露系统隐患、智能化根因分析解决方案则实现了对问题源头的快速定位,并能给出调优建议;二者的完美结合让分布式系统的脆弱点无处遁形,再结合容量规划、故障演练等产品,让分布式架构下的稳定性保障不再是难题。

  PerfMa同时拥有面向企业和社区的6大技术核心产品:性能压测产品XSea结合了互联网全链路压测方案及传统集中式压测方案,在测试计划制定、测试准备、测试执行、结果分析以及性能基线管理全流程上建立了完整的性能测试体系,同时还可以与性能分析产品结合使用,在压测过程中实时定位性能瓶颈;XLand产品专注于应用实时性能分析,为企业级用户打造基于问题驱动的实时性能分析产品,通过无入侵方式在极低的性能开销下帮助客户精准发现问题、定位问题、解决问题、让每个性能问题都无处遁形,能够简单高效地发现CPU突增、内存泄漏、线程使用不规范、异常GC等性能问题,定位性能瓶颈;四款社区产品XPocket是针对Java应用程序的命令行工具包,集成了JVM参数优化、线程分析等功能;XXFox是JVM参数分析工具,为用户学习和使用JVM参数提供帮助;XSheepdog和XElephant则分别是Java线程与内存Dump分析工具,为用户在线排查问题提供了便利。

  童庭坚强调,虽然分布式系统稳定性是一个新蓝海,但也有很高的技术门槛,如果没有超大规模互联网公司和云公司的实践经验,则很难研发出相应的工具类产品。而中小互联网公司或企业也不会自己成立一个独立的JVM团队,这种奢侈的配置也只有超大规模互联网和云公司才能负担。PerfMa虽然出身阿里系,但在创业阶段也针对企业级环境重新开发出了符合企业客户需求和使用的产品。特别是针对企业中混杂的IT设备和软件版本,PerfMa甚至自行购置了典型的大机、小机等企业级IT设备以进行产品研发。而关于性能调优,PerfMa除了支持JAVA之外,目前已经实现C和C++支持,正在筹备GO和PHP的支持,基本覆盖了主流语言。

  当前,PerfMa的工具产品以分布式全链路压力测试和应用性能优化为主,未来三到五年还将继续布局整个分布式系统稳定性工具链,推出覆盖关键能力的工具型产品。

  整体来看:未来每一家公司都将是软件公司,每一家公司都将是互联网公司,在全球整体进入数字经济的时代大潮中,极需像PerfMa这样能够提供有效分布式系统稳定性解决方案的技术厂商。今天的PerfMa选择“笨马”先跑——专注于一个又一个工具产品的研发,也许明天就是下一个来自中国的世界级企业技术公司。(文/宁川)返回搜狐,查看更多