Github 向左,腾讯向右 -IT 巨头们的殊途同归

近日世界上最大的开源网站 Github,推出手机 APP 的消息占据了各大科技媒体的头条,我们知道移动端既不合适写代码,也不适合读代码,只能进行点赞和互动,这不禁让整个程序员群体惊呼 Github 真的要转型同性交友吗?

无独有偶,社交网络巨头腾讯近日重磅开源项目不断,先是物联网操作系统 Tencent Tiny OS 横空出世,创造了迭代速度与内核精简性的的新高度;后来号称日均处理消息 25 万亿条的分布式消息中间件系统 TubeMQ 也重磅开源。笔者刚刚在上 Github 做了一下统计,目前腾讯在 Github 上发布的总项目数达到 90 个,Star 数破 26 万;虽然对比国内另一个 IT 巨头阿里巴巴还有不少差距,但是腾讯这样的开源成绩也远超笔者预期。

腾讯为何拥抱开源

腾讯的企业文化强调竞争,其内部竞争机制在业内是可谓如雷贯耳,甚至连微信都是激烈内部竞争胜出的项目,而开源是共赢的逻辑,和竞争从理念呈矛盾关系。那么腾讯又为何要拥抱开源呢?笔者总结有以下三点原因:

开源之争既标准之争:笔者在《找到 Tiny OS 的创始人,畅谈新时代的爆款“物联网”》( https://blog.csdn.net/BEYONDMA/article/details/103096369)曾经提到过开源之争就是 20 年前的标准之争。谷歌的深度学习框架 Tensorflow 成为人工智能方面的行业标准,靠的就是开源用户的口口相传,可以说谁掌握了最流行的开源项目,谁就掌握了话语权,从而主导行业的发展方向。

开源之争就是入口之争:目前各大 IT 厂商之所以推出自己的操作系统、AI 框架开源项目,其实本质的商业逻辑还是争夺用户的入口流量,可以说谁掌握流量入口谁就能在未来竞争中掌握主动。

开源之争就是全栈之争:目前类似于腾讯、阿里这种的企业大多将自己整个技术栈的从前端到后端全部进行开源,这种策略就是巩固自身在全技术栈的领导优势,供行业其它参考者模仿,为自身的品牌价值及技术能力宣传造势。

所以开源实际是最高形式的竞争,整个社区的认可才是最高的认可。

腾讯的开源成绩单

11 月 7 日,腾讯 Techo 开发者大会开源技术分论坛上,腾讯首次公开表示其开源计划目前已进入“深水区”,改变过去“自下而上”的开源模式,向“自下而上”与“自上而下”相结合的协同式开发演进。腾讯开源将在内部协同共建的基础上,推动更底层、更重磅的技术对外开放,紧密参与开源社区建设,不断完善开源治理,打造开发者共建的生态。

腾讯目前已加入 Linux、Apache 等 9 大开源基金会,深度合作成为最高级别会员,并向开源基金会捐赠 3 大优秀开源项目。2018 年 6 月,腾讯将高性能 RPC 开发框架 TARS,及其轻量化名字服务方案 TSeer 捐赠给 Linux 基金会;2018 年 8 月, 腾讯将业界领先的深度学习框架 Angel 捐赠给 Linux 旗下专注人工智能的 LF AI 基金会;2019 年 9 月,腾讯万亿级分布式消息中间件 TubeMQ 正式对外开源,也已捐赠给 Apache 基金会,成为官方认可的 Incubator 项目。

揭秘 TubeMQ 的性能秘籍

TubeMQ(Github 地址:https://github.com/Tencent/TubeMQ/)是腾讯自研的分布式消息中间件系统(MQ),特别擅长进行海量数据的存储和传输,相较其它主流 MQ 组件,TubeMQ 所经历的考验可谓是最多的,毕竟最高日交易量 33 万亿的数据摆在这里,笔者相信在 TubeMQ 今后会迅速取代 kafka 成为 MQ 软件系的新 C 位。其架构图如下:

    

Portal:包括 API 和 Web 两块,API 对接集群之外的管理系统,Web 是在 API 基础上对日常运维功能做的页面封装;
Control:由 1 个或多个 Master 节点组成,Master HA 通过 Master 节点间心跳保活、实时热备切换完成(这是大家使用 TubeMQ 的 Lib 时需要填写对应集群所有 Master 节点地址的原因),主 Master 负责管理整个集群的状态、资源调度、权限检查、元数据查询等;
Store:由相互之间独立的 Broker 节点组成,每个 Broker 节点对本节点内的 Topic 集合进行管理,包括 Topic 的增、删、改、查,Topic 内的消息存储、消费、老化、分区扩容、数据消费的 offset 记录等,集群对外能力,包括 Topic 数目、吞吐量、容量等,通过水平扩展 Broker 节点来完成;
Client:以 Lib 形式对外提供,大家用得最多的是消费端,相比之前,消费端现支持 Push、Pull 两种数据拉取模式,数据消费行为支持顺序和过滤消费两种。对于 Pull 消费模式,支持业务通过客户端重置精确 offset 以支持业务 extractly-once 消费,同时,消费端新推出跨集群切换免重启的 BidConsumer 客户端;
Zookeerper: 仅做 offset 的持久化存储,考虑到接下来的多节点副本功能该模块暂时保留。
总的来说:Kafka 按照顺序写顺序块读的模式实现,单实例下性能数据很强,但随着实例数增多,它的性能就呈现不稳定下降状态;TubeMQ 采用 顺序写 + 随机读的模式,即使在最大限制下系统仍可以做到长期稳定的 1G 以上的入流量,同时,结合服务端过滤,过滤消费非常顺畅。
总的来说与 Kafka 按照顺序写顺序块读的模式不同,TubeMQ 采用 顺序写 + 随机读的模式,所以 Kafka 单实例下性能数据很强,但随着实例数增多,就是 TubeMQ 的天地了,即使在最大限制下系统仍可以做到长期稳定的 1G 以上的入流量。

开源巨头玩社交

可能有的读者会问 Github 不就是推出个 APP 嘛,怎么就和社交联系到一起了呢。其实正如前文所述开源网站最核心的两个功能就是编写代码和阅读代码,而这两个功能在手机上的表现不会太好,而移动端最能发扬光大的功能就是回复 ISSUE 和点击 STAR 了。

 

随着移动 APP 的推出,必将使 Github 这个开源巨头走向社交领域,而且从 GitHub 的高管的发言中也能看出端倪:

CEO Nat Friedman 为 APP 站台时表示“我敢打赌,五年内在 GitHub 上进行的互动有一半以上将在移动设备上进行”,

工程副总裁 Dana Lawson 则说:“这有点像是在完善 GitHub 体验,使用移动设备,你可以管理、分类和清除通知,对拉取请求进行协作,当被直接提及时也可以接收推送通知。”

Github 在全球共有 4000 多万注册者,但和真正的社交巨头如脸书和腾讯相比还有不少差距,若想真正走向盈利,Github 有继续做大的动力。而且考虑到开源社区用户多为程序员且粘性较高,所以用户群体也有继续对外辐射的潜力。

Github 移动 APP 带来的新逻辑

随着 APP 的推出 Github 进入社交领域,第一要务就是吸引非 IT 人员注册使用,随着用户人数的增多,Github 的 APP 肯定会照顾非专业人士的使用体验,那么也就必将引入腾讯系用户体验至上的产品逻辑。

媒体化趋势:Github 目前只是专注于开源平台的建设,还没有独立的科技新闻媒体运作,但是随着 APP 的推出,其首先要做的就是推送第一手的开源资讯。所以笔者猜测 Github 肯定会成立媒体团队,投放相关资讯。

Wiki 与 Demo 的重要性大大提高:目前 Github 上获得 star 基本上是靠项目的硬核实力,遵循“Talk is cheep,Show me the code”的逻辑,但随着用户群体的多元化,单纯的硬核不见得 work 了,而腾讯这种重要用户体验的公司其 star 数可能会大大提升。

IT 巨头的殊途同归

Github 玩社交为的是做大;腾讯拥抱开源为的是做强,虽然逻辑不同,但是随着行业的不断发展,我相信在 Github 的用户中会出现更多妹子的身影,同时笔者也希望在 Github 看到更多如 Tiny OS、TubeMQ 等优质项目国产自研的开源项目,推动整个国内技术水平的提升。
————————————————
版权声明:本文为 CSDN 博主「beyondma」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BEYONDMA/article/details/103098694