可信开源项目分享之细说TARS开源发展之路

Posted 云计算开源产业联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可信开源项目分享之细说TARS开源发展之路相关的知识,希望对你有一定的参考价值。


2020年上半年中国信通院完成首批可信开源项目评估工作,经过报名、项目自评、技术测试、远程审查等一系列流程,在2020年6月5日举办“OSCAR,开源先锋日—云原生专场”直播中公布了通过首批可信开源项目评估的四款开源项目,分别是DevOps研发平台腾讯蓝鲸CI、高性能RPC开发框架TARS、分布式数据库中间件Apache ShardingSphere和消息中间件Apache RocketMQ。


以下是高性能PRC开发框架TARS的核心贡献者王永鑫老师在直播中的演讲摘要:


可信开源项目分享之细说TARS开源发展之路


今天我们来聊聊TARS开源发展之路。


内容包括:微服务介绍、TARS项目介绍、TARS的应用和社区发展、TARS在Linux基金会的发展以及TARS基金会。


可信开源项目分享之细说TARS开源发展之路


二十世纪六十年代起,互联网开始兴起。最初的开发大多为单体架构这种形式,MVC、RPC、C/S、B/S等架构随之出现。在二十一世纪初,带着多语言、服务治理的微服务概念出现,一系列我们耳熟能详的微服务框架随之被开发,包括TARS、spring cloud、grpc等。最近也出现了serverless和基于微服务的service mesh等新概念。


可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路


根据谷歌搜索趋势来看,从2014年起,微服务的搜索量出现指数型增长。


其实从很多年起,来自不同行业的各种公司就纷纷把自己的业务架构更新为微服务架构。比如09年做视频的netflix就更新了自己的架构。著名游戏公司supercell、交通网络公司uber、电商平台ebay、运营商karma也是如此。


可信开源项目分享之细说TARS开源发展之路


微服务是趋势,但是这样的架构自身也存在了一些问题。


开发难度大:微服务多是跨机器甚至跨机房调用,开发人员需要处理超时、网络异常等通信问题。微服务之父martin Fowler也在自己博客表示开发上和debug上其实是有一定难度的。多语言互通:现在的开发语言数量很多,不同程序员也有其偏好,难以统一。前端、后台,甚至不同技术栈开发语言互通存在困难。


服务治理难:分布式系统比单体应用架构复杂,随着服务数量增加,服务治理复杂性增加;


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


数据一致性:数据传输、存储、事务处理时的一致性需要得到保障。


可信开源项目分享之细说TARS开源发展之路


TARS是腾讯开源的高性能和多语言的微服务开源项目,目前支持多种编程语言( C++、Golang、Java、Node.js、php )进行微服务开发及治理,并且通过一体化运营可视平台对服务进行全生命周期管理。TARS可以帮助开发人员和企业快速构建自己稳定可靠的分布式微服务应用,从而令开发人员只关注逻辑,提高运营效率,加快业务创新的节奏。多语言、敏捷研发、高可用和高效运营的特性使TARS成为企业级产品。TARS在腾讯经过10多年的大规模使用和迭代,广泛应用于腾讯百项核心业务中。


可信开源项目分享之细说TARS开源发展之路


目前行业内比较通用的开源微服务框架可以分为四类,分别为:


无服务治理功能,专注于通信框架,如:gRPC、Thrift;

服务网格架构,支持服务治理和解决多语言问题,目前社区处于发展期,如envoy、Istio;


单语言带服务治理框架,单一编程语言实现,Java 语言为主流,如:Spring Cloud;


多语言带服务治理框架类,可在通信框架的基础上支持完整的服务治理能力,并且支持多种编程语言,如:TARS。


可信开源项目分享之细说TARS开源发展之路


TARS支持多种编程语言( C++、Golang、Java、Node.js、PHP ),python和.net也在支持中,TARS也结合了CI/CD工具。可以部署在物理机、虚拟机、容器、k8s上,数据可以选择存储在cache、数据库、file system。往上协议上支持TARS协议、TUP、SSL、http、protocol buffers以及自定义协议。RPC调用上可以同步、异步和单向调用。如前面所说,TARS支持服务治理,包括且不限于,服务注册发现、负载均衡、自定义监控、日志、过载保护、熔断机制、IDC SET等。往上TARS可以支持各种应用,包括且不仅限于大数据、深度学习、区块链等


可信开源项目分享之细说TARS开源发展之路


TARS有四大特性,对用户透明的实现让用户专注于逻辑实现、rpc调用的方式使业务开发快捷、高性能、丰富的拓展能力以适应不同的业务场景。


可信开源项目分享之细说TARS开源发展之路


通过封装让协议、通信、服务治理等相关功能由框架完成,让开发者聚焦业务逻辑本身。


接口代码自动生成,实现业务快速开发


可信开源项目分享之细说TARS开源发展之路


只需要编写TARS文件,即可通过工具自动生成服务端和客户端接口代码。业务只需要编写业务逻辑即可


可信开源项目分享之细说TARS开源发展之路


在同样的物理条件下,压测结果显示TARS的性能甚至是grpc和spring cloud的5倍。


可信开源项目分享之细说TARS开源发展之路


TARS有丰富的扩展能力。如前文所说TARS支持多种语言,包括http,ssl,pb以及各种自定义协议与边界系统的对接上,TARS提供RPC_Call+注册自定义协议的方式和供TUP(TARS Uni-Protocol)协议,解决TARS服务和边界系统的服务的互相调用TARS给业务开发开放了网络通信底层连接的上下文,方便定制化push相关协议,可实现PUSH能力。


支持单向调用的能力,满足一些并不关注调用返回结果的场景,比如流量、延时、超时等统计信息的采集。


可信开源项目分享之细说TARS开源发展之路



开发框架、Registry、node和基础服务集群协同工作,透明完成服务发现/注册、负载均衡、鉴权、调用链等等服务治理相关工作


可信开源项目分享之细说TARS开源发展之路


在服务治理中常常遇到一些问题。TARS提供一些特有的能力。比如当跨IDC调用时可能出现较大的时延。TARS可以通过registry实现自动区域感知,以降低延时减少带宽消耗和提高容灾能力。


可信开源项目分享之细说TARS开源发展之路


根据业务功能特征对部署进行规范化和标准化,以SET为单元进行部署。


优点包括有效防止故障扩散、实现海量服务的高效运营、通过Registry和开发框架配合实现快速动态构建Set模型


可信开源项目分享之细说TARS开源发展之路


在TARS上对服务进行配置非常简单。一行代码即可启用。在TARS的可视化界面上可以进行模版配置和业务配置。方便运维


可信开源项目分享之细说TARS开源发展之路


TARS开发只需要三步:服务端开发、在TARS界面上部署发布和客户端开发


可信开源项目分享之细说TARS开源发展之路


这是TARS的可视化界面示例。这里运维管理界面的。


可信开源项目分享之细说TARS开源发展之路


这是服务管理界面的。


可信开源项目分享之细说TARS开源发展之路


针对不同的行业,TARS提供不同的微服务解决方案以解决行业特定的问题。


可信开源项目分享之细说TARS开源发展之路


比如在游戏行业,随着在线游戏的发展,随着用户规模、服务规模的扩大,服务管理的难度随之增加。TARS的IDC、SET模型能让游戏在扩容时不影响到现有的服务。


可信开源项目分享之细说TARS开源发展之路


和游戏用户逐渐增长不同,在视频直播场景下会出现突发海量请求的情况。就像在国庆节时直播阅兵的盛况,这是对框架的扩展性和面对无法预测的海量请求时保持高性能的考验。TARS的名字服务、负载均衡支持设备扩容后自动识别调用,无需人工干预配置


可信开源项目分享之细说TARS开源发展之路


5G借鉴了IT业界成熟的SOA(面向服务的架构)和MSA(微服务架构)。它将基于点对点紧密耦合的4G网络架构转换为基于服务注册,服务发现和服务接口的基于服务的新的松耦合架构。TARS框架强大的服务治理能够很好的实现,同时,TARS的灵活性,可自如应对未来5G可能使用的其他协议的引入,帮助在5G协议快速敏捷开发迭代中,保证产品质量。


可信开源项目分享之细说TARS开源发展之路


金融行业包括银行、保险、证券等,都在他们的互联网业务中尝试使用微服务架构。由于庞大的银行开发系统,IT体系结构的更改需要满足一个最重要的问题,即数据一致性。


可信开源项目分享之细说TARS开源发展之路


近期TARS在边缘计算上的应用日益广泛,包括在akraino中也应用在好几个blueprint中。由于长距离数据传输会导致较长的延迟,因此面对时间敏感的应用来说是一个很头疼的问题。基于TARS搭建的MEC平台可以作为paas层嵌入这样的app中,从而解决这类问题。


可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路


TARS于2017年4月10日开源。从github数据可看出,TARS这三年,star数增长了将近五倍,fork数也到达了快八倍,使用者增长了60%以上。社区日渐壮大。从各个维度来说,TARS的社区是比较健康的。TARS也于2018年6月25日捐赠给了全球最大的非盈利开源组织Linux基金会。这些年来TARS团队积极参与各种行业峰会,比如开源峰会、gopher、kubecon、举办go语言沙龙等等,为推进开源技术及微服务技术贡献力量。期间TARS也赢得了很多荣誉,感谢大家的认可。


在社区发展的同时,TARS不断把自身的组件解耦出来开源。包括已经开源的TSeer、DCache,还有在积极规划中的tconfig和tmonitor和trpc。同时正在尝试TARS与k8s结合、部署在Arm服务器。TARS也在积极探索与service mesh和serverless等结合的方式。


TARS从2017年开源至今,平均三个月发布一次新版本,不断完善和发展自身,支持更多语言、协议等。


可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路
可信开源项目分享之细说TARS开源发展之路


Linux基金会董事Jim也时常在各种大会上提及TARS并肯定其发展。在2020年3月10日,Linux 基金会正式宣布,旗下的 TARS 开源项目成立 TARS 基金会。


可信开源项目分享之细说TARS开源发展之路


TARS 基金会是一个专注于微服务领域的开源软件基金会,致力于构建一个健康并且开放的 微服务开源生态,并努力解决之前提及到的微服务现仍存在的问题。


可信开源项目分享之细说TARS开源发展之路


如何解决打造微服务开源生态?众所周知,项目是非常重要的,不同的项目在不同的领域都有着自己的舞台,欢迎更多的项目加入TARS基金会,一起探索微服务。


可信开源项目分享之细说TARS开源发展之路


基金会设置了董事会、技术监督委员会以及用户社区。董事会致力于为基金会把握方向;技术监督委员会会对基金会项目以及技术发展进行监督和指导。用户社区会根据项目的种类/工作的性质分为不同的特别兴趣小组。


欢迎大家从一个PR开始,成为Contributor,之后更有机会成为如上的各种角色,加入到我们的基金会的各种组织之中,共同探索微服务技术发展方向。


可信开源项目分享之细说TARS开源发展之路


现在,TARS基金会正在联合LF开源大学发展培训和认证课程。第一期的培训课程也在开发之中,并且会在今年秋季前上线。


可信开源项目分享之细说TARS开源发展之路


随后,我们也将开展TARS基金会的认证程序。欢迎大家关注。


可信开源项目分享之细说TARS开源发展之路


感谢大家的聆听,欢迎大家积极参与贡献微服务项目,欢迎加入到TARS基金会,共同打造微服务生态!

精彩内容推荐







点击下方"阅读原文"进入OSCAR联盟官网


以上是关于可信开源项目分享之细说TARS开源发展之路的主要内容,如果未能解决你的问题,请参考以下文章

首批可信开源项目评估结果正式发布!

解读|TARS开源项目发布Go语言版本

腾讯开源项目TARS将成立单独的TARS基金会

开源推荐-C++开发的微服务框架Tars

开源项目:腾讯推出高性能 RPC 开发框架

干货 | PHPCon 上 TARS-PHP 全面解读及 PPT 下载