新技术到底靠不靠谱?在中国用一下就知道了

中国科技公司是典型的早期采用者——不是因为赶时髦,而是确实有必要这么做。“中国式规模”让中国的互联网经济成为了高质量软件(特别是基础设施软件)工程的成长沃土,这在开源技术上得到了充分体现。国内开发者和企业向各大开源基金会贡献了越来越多的开源项目,而我们对国外的开源项目也产生了越来越大的影响。本文来自PingCAP全球战略和运营总经理Kevin Xu,AI前线经授权翻译。

我的87岁的祖母住在沈阳郊区的一所老房子里。虽然她年岁已高,但却很有技术悟性。平常她会用三个App进行网购:在京东上买书,在拼多多上买水果,在淘宝上买其他东西(衬衫、围巾、洗涤剂、数独板)。

这三个App刚好是由中国电商市场的三巨头开发的,其规模远远超出了千禧一代(1980至1994年出生的人群)和Z世代(1995至2009年出生的人群)的受众总和。

正是这种“中国式规模”让中国的互联网经济成为高质量软件(特别是基础设施软件)工程的成长沃土。

购物节狂欢

电子商务是中国互联网经济增长最快的垂直领域之一,同时也带动了数字支付和物流配送的发展。基础设施技术在这一领域经受了最为残酷的考验。“双十一”是最为典型的案例,这是由阿里巴巴提出的一个网购节日,每年的11月11日,淘宝和天猫都会如期庆祝这个节日。2017年双十一总销售额为253亿美元,2018年增长到了308亿美元。

中国第二大电子商务平台京东也有自己的年中购物节,即“618”,这是一个为期18天的促销活动,截止6月18日,这天刚好是京东的成立纪念日。2017年,618的总销售额为176亿美元,2018年增长到了284亿美元。

美国亚马逊的年中购物节Prime Day在2018年和2017年分别创造了41.9亿美元和24.1亿美元的销售额。美国感恩节购物季在2018年和2017年的销售额分别为178亿美元和196.2亿美元。

对于工程师来说,有趣的不是令人瞠目结舌的销售数据,而是如何构建可以应对这些工作负载的基础设施。2017年,阿里巴巴公布了双十一期间系统的高峰吞吐量:每秒25.6万笔交易和每秒4200万次查询。

不难想象,在这些促销活动期间,肯定会不可避免地出现大量的事务、查询、数据一致性问题、实时分析容量和其他难以想象的边缘情况。

除了这些公司,所有其他想要搭上这些促销活动顺风车的电子商务公司、所有为用户在线购物提供电子支付解决方案的银行,以及所有的物流中心和仓储中心——他们都需要有好的基础设施技术来应对新的工作负载和流量增长。

由于这种增长速度,以及由此产生的竞争压力,中国科技公司在采用新技术方面具有相当强的风险承受能力。

一家公司找到合适的产品市场,然后在不到两个月的时间内采用未经证实但很有前景的新技术为高速增长的流量提供服务,这种事情并非闻所未闻。京东在2016年初开始采用Kubernetes,当时离谷歌开源Kubernetes还不到一年的时间,因为他们必须解决可伸缩性问题,而OpenStack没能帮他们实现这一目标。(京东现在拥有全球最大的Kubernetes集群,运行在2万台裸机上)

更大的规模,更大的责任

中国科技公司是典型的早期采用者——不是因为赶时髦,而是确实有必要这么做。中国拥有世界上最多的互联网用户(8亿,并且还在增加当中),他们的规模(以及规模所带来的不可预知的行为)足够大,大到足以促使这些科技公司认真对待每一项技术。从这些公司生存下来的技术会变得更强大、更有弹性,也更值得被用在其他地方。

很多行为是不可能在构建模式下进行预测或测试的。

你该如何通过Paxos或Raft来模拟系统达到100倍查询峰值时的网络流量?当一件商品、一首歌或一段视频突然变得像病毒一样迅速传播,而所有用户都在试图访问它们,而更糟糕的是,有价值的广告收入取决于系统不能崩溃,在这种情况下,你该如何处理数据热点问题?当数据增长率为每天数TB时,应该如何扩展存储容量?

所有这些情况,在很多中国科技公司中时有发生。他们正在迅速地寻找新的解决方案,以迎接这些挑战——这为考验这些创新技术提供了一片沃土。

“中国式规模”已经催生了一些由中国原创的基础设施技术。去年,云原生计算基金会(CNCF)接受了其中的三个项目:Harbor、TiKV和DragonFly。它们的架构和用例都在之前的一篇文章中做了很好的介绍。在CNCF生态系统之外,还有其他一些值得关注的项目。

OceanBase

由蚂蚁金服开发的分布式关系数据库,最初用于支持支付宝。支付宝在中国已经无处不在。此后,OceanBase逐渐成为阿里巴巴所有关键电子商务平台(如淘宝和天猫)的核心交易数据库。它也是一个独立的产品,南京银行就是它的用户之一。

2014年以来,它经历了五次双十一的考验。可惜的是,它是一个闭源产品,在中国以外没有得到广泛采用,所以与其架构、设计或工程方面相关的英文信息并不多。

TiDB

一个开源的、兼容MySQL的NewSQL分布式数据库,由PingCAP于2015年创建。

它采用了分层架构,SQL处理层(左边的TiDB集群)和可水平伸缩的存储层(中间的TiKV集群)被分隔开来。(注:TiKV也由PingCAP发起,但现在由CNCF托管)。这个设计灵感来自于谷歌的Spanner和基于Spanner构建的F1项目。PD(Placement Driver)集群保存元数据,提供一些负载均衡支持,并提供时间戳(作为系统事务模型的一部分)。TiSpark集群是一个可选组件,用户可以直接基于保存在TiKV中的数据运行Spark作业。

目前,中国已经有几百家公司在生产环境中部署了TiDB,如摩拜、北京银行和爱奇艺。国外也有一些大型互联网公司使用了TiDB,如Shopee和BookMyShow。

注:PingCAP现已提供TiDB的企业版和云服务,同时也在维护开源社区版本。

Apache Kylin

一个快速的OLAP(在线分析处理)引擎,最初由eBay中国团队开发,在2014年贡献给Apache基金会,并在2015年底成为顶级项目。

Kylin主要被用在Hadoop生态系统中,为数百亿行数据的分析查询带来可观的速度提升。用户先定义数据模型,然后利用Hadoop的分布式特性并行运行多个MapReduce作业,用以预构建必要的多维模型(也称为“MOLAP”)。最后,Kylin将预先计算的模型存储在HBase中,供用户查询。它还使用Zookeeper来协调和管理这个过程的不同部分。

作为大数据分析引擎,Kylin集成了Tableau、MicroStrategy、Excel等流行的BI工具。它还提供了一个RESTful API,方便与第三方应用程序连接。除了eBay,它还在OPPO、百度、中国太平洋保险等公司经受过实战考验,三星和摩根大通也是它的用户。

Apache Skywalking

一个相对较新的开源应用程序性能监监控(APM)工具,用于在基于容器的环境中监控微服务。2017年底,它成为Apache基金会的孵化器项目。

Skywalking通过服务网格从微服务中提取指标,并利用Jaeger等流行工具来跟踪信息,并可以查询和分析这些指标和信息,还可以使用团队开发的UI进行可视化。它还提供了一个可插拔的存储接口,借助这个接口,可以将信息保存在一些流行的数据库中,比如Elasticsearch、MySQL和TiDB。

尽管这个项目成立还不到两年,但中国的一些大型公司已经在使用它,如华为、小米和贝壳。

中国之外

除了本土技术,国外的一些技术也有了“中国式规模”的味道。京东是Prometheus、Vitesse、Jenkins和GitLab等技术的用户,百度是CockroachDB(另一个受Spanner启发的开源数据库,类似于TiDB)的用户。Alluxio,一个分布式文件系统统一层,可以以内存速度运行(源自加州大学伯克利分校AMPLab的一个名为Tachyon的研究项目),也在百度、中国联通和滴滴出行等企业中得到采用。

中国公司不仅在大规模采用这些技术,有时候甚至直接收购它们。开源数据流平台Apache Flink由柏林技术大学于2009年创建,作为Stratosphere研究项目的一部分。阿里巴巴最终收购了由Flink创始人创办的dataArtisan(该公司的目的是商业化Flink)。

有价值的权衡?

作为工程师,我们知道没有什么技术是绝对的,它们总是存在权衡。我们总是在吞吐量和延迟、数据一致性和响应时间、新特性和系统稳定性之间做出权衡。我们很少能鱼与熊掌兼得,我们也不相信把自己标榜得太高的技术。

市场的选择也是如此。在中国互联网经济大环境中,有一些问题一定要考虑到,特别是信息审查方面的问题。比如,对侵犯知识产权行为的法律追索仍然不太可靠,有关企业使用个人数据的监管尚处于初级阶段。

但如果你是一名开发者,正在寻找一些稳定可靠的技术(已经“面面俱到”的技术),那么那些已经在中国互联网环境中经受过实战考验的技术将是安全的选择。

如果你的团队正在构建下一个大项目,尤其是在基础设施层面,那么把这个项目交给中国的几家科技巨头公司,将会为项目带来跨越式的发展。

另外,你们的努力很可能也会为我的祖母带来更快乐的生活!

英文原文:
https://softwareengineeringdaily.com/2019/02/26/china-scale-the-new-sandbox-to-battle-test-innovative-technology/

作者介绍

Kevin Xu是PingCAP全球战略和运营总经理。他在斯坦福大学完成计算机科学与法律专业的学习。主要关注分布式系统、云原生技术、自然语言处理和开源。

你可能感兴趣的:(新技术到底靠不靠谱?在中国用一下就知道了)