乐趣区

关于开源:腾讯开源之道基于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 基金会进行孵化。

基于 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 之道内化于其本身开源理念、开源方法论和开源生态建设的实操中。
将来,或者也会有越来越多的高校、企业或组织能在腾讯构建的开放性社区中,这是一条不远的路。

退出移动版