TARS:Linux基金会新一代海量服务开发框架

Wesley13
• 阅读 580

本文来源:__开源中国

原文标题:__Linux基金会执行董事眼中的海量服务之道

在今年的美国加州圣迭戈开源峰会上,Linux基金会执行董事Jim Zemlin做了主题演讲。

他把由腾讯主导开源并捐献给Linux基金会的微服务RPC框架TARS定义为“New ways to scale”,一种海量服务之道。 与TARS一起在主题演讲中获得官方认证的还有Cloud Native、Let's Encrypt等多个业界知名项目。

TARS是由腾讯开发的成熟RPC框架,能快速搭建系统及自动生成代码,兼顾易用性与高性能。 同时,TARS支持C++、Golang、Java、Node.js、PHP与Python在内的多种编程语言,帮助开发者及企业以微服务的方式快速构建自己稳定可靠的分布式应用,让开发聚焦业务逻辑,有效提升运营效率。

TARS:Linux基金会新一代海量服务开发框架

2018年6月25日,腾讯宣布将TARS项目贡献给开源基金会,依托于良好的开源社区生态帮助更多开发者。

海量服务,一大框架

腾讯前CTO张志东曾用三个维度定义过互联网的海量服务: 当在线超过千万; 当索引超过百亿; 当数据超过百P。

而这些海量服务的背后,所要求的不仅是运营平台的吞吐能力,更是架构设计的合理性、前瞻性、可扩展性。

李开复先生曾经说过,如果Google采用IBM的行业解决方案的话,Google将会破产,因为在传统行业中,每个交易的造价是很昂贵的,它没有办法放量到这样的级别。 这就决定了做海量服务的架构取向,硬件、中间件都不能依赖,因为这些都是为比较小的量级的行业所设计的。

过去的20年,腾讯的用户规模经历了指数级的快速增长,每攀升一个量级,对企业的海量运营能力都是一个新的严峻挑战。 技术世界里,不存在一个完美应对任何规模互联网服务的系统。 不同量级的服务,需要不同的系统架构做支撑,此外,每增加一个规模量级,都会出现更多优化需求

10年前,腾讯没有一个统一的开发框架,每条业务线都有各自的开发习惯,每个团队也有自己使用的开发语言,技术选型上的千差万别使得开发协作出现很多问题:

  • 跨语言的通信适配非常繁重,不同团队会重复实现一样的功能组件;

  • 业务逻辑集中,耦合性强,开发维护成本高,服务模型多样化, 业务协议不统一;

  • 运维工具各异,部署管理混乱, 规范性差,管理能力薄弱;

  • 代码重复率高,性能、高可用性、 可扩展性等方面难以适应业务海量访问发展趋势;

  • 运营数据缺失,监控维度不立体, 故障时分析和查找问题困难。

随着业务规模的日益膨胀,倒逼技术团队做重构、做创新,正是在这样的背景下,TARS框架应运而生。

TARS:Linux基金会新一代海量服务开发框架

TARS是支持多协议的高性能RPC框架,为开发和运维提供了一体化的微服务治理方案。****多语言、敏捷研发、高可用、高效运营的优势,使其成为一个开箱即用的企业级产品。TARS已经在腾讯内部打磨十年之久,并在腾讯的QQ社交 、视频、游戏、地图、应用宝与管家等上百个核心业务上广泛应用,微服务规模达到百万级,完美实践了业界DevOps理念和腾讯海量服务之道。

腾讯系数百个产品,世人所周知的海量服务,都跑在这个自研的微服务框架上。 张志东分享的腾讯海量服务之道,TARS持续地迭代、优化、进化着。

发力开源,TARS前行

“我们将通过内外部开放源代码的方式,积极参与全球科技共同体的构建。 ”

“今天没有哪个国家能够完全拥有全球新一轮科技和产业所需要的全部资源、技术和能力,产业割裂和技术脱钩将会损害整个人类长远的利益。 ”

8月26日,在重庆召开的2019中国国际智能产业博览会(简称智博会)高峰论坛上,腾讯公司董事会主席兼首席执行官马化腾做了演讲。 他提到,腾讯愿意内外部开放源代码,积极参与全球科技共同体的构建。

一直以来,业界对于腾讯的产品能力的认可程度远高于其技术能力。 自2018年下半年腾讯宣布调整组织架构开始,可以看到腾讯对于发力技术建设的决心之重。 调整较大的有两大事业群,CSIG云与智慧产业事业群和PCG平台与内容事业群。 另外,更由总办成员卢山、汤道生牵头建立技术委员会,几大事业群的技术负责人悉数进入技术委员会决策圈。

推动开源协同、自研上云是技术委员会的两大关键,其中开源则是跟普通开发者关系最密切的一大利好消息。

为什么要做开源? 理由至少有三点: 一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑; 二是开源能够倒逼工程师写出更好的代码; 三是开源能够更有效利用社区的力量,一起解决难题。

截至2019年7月,腾讯拥有75个开源项目,主导的开源项目累计在GitHub获得了近22万Star,其中开源项目更是涵盖了云、游戏、大数据、AI、小程序等多个领域。 多个业务团队参与贡献OpenStack、KVM、Docker、NVDIMM、ceph、HBase、Hadoop、Linux、Spark、Kubernetes、torrent、dht、goprocinfo、flannel与netlink 等知名开源社区和项目,成为会员和maintainer,受到国际肯定和认可。

作为腾讯海量服务之道的践行者,十年微服务探索的集大成者,TARS开源回馈社区自然是水到渠成。 2017年4月,TARS正式宣布开源,社区参与度显著提升。 此后八个月中,TARS又主动进行了三个版本的迭代,涉及多种新功能、语言及ProtoBuf协议的更新。 此外,阅文集团、虎牙、优品财富与科大讯飞等项目成员也积极为TARS与TSeer贡献,带动了TARS与TSeer在金融、教育、健康医疗与政务等多个行业领域的应用。

十年磨一剑的TARS不出意外地成为了腾讯开源的招牌项目,开源仅一年时间后,Linux基金会就接受了腾讯的捐赠,成为Linux基金会的开源项目,受到基金会的认可与肯定。 不难预见,从组织架构层面发力开源的腾讯,未来必将获得更多来自工程师、技术团队的认可,吸纳更多优秀的开发者参与到腾讯发起的开源项目中。

TARS:Linux基金会新一代海量服务开发框架

本文分享自微信公众号 - TARS星球(TarsCloud)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Easter79 Easter79
3年前
TARS:Linux基金会新一代海量服务开发框架
_本文来源:__开源中国__原文标题:__Linux基金会执行董事眼中的海量服务之道_在今年的美国加州圣迭戈开源峰会上,Linux基金会执行董事JimZemlin做了主题演讲。他把由腾讯主导开源并捐献给Linux基金会的微服务RPC框架TARS定义为“Newwaystoscale”,一种海量服务之道。与TARS一起在主题
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这