最佳技术架构选型方法论
Company: 阅文集团
Location: 上海
Industry: 互联网

Company简介

阅文集团(”阅文”或”Company”)是中国网络文学市场的先锋,运营领先的网络文学平台。2017年11月8日,阅文集团在香港联交所主板上市,股份代号:0772。

按作家、读者以及提供文学内容的规模和质量等维度,阅文都在中国网络文学市场中处于领先地位。截至2019年6月30日,阅文共有780万位作家和1170万部文学作品。2019上半年,阅文平台及合作伙伴分销平台上的自营渠道的平均月度活跃用户数达到2.17亿。

阅文的平台为读者提供便利,轻松浏览大量不同作品,并让More作家在网上创作及出版原创文学内容。同时,阅文运营一个多层次的分发网络,覆盖广泛用户。Company拥有九大主要品牌产品,分别是QQ阅读、起点中文网、起点女生网、创世中文网、云起书院、潇湘书院、红袖添香、小说阅读网与言情小说吧。其中,QQ阅读作为旗舰产品,为统一的移动内容汇总之地及分发平台,而其他品牌产品更专注于独立题材及其各自的用户群。此外,通过战略伙伴腾讯,阅文在其领先的互联网产品组合(包括手机QQ、QQ浏览器、腾讯新闻、微信读书及腾讯视频)中拥有专用且直接的分发途径。Company亦将内容授权予「百度」、「搜狗」、「京东商城」及「小米多看」等第三方伙伴,以进一步拓宽其用户接触范围。

阅文集团拥有庞大且丰富的独家原创文学作品,并通过在线付费阅读和版权运营(将文学作品改编成其他媒体形式)等方式变现。阅文集团的内容库源源不断地提供高质量文学作品,为业务发展奠定坚实基础。2018年收购知名电视剧、网络剧和电影制作Company新丽传媒后,阅文集团进一步将自身内容实力向下游延展。

挑战

  1. 早期单一接入的架构在容错方面很成问题。接入层/数据中心节点故障都可能导致全业务不可用。
  2. 后端服务技术栈曾有.Net及Oracle存储,也存在着几百台Windows Server系统的服务器,当然也存在JAVA和PHP两种在网络文学Industry中应用非常广泛的语言,需要对技术架构进行统一。不然开发过程中对接成本过高。
  3. 阅文集团整合了很多来源不同的阅读内容。同时也有非常多不同的频道。在开发过程中,会有非常多重复的工作。
  4. 业务日趋壮大,每日调用数值巨大。近60种业务服务,对于常规的开发部署方式,必然会花费大量成本进行编码、部署以及运维的统一。“阅文集团在近几年用户快速增长,现在MAU已经超过1.9亿,这样的一个情况下,春节搞一个红包活动,QPS大概是十万级别,核心引擎的数据也达到了十万级别。为了支持这样的量级,怎么样做一个高性能高并发的架构是一个挑战。”

解决方案

针对以上问题,阅文集团技术人员认为Company需要一个带有微服务治理平台的分布式、高性能RPC架构。利用微服务的思想,把公共组件抽象出来,省去重复编码的成本。Company秉承了快速构建、共性开发、持续集成、快速迭代和高效运营的理念,把架构统一为Tars Framework。借助TARS在处理海量请求的经验,提高处理高并发的能力,为之后业务的拓展做好准备。

影响

阅文集团副总裁傅徐军表示“TARS。经过持续的技术交流和逐步的架构演变,解决了阅文集团在服务发现、智能调度、负载均衡、容灾容错、立体化监控和可视化运营管理的问题。阅文集团在技术架构上取得了很好的效果,跟我们的预期非常一致,研发效率得到了极大的提升,运维成本也明显的减少,整体系统的稳定性也取得了卓越的效果。”

同时,TARS在研发和运营方面都有非常优秀的表现,为阅文集团的APP抗住了515书友粉丝节、百万红包、除夕手Q线上联动等过亿级用户量的活动。

“令我印象最深的是,虽然TARS是从原来在腾讯内部使用到后来慢慢变开源的一个平台,但是它向我们提供的却是一个企业级的服务。阅文集团技术团队除了使用开源技术,同时也做了很多对外开源的贡献。”


技术架构统一,应对业务整合

阅文集团成立于2015年,由腾讯文学与原盛大文学整合而成。因为由很多子品牌Company的技术架构组成,所以需要进行技术架构的统一。

傅徐军说道:“我们面临的第一个挑战就要做技术架构的统一,这是我们第一个要解决的问题。”阅文集团后端服务技术栈曾有.Net及Oracle存储,也存在着几百台Windows Server系统的服务器,当然也存在JAVA和PHP两种在网络文学Industry中应用非常广泛的语言。所以秉承快速构建、共性开发、持续集成、快速迭代、高效运营的理念,架构统一的工作顺理成章地展开了。

技术决策者经验,微服务架构选型

因为RPC的远程调用特性,针对多系统间的通讯及计算能力横向扩展有着先天优势。阅文集团早期的架构是单一接入的烟囱式架构,如果发生接入层故障或者数据中心节点故障,都会导致全业务不可用。

针对新技术架构选型,傅徐军阐述道:“阅文集团需要一个分布式的计算框架,一个高性能的RPC架构以及微服务的治理平台。在做了很多的技术架构选型之后,最终选择了腾讯的TARS。经过持续的技术交流和逐步的架构演变,解决了阅文集团在服务发现、智能调度、负载均衡、容灾容错、立体化监控和可视化运营管理的问题。阅文集团在技术架构上取得了很好的效果,跟我们的预期非常一致,研发效率得到了极大的提升,运维成本也明显的减少,整体系统的稳定性也取得了卓越的效果。”

抽象公共组件,提升研发效率

阅文集团这几年发展很快,针对不同的读者提供了很多不同的阅读频道,针对不同的合作方提供了不同的合作方式。从而形成很多不同的方案,如果为每一个方案做一套独立的架构,是很有难度的。

傅徐军表示:“阅文集团一开始有起点读书、QQ阅读这类在线网文的内容。后来,做了很多细分,比如说面向女性读者、面向二次元读者及海外读者都提供了不同的阅读频道。与正版纸质图书也有很多合作,如为微信读书提供内容,像《哈利·波特》、《魔戒》都通过阅文发行。这些方案虽然很不一样,但是他们有很多的公共组件,是可以抽取出来的。比如说计费、账户、稿酬、评论的反作弊等。有大概数百个部分组成,这样慢慢提取出来,才能做到更好的迭代,才能提高研发效率。”

高性能高并发,服务海量用户

“阅文集团在近几年用户快速增长,现在MAU已经超过1.9亿,这样的一个情况下,春节搞一个红包活动,QPS大概是十万级别,核心引擎的数据也达到了十万级别。为了支持这样的量级,怎么样做一个高性能高并发的架构是一个挑战。”傅徐军补充。

阅文集团业务每日调用数值巨大。近60种业务服务,对于常规的开发部署方式,必然会花费大量成本进行编码、部署以及运维的统一。正是采用了腾讯的TARS架构,它在研发和运营方面都有非常优秀的表现,为阅文集团的APP抗住了515书友粉丝节、百万红包、除夕手Q线上联动等过亿级用户量的活动。

技术回馈Community,加速开源发展

傅徐军在最后说道:“令我印象最深的是,虽然TARS是从原来在腾讯内部使用到后来慢慢变开源的一个平台,但是它向我们提供的却是一个企业级的服务。阅文集团技术团队除了使用开源技术,同时也做了很多对外开源的贡献。比如在多语言的支持上,原来的TARS欠缺了对PHP语言的支持,而阅文集团在PHP语言开发的积累上是比较透彻的,所以我们帮助TARS做了PHP的语言扩展。同时我们去年与TARS的技术团队也做了深入的分享和交流。未来,阅文将会向开源Community做More的技术回馈,加速整个开源Community的发展。”