腾讯开源之道:基于apache之道的开源实践与探索

CSDN云计算 CSDN云计算     2022-12-18     547

关键词:

8月6日,腾讯开源联盟主席、腾讯云开源生态总经理单致豪在2021 ApacheCon Asia上分享了腾讯对Apache之道的思考、探索与实践的历程。

作为开源界备受关注的会议之一,今年的ApacheCon Asia将持续3天,开设14+分论坛,内容覆盖从大数据到搜索再到消息队列等数十个不同类别。

Apache 软件基金会成立于 1999 年,迄今为止其管理着 2.27 亿多行代码,有着206个项目管理委员会,通过精英制领导了350多个 Apache 项目和计划,有超过8,100+提交者。

从最初的“Apache小组”到如今成长为世界上最大的开源基金会之一,Apache通过其领导力、健全的社区、以及精英主义思路,铸就了著名的“Apache之道”(Apache Way),形成了一套推进开源社区可持续发展、指导开源项目实践的方法论。

腾讯开源自2010年起开始正式萌芽,在11年的发展历程中,腾讯大批工程师通过参与、应用和贡献等方式与Apache社区深度联结,并基于Apache之道,践行着腾讯的开源之道。

腾讯与Apache开源社区也持续深入合作,成为多个Apache项目的活跃贡献者,以及国内首家Apache白金会员,并推动Apache基金会在开源领域的创新。目前,除了在Hadoop、Spark等众多项目中担任Committer外,腾讯的内部团队还基于Apache中的如InLong、Ozone、Pulsar等项目实现了对业务的支撑和赋能,并形成了一套最佳实践。

Apache 之道对社区的重要指导

Apache之道是很难定义的,尽管Apache之道这些年修改了部分内容,但“高度透明性”的初心始终是未变的。在单致豪看来,腾讯从Apache之道中学习的经验归结为五条:

1、所有个人都有机会参与,并且可以成为权威。所有人都可以通过对社区的贡献获得属于自己的影响力和个人成长,以及基于公开获得的功绩和权威。

2、Apache基金会是扁平的结构。这意味着任何角色都是平等的,投票权重都相同,并且贡献是在志愿者的基础上进行,腾讯鼓励内部的工程师都积极参与Apache基金会的贡献中。

3、深知开放交流的重要性并践行。因为开源是全球分布式社区的协作,腾讯工程师参与Apache开源项目都是通过邮件列表的异步协作机制——代码、决策相关的交流都公开透明。

4、鼓励一起达成共识的决策机制。共识可以保持项目前进动力和新的生产力。但是有时候不能建立完全共识,那就需要进行投票或其他协调以帮助删除具有约束力的决定。

5、最重要的一点,“社区高于代码”的格言在 Apache 社区中经常得到加强。因为健康的社区比好的代码更重要。强大健康的社区总是可以纠正代码的问题,而不健康的社区可能会努力以可持续的方式维护代码库。此外,灵活的重要性——这也是Apache 可持续开源成功不可或缺的一部分。

Apache之道指导下的腾讯开源之道

Apache 项目及其社区都是独特但却多样化的。在社区主导的开发过程中,Apahce成员将其获得经验的总结体会凝聚为了Apache 之道。

其实,腾讯很多开源实践、成果都是在Apache之道的指导下进行的。通过长时间的开源文化基因的沉淀,形成了腾讯以“开放协作、开源向善”为驱动的开源之道,同时这也是腾讯的价值观及使命愿景,连续影响着自身的开源实践。

主导及捐赠开源项目,腾讯践行 Apache Way之始

在大数据流计算、中间件等领域,腾讯工程师在 Apache 基金会中的多个开源项目参与了主导及贡献,凭借贡献成果获得了来自基金会的认可。

1)大数据领域
例如,从4年前开始,腾讯就相继主导了 Apache Hadoop 2.8.4/2.8.5版本的发布,Apache Ozone 1.0.0版本在Hadoop社区的正式发布,后者成为了 Apache 基金会的顶级项目,同时也主导了Apache Spark 2.3.2版本的发布,并成为第一家在社区里发布Hadoop和Spark Release的中国公司。

在腾讯主导发布的Hadoop多个版本中,就涉及20多个的特性和优化。在 Spark 、Flink、HBase、Hive、MXNet、Parquet等多个计算和 AI 框架中,腾讯都是主要的核心贡献者。
此外,腾讯大数据还参与主导了Apache Ozone 的1.0.0版本,并在支持Append、truncate操作,container balancer 功能等问题上,腾讯持续在投入贡献以提升Ozone的成熟度。

2)中间件领域
2019年,腾讯将自研的万亿级大数据组件 —— TubeMQ 项目捐赠给了Apache基金会,这也是腾讯第一个捐赠到Apache基金会的开源项目,今年其正式更名为Apache InLong,目前正在Apache基金会进行孵化。

l 基于 Apache 优秀及成熟开源项目的深度应用

除了主导开源和捐赠项目,腾讯也在内部多个业务系统中应用了Apache基金会的开源项目。例如在微信、QQ、腾讯云等业务版块中,Apache的开源项目被广泛应用——既覆盖了大数据生态,如数据传输、存储、计算和分析等需求场景,也涉及 API 网关、可观测等服务治理的技术领域。

尤其是在大数据、API网关、可观测三个领域,腾讯深度应用并且贡献了Apache基金会的开源项目。

1)大数据项目代表——Ozone和Pulsar应用

腾讯大数据单日的接入消息量超过 55 万亿,实时计算量超过 65 万亿,平台整体算力超过 500 万核,日分析任务数量达到 1500 万。
作为日实时计算量最大的公司之一,腾讯需要强大的大数据平台来支撑业务的开展,其能力也不断被刷新。除自研工具外,充分应用外部优质且成熟的开源项目如Apache Ozone和Apache Pulsar ,为腾讯需要大量数据和流量的业务场景提供了支撑。

Ozone 是当前 Apache Hadoop 生态圈中新一代分布式文件对象存储系统,于去年从Apache基金会毕业并正式成为Apache顶级开源项目。它能够解决Hadoop分布式文件系统HDFS的扩展性上限,满足千亿级小文件的存储需求。

作为 Ozone的早期采用者,腾讯大数据平台已经部署了一个超过1000个节点的Ozone集群作为大数据应用的后台存储。此外,腾讯还利用Ozone作为一些私人数据仓库项目的主要存储解决方案。
目前,腾讯正将越来越多的业务接入Ozone,包括数据仓库、机器学习平台、K8S集群挂载盘等等。经过长时间的反复验证改进后,内部Ozone能够以千台以上的规模长时间稳定运行,且无须人工运维介入。在验证改进过程中,腾讯做了大量的优化工作来改进性能,提升稳定性。

作为下一代云原生分布式消息流平台,Pulsar 集消息、存储和函数式计算为一体,并采用存储与计算分离的架构。Pulsar 目前在腾讯云内部已经成功支持大量数据和流量业务场景,还有在云原生环境上的一些实践经验,例如解决快速动态扩缩容,提升集群资源的利用率、集群形态等。

2)API网关项目代表——APISIX的应用与贡献

随着服务数量和复杂度上的不断增长,越来越多企业采用了微服务的方式,API 网关也成为不可或缺的一环——使用 API 网关完成统一的流量管理和调度。

APISIX 是 Apache 去年新增的一个顶级的 API 网关开源项目,从2019年进入Apache基金会的短短一年时间就完成了毕业。这也说明了它的活跃度、健康度,且在快速的迭代发展。

对比Kong,APISIX 具有高性能、友好的开发者体验、丰富的插件能力等特征,是腾讯内部业务选择它的原因。

在APISIX的基础上,腾讯对内共享基于公司自研的云系统组件的配套支持,解决业务痛点,提供高效的API网关服务;对外向Apache APISIX开源社区进行贡献,扩大影响力,引领开源社区发展。

3)可观测领域项目代表——Skywalking在腾讯内部可观测平台的应用

随着微服务架构的流行,全链路性能监测成为服务治理需要解决的一大问题,为微服务、云原生架构和基于容器(Docker、K8S、Mesos)架构而设计的可观测工具成为首选。

Skywalking是一个用于分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8S、Mesos)架构而设计,它具有多种监控手段,语言探针和Service Mesh多语言自动探针,轻量高效且支持告警,具备优秀的可视化方案。

Apache Skywalking是吴晟个人创始项目,项目目前非常活跃,有完善的项目发展全景图和里程碑,主仓库有17,000个星星数(Stars),350个贡献者。

腾讯内部可观测平台全面兼容Apache Skywalking,Zipkin和Jaeger的客户端上报,为微服务体系的客户端tracing上报选型提供了极大的便利。同时使用计算存储分离和多层查询的机制,提供了非常优秀的性能输出。

此外,在可观测领域,腾讯最近也在使用CNCF中非常热门的OpenTelemetry项目。

三大项目,助力腾讯开源生态的建设

当然,除了Apache基金会之外,腾讯目前以顶级会员的身份,活跃在全球超过十个基金会中。基金会提供知识产权管理的框架、代码仓库、问题跟踪、技术指导、项目治理、财务和公关管理等服务,腾讯的工程师和全球开发者们在其中一起协作。

通过在多个基金会中的实践与贡献,例如Linux基金会以及全球最大的云原生开源组织CNCF基金会,腾讯吸取了比较成熟的开源组织治理模式及经验,并用于指导内部项目的对外开源。

目前,腾讯累计对外开源了130多个自主项目,获得了超过37万的Star数,贡献者人数也超过了2000人。项目覆盖了云原生、大数据、人工智能、数据库等多个技术领域,有对外专注人工智能领域的Angel开源项目和微服务领域的TARS开源项目,在KVM、OpenJDK,腾讯都位列其全球贡献者榜单前列,包括在Kubernetes、Spring Cloud、MariaDB等开源社区中,腾讯也在大力推动开源项目、产品以及解决方案的落地。

基于内部的开源项目,活跃于开源社区的经验历程,以及开源人才培养的项目,腾讯开源生态已逐步建立并不断完善。

在未来的一段时间内,腾讯云将重点通过三大项目进一步壮大腾讯开源生态的建设:

1)建立“腾源会”社区。腾源会是腾讯云成立的汇聚开源项目、开源爱好者、开源领导者的开放社区,致力于帮助开源项目健康成长、开源爱好者能交流协助、开源领导者能发挥领袖价值,让全球开源生态变得更加繁荣。

未来,腾讯希望通过“腾源会”这一中立性组织为开源交流和项目孵化搭建平台,通过开源孵化器、共创社区、开源研讨活动和实操类活动的举办,链接更多的开源项目,开源爱好者、实践者和领导者,以及全球的开源基金会、开源文化。

2)建立产业开源联合实验室。开源实验室是项目实战的落地场所。未来,腾讯云计划陆续和国内多所知名高校以及开源企业一起成立产业联合开源实验室,为在校生、科研人员以及企业内的开发者提供实战贡献代码平台,以及开源项目落地产业的场景。
此外,腾讯今年也正式发布了“犀牛鸟开源人才培养计划”,通过打造面向高校学生的开源课程和开源实践培养方案,培育开源人才、普及开源文化,助力开源人才生态的发展。
3)发布《云原生开源白皮书》。今年5月的“云原生产业大会“上,腾讯云联合信通院宣布正式启动《云原生开源白皮书》编写工作,目前该白皮书还在编写过程中,预计将在年底正式发布。

以上这些平台和项目的建设,开源实践者和企业都可以参与进来。

结语

迄今Apache基金会已经运营了22年,事实证明它是将组织结构和灵活性平衡的开放性组织建设的最佳实践之一。腾讯也在持续将Apache之道内化于其自身开源理念、开源方法论和开源生态建设的实操中。

未来,或许也会有越来越多的高校、企业或组织能在腾讯构建的开放性社区中,这是一条不远的路。

架构简洁之道:从阿里开源应用架构cola说起(代码片段)

导读:COLA的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现COLA在简洁性上仍有不足,因此给COLA做了一次“升级”,在这次升级中,没有增加任何... 查看详情

基于rnn和ctc的语音识别模型,探索语境偏移解决之道

摘要:在本文介绍的工作中,我们展示了一个基于RNN和CTC的语音识别模型,在这个模型中,基于WFST的解码能够有效地融合词典和语言模型.本文分享自华为云社区《语境偏移如何解决?专有领域端到端ASR之路&#x... 查看详情

建筑的永恒之道的介绍

参考技术A《建筑的永恒之道》是由知识产权出版社出版的图书,提出了一个关于建筑设计、建筑和规划的新的理论,该理论的核心是社会成员按照他们自己的存在状态设定他们生活的世界秩序,这一古老方式从根本上构成了新... 查看详情

编码之道:编码有术,术中有道

本周,终于进入编码之道的最核心的理念与价值观,那就是:编码有术,术中有道如果你想成为一个优秀的程序员,我写的这篇文章是你值得参考与借鉴的。这是编码之道的系列文章,这是第四篇,其... 查看详情

腾讯胡育辉:千亿黑产背后的破局之道

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~背景:5月23-24日,以“焕启”为主题的腾讯“云+未来”峰会再广州召开,广东省各级政府机构领导、海内外业内学术专家、合作伙伴及行业大咖悉数到场,共话云计... 查看详情

snapbuildyourownblock修炼之道-添加自定义类别

...象,其实是对面向过程的抽象过程而已;2、面对别人的开源项目时,需要找准源头(即项目运行的起点,当然有的是没有的哈,没有起点时,则按照使用开源项目时,其使用流程,然后一步一步的学习研究);//+-+-+-+-+-+-+-+-+-+-+-+-+... 查看详情

中国第一个apache顶级开源项目的突围之路!

【CSDN编者按】近些年开源大热,开源创业之风随之四起。作为近两年特别火的商业方向,开源创业者如何才能在一片红海中乘风破浪,在行业中占据一席之地?第一个由中国人主导贡献到ASF的顶级开源项目ApacheKyl... 查看详情

中国第一个apache顶级开源项目的突围之路!

【CSDN编者按】近些年开源大热,开源创业之风随之四起。作为近两年特别火的商业方向,开源创业者如何才能在一片红海中乘风破浪,在行业中占据一席之地?第一个由中国人主导贡献到ASF的顶级开源项目ApacheKyl... 查看详情

cmd运行java文件不显示——stream代码简洁之道的详细用法(代码片段)

一、概述Stream是一组用来处理数组、集合的API,StreamAPI提供了一种高效且易于使用的处理数据的方式。Java8中之所以费这么大的功夫引入 函数式编程 ,原因有两个:代码简洁函数式编程写出的代码简洁且意图明确,使用s... 查看详情

读懂netty的高性能架构之道

...戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Net 查看详情

又一巨头宣布入局aigc,一口气开源数个模型,还道出了它的变现之道

金磊发自凹非寺量子位|公众号QbitAIAIGC(AI生成内容),这个概念在今年可以说是火得一塌糊涂。例如StableDiffusion,只要对它说一句话,“唰唰唰”地就能秒生成画作。再如最近大火的ChatGPT,对答如流堪比... 查看详情

整洁之道如何写出更整洁的代码(上)

 如何写出更整洁的代码    代码整洁之道不是银弹,不会立竿见影的带来收益。  没有任何犀利的武功招式,只有一些我个人异常推崇的代码整洁之道的内功心法。它不会直接有效的提高你写代码的能力与速度,... 查看详情

《python黑帽子:黑客与渗透测试编程之道》读书笔记:web攻击(代码片段)

目录前言1、urllib22、开源web应用安装3、破解目录和文件位置4、破解HTML表格认证结语前言《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。书是比较老了&#... 查看详情

《python黑帽子:黑客与渗透测试编程之道》读书笔记:基于github的木马(代码片段)

...的木马结语前言《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。书是比较老了,anyway,还是本很好的书本篇是第7章基于github的木马1、github的配... 查看详情

架构实践软件架构之道:论架构的原则范式及治理

目录架构原则【什么是架构】【架构的思考维度】【架构的原则】 查看详情

架构实践软件架构之道:论架构的原则范式及治理

目录架构原则【什么是架构】【架构的思考维度】【架构的原则】 查看详情

《持续集成:软件质量改进和风险降低之道》(代码片段)

持续集成:软件质量改进和风险降低之道主旨这本书讲的是关于持续集成的原则和实践。MartinFowler关于CI的热门文章发表于2006年,这本书作于2007年,虽然十年间CI的工具已经发生了不少变迁,但本书中提到的基本原则和实践仍然... 查看详情

学术研究你的成功之道整理与感悟

花了一周的时间阅读了《学术研究,你的成功之道》这本书。可以说这本书就是在我们进行科学研究之前给我们研究新手的一盏明灯,让开始从事研究的人明确自己的研究价值并且给我们一些研究的指导,让我们少走弯路。但是... 查看详情