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

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之道内化于其自身开源理念、开源方法论和开源生态建设的实操中。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux上的js解码,使用JavaScript实现Base64编码与解码

我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码。console.log(window.btoa(window.atob(yanggb)));但是有些运行环境,比如nuxt的服务端环境没法使用window对象(window对象只有在浏览器的运行环境中…

​如何让技术想法更容易被理解?

简介: 沟通说起来简单,要做好却很难。如何把复杂的技术问题通俗易懂地表达出来,让别人听懂,是每个技术人都会面临的难题。本文作者以自身经历为背景,总结技术人员在日常技术交流过程中,遇到的一些低效的技术…

大数据,凉了?

大数据被誉为“新石油”,如何管理并洞悉数据的价值,是企业未来发展的核心竞争力。进入大数据时代,数据规模与日俱增。另一方面,数据仓库的市场份额被其他技术蚕食,比如大数据、机器学习和人工智能。这种趋势给我们造成…

2021 年前端趋势预测

简介: 2021 哪些前端技术值得关注?来听听狼叔的分享。 知乎上,有人提问《2021前端会有什么新的变化?》 狼叔的回答二天超过6.1万阅读量,目前444个赞同,2个专业徽章,整体上看,这篇回答…

详解 Flink 容器化环境下的 OOM Killed

简介: 本文将解析 JVM 和 Flink 的内存模型,并总结在工作中遇到和在社区交流中了解到的造成 Flink 内存使用超出容器限制的常见原因。由于 Flink 内存使用与用户代码、部署环境、各种依赖版本等因素都有紧密关系,本文主要讨论 on YARN 部署、…

哈哈!TCP泄露了操作系统信息···

作者:轩辕之风O来源: 编程技术宇宙前言大家好,我是轩辕。前几天,我在读者群里提了一个问题:这一下,大家总算停止了灌水(这群人都不用上班的,天天划水摸鱼),开…

android 自定义view控件,Android 自定义View——自定义View控件

Android给我们提供了大量的View控件,但这还是远远满足不了我们的要求,有时候开发所需要的控件形式是在Android提供的控件中是不存在,这就需要我们自己去定义一个。那么如何自定义控件?学习自定义控件,首先要先掌握Canv…

解读容器的 2020:寻找云原生的下一站

简介: “云原生”到底是什么?它就是容器和 Kubernetes 吗?虚拟机是云原生的吗?…… 2020 年注定是不凡的。它在阴霾中开始,在惊叹中结束,也让未来变得更加扑朔迷离。那么,容器与云原生的 2020 年…

如何用好云的弹性

简介: 如何用好云的弹性 1. 弹性为什么这么重要 做好弹性让IT能力轻松跟上用户的业务发展,做到多、快、好、省。 多:选择多,可以全球建站、机型选择也多、配套云服务也多。 快:部署快,自建IDC的建设时长以…

android笔试添加自定义服务,Android之Listview(item为单选题)自定义adapter,像考试时前面的10几道单选题的实现...

用于展现重复性的东西,Listview比较好用,看了别人的自定义Adapter(item是EditText,能够很好地获取到每一个item的EditText值)。又由于在做项目的需要,故特制了一个item包含RadioGroup的Listview的自定义Adapter。主要功能&#xf…

实现工具自由!开源的桌面工具箱

来源: HelloGitHubRubick,因为开源所有更自由在一切开始之前,首先要致敬 uTools!如果没有它就没有 Rubick。大家好,我是“拉比克”(Rubick)项目的作者木偶。我做的 Rubick 是一款基于 Electron 的开源桌面工具箱&#…

测试一年多,上线就崩溃!微服务到底应该怎么测试?

简介: 只有了解风险,才能及时应对,保障服务高可用。 不久前,也就是11月16日,澳大利亚交易所(Australian Securities Exchange, ASX)上线了一个新的交易系统,但因为出现故障而被迫关闭…

阿里云熊鹰:基于融合、协同系统的边缘云原生架构演进和实践

简介: 云原生和边缘计算是近两年都非常火的技术话题了,在第十届云计算标准和应用大会上,阿里云高级技术专家熊鹰分享了《基于融合、协同系统的边缘云原生架构演进和实践》,希望通过介绍现在阿里云在边缘计算和边缘云原生这些技术领…

漫画:什么是 “建造者模式” ?

作者&#xff1a;东风玖哥来源&#xff1a; 程序员小灰————— 第二天 —————————————————首先&#xff0c;我们来定义一个Product类&#xff1a;public class Product {ArrayList<String> parts new ArrayList<String>();public void add(S…

阿里云云效何勉:云原生是“精益实践”的最佳助力

简介&#xff1a; 1月15日&#xff0c;国内知名“精益产品开发”研究和实践者、阿里云云效资深技术专家何勉在阿里云《云计算情报局》线上直播栏目中&#xff0c;分享其对研发新模式的最新思考&#xff0c;提出“下一代精益开发方法”&#xff0c;助力企业在研发效能上提升10倍…

开发效率提升15倍!批流融合实时平台在好未来的应用实践

简介&#xff1a; 本文由好未来资深数据平台工程师毛祥溢分享&#xff0c;主要介绍批流融合在教育行业的实践。内容包括两部分&#xff0c;第一部分是好未来在做实时平台中的几点思考&#xff0c;第二部分主要分享教育行业中特有数据分析场景。 1.背景介绍 好未来介绍 好未来是…

那些公司都配不上我,所以我选择创业

【CSDN 编者按】她&#xff0c;一个89年的农村姑娘&#xff0c;从种蘑菇到卖煤球&#xff0c;再到敲代码做云原生&#xff0c;成为企业创始人&#xff0c;一路走来她都经历了哪些困难与挑战&#xff0c;对于新生代程序员又有哪些建议&#xff1f;让我们一起来看看她是怎么说的。…

如何跑通第一个 SQL 作业

简介&#xff1a; 本文由阿里巴巴技术专家周凯波&#xff08;宝牛&#xff09;分享&#xff0c;主要介绍如何跑通第一个SQL。 一、SQL的基本概念 1.SQL 分类 SQL分为四类&#xff0c;分别是数据查询语言&#xff08;DQL&#xff09;、数据操纵语言&#xff08;DML&#xff09…

云原生DevOps的5步升级路径

简介&#xff1a; 究竟什么是云原生DevOps呢&#xff1f;我们认为&#xff1a;云原生DevOps是充分利用云原生基础设施&#xff0c;基于微服务/无服务架构体系和开源标准&#xff0c;语言和框架无关&#xff0c;具备持续交付和智能自运维能力&#xff0c;从而做到比传统DevOps更…

数据创新的四个陷阱

简介&#xff1a; 数据的重要性在当今已经无需在多言&#xff0c;所有的企业都意识到数据的重要性&#xff0c;都希望利用数据来驱动业务的发展。但是&#xff0c;很多企业信息化管理者依然存在对于数据智能&#xff0c;数据驱动的一些误解&#xff0c;这些误解会让企业的数据利…