“我们将通过内外部开放源代码的方式,积极参与全球科技共同体的构建。”
“今天没有哪个国家能够完全拥有全球新一轮科技和产业所需要的全部资源、技术和能力,产业割裂和技术脱钩将会损害整个人类长远的利益。”
8月26日,在重庆召开的 2019 中国国际智能产业博览会(简称智博会)高峰论坛上,腾讯公司董事会主席兼首席执行官马化腾做了演讲,他提到,腾讯愿意内外部开放源代码,积极参与全球科技共同体的构建。
腾讯开源文化:三步走腾讯开源始于 2010 年,于 2016 年开始快速发展,在近两年间逐步迈入正轨,建立起了良好的开源文化。2010 年,在腾讯的开放战略指导下,“开放、共享、合力开发”的研发模式开始在技术团队内部推行。
腾讯以其鼓励内部竞赛、提倡产品导向为业界所知,但这背后折射的,是腾讯在技术研发方面重复造轮子、资源使用率低等问题。技术团队习惯于先扛住、再优化,技术更多为业务和用户服务,这与开源文化之间其实存在一些背离。
2010-2015 年,腾讯首先在内部倡导开源,提倡“开放、共享、合力开发”的研发模式,可靠组件公司内部实现复用,减少重复造轮子,提升效率,这是对外开源的基础。
时间再往后拉近,腾讯也总结出了自己三步走的“开源路线”:
第一步,加强内部开源协同,主要是通过拉通组织,推动跨部门的协作;同时优化内部资源配置,在重点技术方向上集中优势,寻求技术突破;
第二步,通过对外开源引入外部资源,优化设计与代码、拓展应用场景,并且加强与外部贡献者的联系,构建起技术影响力;
第三步,通过社区的开放治理,将一些有广阔前景的项目进行大规模的技术推广以及应用,在这个过程中培养有领导力与影响力的社区技术领袖,构建起开发者生态体系,从而实现全社会研发资源的优化配置。
更进一步,2018 年下半年,腾讯宣布调整组织架构,正式成立了技术委员会,由总办成员牵头,推进开源协同。从组织架构层面强调开源,这在中国互联网科技公司里都是十分罕见的决断,也不难看出腾讯发力开源的坚定决心。正是这样战略层面的重视,自上而下地推动,才有腾讯开源在近年来的飞速发展。
Talk is cheap,show me the code近两年,腾讯频繁地出现在各个开源组织、基金会的名单上,在各大开源峰会与论坛上也总能看到腾讯的身影。但这些,只能说明腾讯开源的活跃,不能说明腾讯开源的成绩。
程序员的世界里,代码说话。
截至 2019 年 8 月,腾讯一共拥有 82 个开源项目,涵盖了云、游戏、大数据、AI 和小程序等多个领域。若干年前远远落在后面的腾讯开源,目前贡献排行已经逼近了世界前十,包括微服务框架 Tars、人工智能计算平台 Angel、微信视觉样式库 WeUI 等明星项目在开发者群体中都有不错的口碑与广泛的采用。
Tars:海量服务,一种框架Tars 是由腾讯开发的成熟 RPC 框架,能快速搭建系统及自动生成代码,兼顾易用性与高性能。同时,Tars 支持 C++、Golang、Java、Node.js、PHP 与 Python 在内的多种编程语言,可以帮助开发者及企业以微服务的方式快速构建自己稳定可靠的分布式应用,让开发聚焦业务逻辑,有效提升运营效率。Tars 是腾讯十年微服务的结晶,腾讯系数百个产品,世人所周知的海量服务,都跑在这个自研的微服务框架上。2018 年 6 月 25 日,腾讯宣布将 Tars 项目贡献给 Linux 基金会。
WeUI:Web 开发基础样式库WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一。以其开发友好的特性,WeUI 成为了不少计算机专业学生毕业设计常用的工具,并获得了广泛认可。
Angel:基于参数服务器架构的分布式计算平台Angel 由腾讯和北京大学共同开发,兼顾工业的高可用性和学术界的创新。它通过腾讯的大数据进行性能调整,具有广泛的适用性和稳定性,在处理更高维度的模型方面表现优势明显。Angel 采用 Java 和 Scala 编写而成,支持在 Yarn 和 Kubernetes 上运行。通过 PS Service 抽象,它提供了两个模块,可以集成 Spark/PyTorch 和 Parameter Server 的功能,用于分布式训练。未来将支持图形计算和深度学习框架。
Mars:微信官方终端基础组件