TARS圆桌对话:一个开源生态,如何支撑腾讯、阅文与虎牙的十亿用户

没什么想法但
 没什么想法但
发布于 2020年08月01日
收藏 9

当前微服务架构火热,云原生这个大趋势下,关于为什么需要使用微服务架构,几乎不需要再陈词滥调。倒是采用微服务的时候会遇到什么问题有更多人关注。

目前普遍的看法是采用微服务需要解决的主要问题包括:

  • 服务治理:基于分布式的微服务架构中,系统需要考虑服务发现、负载均衡、限流、熔断、超时、重试与服务追踪等具体环节,每个环节都不能出差错,治理起来并不简单。

  • 开发难度大:微服务多是跨服务器甚至跨机房调用,开发人员需要处理超时、网络异常等棘手问题。

  • 多语言互通:现在的开发语言数量很多,不同程序员有自己的偏好,很难统一。前端、后台, 不同的技术栈,不同开发语言,他们的互通也是很大的难题。

  • 性能问题:参考谷歌趋势,在 IT 行业对于“高性能”的搜索一直居高不下。随着用户增多、 访问量增大、服务的调用链也成倍增加,面对海量请求时性能需要得到保障。

  • 数据一致性:服务最终需要落地数据,数据的传输、存储、事务处理等需要保障一致性。 

这些问题使得采用微服务会困难重重,处理得不好反而得不偿失,原本引入微服务架构想要带来的优势没有了,而后期运维成本却大大提高。

这种时候公司技术 leader 或者独立开发者往往通过选择合适自己业务与体量的微服务框架去适配,把采用微服务架构的成本降低,同时带来微服务架构该有的优势。目前 Spring Cloud、TARS、Apache Dubbo、Helidon 与 SOFA 等开源框架都提供了不错的选择。

其中 TARS 于 2017 年由腾讯开源,在腾讯内部已经应用了 12 年,打磨超过 10 年,目前使用它的产品超过 100 个,广泛应用于腾讯的在线社交、金融服务、边缘计算、汽车、视频、游戏、地图、应用市场和安全等数百项核心业务中。 

技术角度上,TARS 的特性包括:

  • 支持多种编程语言,包括 C++、Golang、Java、Node.js、PHP 和 Python

  • 可以结合各种 CI/CD 工具

  • 服务可以部署在物理机、虚拟机、容器、K8S 上,数据可以选择存储在 Cache、数据库或者文件系统上

  • 支持丰富的协议,如自研的 TARS 协议、TUP 协议,也支持业界常用的 SSL、HTTP、PB 等,此外还可以自定义协议

  • 在 RPC 调用上可以进行同步、异步和单向多种方式

  • 支持丰富的服务治理功能,包括但不限于服务注册/发现、负载均衡、自定义监控、日志、过载保护、熔断机制、IDC SET 等

  • 支持各种应用,如深度学习、边缘计算与 API 网关

以 TARS 项目为核心,今年 3 月份 Linux 基金会下专门成立了一个子基金会“TARS 基金会”,发展开源微服务生态。 

根据官方介绍,TARS 基金会致力于解决在使用微服务时可能出现的问题,包括减少开发和服务治理的难度,以及前边提到的方方面面问题。它旨在解决多编程语言的互通、数据传输、数据存储一致性等问题,并在支持海量请求的同时保证高性能。同时,作为基金会,发展的是生态,TARS 基金会希望吸纳上下游的开源项目,以建立更好的微服务生态。包含但不限于基础设施、存储、开发框架、服务治理、DevOps 和基于任何编程语言的应用。“目前基金会中已经有 30+ 项目,7 家成员组织,以及获得了覆盖游戏、视频直播、互联网工具、娱乐、交通、社交网络与金融等领域 100+ 家公司/企业的采用。 ”

在最近的一次关于 TARS 基金会近况的圆桌对话中,来自腾讯的陈德贤、阅文的马延波与虎牙的毛茂德几位技术专家与 TARS 基金会主席单致豪交流了相关话题,他们分享了各自业务中采用 TARS 进行微服务架构改造的情况。 

虎牙毛茂德介绍 TARS 在他们公司内部支撑着超过 10 个核心业务,运行的服务器达数千台,而随着游戏直播行业的快速发展,游戏直播后台服务扩展过程中管理的复杂性也随之倍增。通过 TARS 按 SET 扩容的方式,可分钟级快速部署新资源支持海量在线用户,在应用迭代研发、上线部署速度上也大幅提升;另一方面,直播中突发的大量请求需要有高度可扩展的架构来保障,其通过 TARS 的名称服务和负载均衡功能,无需手动修改配置,极大地减轻了运维人员的工作量。

TARS 的 PHP 端主要由阅文支持,在业务上阅文也深度整合了 TARS 的能力。在拥有近 60 种业务服务,MAU 超过 1.9 亿,一般活动 QPS 达到 10 万级别的阅文业务中,TARS 解决了其在服务发现、智能调度、负载均衡、容灾容错、立体化监控和可视化运营管理上的问题,马延波介绍:“架构统一之后研发效率得到极大的提升,运维成本也明显减少,整体系统的稳定性也取得了卓越的效果。并且为阅文集团的 APP 扛住了百万红包、除夕手 Q 线上联动等过亿级用户量的活动。” 

“TARS 支持了我负责过的数十条产品线,如搜索、浏览器资讯、QQ 互联、手机管家、安全、互联网+、觅影、海纳、慧眼、智能医疗、健康码等。”陈德贤则介绍了腾讯内部对接 TARS 所产生的积极影响,他认为这些产品功能都与生活息息相关,TARS 在其中提供的服务发现、容灾容错、负载均衡、区域感知与立体化监控等服务治理功能令产品团队可以加快产品创新的步伐,同时为用户提供更丰富的应用场景。

他以今年新型冠状病毒肺炎疫情场景下的应用为例,借助 TARS,电子健康卡、腾讯医典、新闻资讯、疫情 AI 自查助手等为中国防疫提供了众多助力。

最后,几位畅想了接下来开源微服务生态的发展,一方面是大家都希望可以在开源社区中更加紧密地进行合作,在生态化研发上可以为开源微服务社区做出更多贡献,使微服务生态更好地发展;另一方面,随着 5G 逐步到来,因为 5G 网络的核心基于 SOA、微服务与虚拟化技术,它将基于点对点紧耦合的 4G 网络架构转变为基于服务注册、服务发现和服务接口的基于服务的松耦合架构,那么大家希望未来可以看到 TARS 基金会开源微服务生态能在这一场景上有更长足的发展。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:TARS圆桌对话:一个开源生态,如何支撑腾讯、阅文与虎牙的十亿用户
加载中
返回顶部
顶部