php 开源轻博客系统 腾讯开源:从内部开源到开源社区一员大将的跨越(图)php 开源轻博客系统
2022-04-16
腾讯科技报15万星,57个开源项目涵盖人工智能、移动开发、小程序、架构、系统等前沿技术领域——这是6月26日上午,腾讯移动互联网事业群总经理刘鑫作为腾讯开源顾问和基金会理事,在LC3(++)国际开源盛会上介绍了腾讯的部分开源成果。
六年来,腾讯开源坚持提升开发者体验,从内部开源到外部开源,实现了从开源新兵到开源社区普通成员的跨越。
腾讯的开源始于2010年,在开放战略下,内部实行“开放、共享、共同开发”的研发模式。迄今为止,已有8000多个优质项目在腾讯内部广泛应用,跨团队、跨部门、跨业务。这为腾讯对外开源打下了坚实的基础。
2016年以来,腾讯不断发布内部开源的优质项目,腾讯开源逐渐进入快节奏时代。仅在 2017 年,就有近 20 个项目开源。其中有全球十大前端开发工具WeUI、阅文集团、科大讯飞等公司广泛使用的微服务框架TARS、可快速搭建大型机器学习平台的AI开源项目等优秀的国际社会高度认可的项目。开源项目。
但是,要深度融入开源社区,不仅需要项目发布,还需要社区参与。“我们非常重视社区治理的理念。好的开源不仅仅是代码和程序,而是建立在它之上的规则和制度的社区,它超越了代码。” 今天,腾讯对开源的积极贡献可见于、CNCF等国际主流开源社区。在本次大会上,腾讯成为基金会白金会员,并宣布将捐赠TARS和两个自研开源向基金会采购项目。
“腾讯适合开源吗?我想答案显然是肯定的。” 在刘欣看来,腾讯能源基于扎实的技术积累,不断向开源社区输出优质项目,推动社区蓬勃发展。同时,公司也从开放、互助、创新的开源生态中获取养分,以更低的成本改进关键战略技术,与开源合作伙伴形成互惠互利的关系。
刘欣讲话全文如下:
腾讯的开源始于2010年,近两年逐渐走上正轨。腾讯的企业文化鼓励内部竞争和产品导向。团队习惯于先抵制再优化,强调技术服务于业务和用户。因此,腾讯在开源初期面临诸多困难,迫切需要自上而下的战略规划。
2010年至2015年,腾讯内部率先倡导开源,倡导“开放、共享、共同开发”的研发模式小程序开发,可靠组件公司实现内部复用,减少重复造轮子,提高效率。这是一个培养观念和习惯的过程。我们首先通过内部开源的方式试水,好的项目会被广泛的跨团队、跨部门、跨业务使用。这是对外开源的基础。
2016年,腾讯开始在互联网上发布非常好的开源项目。那个时候,一个项目从内到外通过开源合规审计需要长达 3 个月的时间。对于企业做开源,特别是在和基金会合作的过程中,我们发现合规是一个基本要求,非常重要。所以今年我们加紧工作,完善开源合规流程,和法务同事合作,效率翻了三番。
2017年,腾讯对外开源开始进入快节奏时代。今年,腾讯开源了近20个项目,涵盖云计算、腾讯游戏、腾讯AI、腾讯安全、小程序等相关领域。这些都是通过腾讯的众多明星。有大量业务考察的项目对外开放。一旦开源,它们立即引起了社区的关注。“做开源,腾讯是认真的。”
截至2018年6月,腾讯发起的开源项目累计Star数近15万,获得国内外关注和认可。今年,我们非常重视社区治理的理念。好的开源不仅仅是代码和程序。,它是一个建立在建筑物之上的规则和系统的社区,它超越了代码。在内部,我们成立了开源管理办公室,每个开源项目都有相应的管理委员会。对外,我们积极与开源社区合作。上半年,我们有3个项目加入了基金会的运作,我们还赞助了LC3会议。,搭建腾讯开源展台和TARS开源项目,
未来,腾讯将持续输出优质开源项目,参与CNCF等社区建设,贡献代码。同时,我们将探索一些能够让开源产生价值并形成长期活力的商业模式。
腾讯目前共有57个开源项目,重点关注人工智能、移动开发、前端、小程序、后端/架构、数据库/存储、平台/系统、组件/工具,还有一些是经典的技术架构,如作为微服务框架 Tars 和名称发现框架,腾讯内部已经积累了 10 年,并通过了 100 多项业务测试。
有些是流行的技术领域。比如在人工智能领域,腾讯开源了高性能分布式机器学习平台和移动应用网络前向计算框架NCNN等;基本样式库Weui和小程序开发框架Wepy等,可以在腾讯公众号了解更多。
在腾讯目前开源项目的社区数据指标中,Star 数最高的 WeUI 项目拥有1.90,000 Star,成为全球前十大前端开发工具。星以上项目5个,5000星以上项目9个,3000星以上项目16个。这说明腾讯的开源项目深受开发者的关注,证明了项目本身的高质量和腾讯的技术实力。
在腾讯开源提交量最高的10个项目中,社区平均提交量占开源后总数的25%。腾讯致力于与社区开发者一起构建更广泛的开源生态系统。
腾讯的开源项目与社区保持着健康良好的互动,关闭PR的比例非常高,甚至达到了100%,这也说明项目的社区参与度和项目开发者的反馈速度非常快。腾讯的开发者正在积极回应和回应他人提出的关于项目的问题,让社区开发者保持对项目的信心并积极参与,帮助项目共同建设,让这些开源项目越来越好。
此外,除了独立的开源项目,腾讯还积极参与与国际开源社区的互动,加大在开源领域的投入,参与国际通行的协作方式,成为开源的积极贡献者。源社区,发挥中国企业的科技力量。
相信通过这些数据和案例,大家应该对腾讯的开源有了更直观的印象。
生态对于开源项目非常重要。围绕一个项目有开发者、贡献者、管理委员会,甚至下游制造商和交付团队。这些都是项目长盛不衰、不断优化的保障。
腾讯目前正在探索构建生态的途径,主要从以上几条路线:与TARS等基金会合作,开发商业版本如培育微信等开发者生态,制定行业标准如蓝鲸。然而,这些具有商业生态的开源项目大多最初都是自下而上发生的。它可能是一个服务内部使用多年的项目,也可能是几个程序员为了方便协作而构建的库。项目的生态定位需要明确,但比定位更重要的是对开发的热情和开源的乐趣。
接下来,我将举几个例子。
TARS和是腾讯MIG无线运营部研发团队10年前开发的微服务开发框架和名称服务框架。经过 10 年的打磨,去年它们都开源了。
十年前,腾讯没有统一的开发框架,每个业务都有自己的开发习惯,每个团队也有自己的开发语言,导致开发协作出现很多问题。比如不同语言之间的通信适配很重,不同的团队会重复实现相同的功能组件,代码质量参差不齐。有时,一些团队未能实施业务灾难恢复。有些团队为了快速上线,直接在代码中写死IP。有的后台开发团队没有平台搭建者,很多操作需要登录服务器,导致误操作。基于以上痛点,TARS应运而生,完美解决了开发和运维日常工作中遇到的所有问题。TARS 是基于 TARS 协议的高性能 RPC 框架,为开发和运维提供一体化的微服务治理解决方案。具有多语言、敏捷研发、高可用、高效运营等优势,为公司带来开箱即用的企业级产品。也完美体现了行业理念和腾讯海量服务的方式。为公司带来开箱即用的企业级产品。也完美体现了行业理念和腾讯海量服务的方式。为公司带来开箱即用的企业级产品。也完美体现了行业理念和腾讯海量服务的方式。
目前,TARS已经成为腾讯应用最广泛的微服务治理开发框架和运营平台。已为数百种产品提供服务,微服务规模已达百万级。但是,仍然有一些服务还没有使用 TARS 框架,迫切需要一套可以与非 TARS 开发框架进行通信的命名服务。
就是这样一个计划。先知的意思是先知。先知原指对宇宙、人类社会或自然科学中的重大事件有较早认识或准确预测的人。我们在北京有一个开发团队。本来,我们并没有统一的开发框架。由于外部同质化产品的激烈竞争和业务逻辑的复杂性,我们无法在短时间内将其完全重构为 TARS 服务。在时间紧迫、任务繁重的情况下,轻量级的名称服务是他们的最佳选择。它是 TARS 名称服务功能的轻量级。它轻巧灵活,对业务的干扰较小。在服务发现的核心功能之上,还支持四种负载均衡算法:轮询、随机、静态权重、和一致性哈希,并提供可靠的容错策略,例如调用报告、故障屏蔽、定时检测和缓存调用。IDC、SET等多种分组策略,可以有效解决跨地域、跨机房通话等问题,大幅提升服务可用性和通话质量。用户可以根据需要选择使用 API 两种访问方式,方便快捷。它在腾讯内部的许多业务中被广泛使用,目前每天承载数百亿的请求。是微服务框架中优秀的名称服务解决方案。IDC、SET等多种分组策略,可以有效解决跨地域、跨机房通话等问题,大幅提升服务可用性和通话质量。用户可以根据需要选择使用 API 两种访问方式,方便快捷。它在腾讯内部的许多业务中被广泛使用,目前每天承载数百亿的请求。是微服务框架中优秀的名称服务解决方案。IDC、SET等多种分组策略,可以有效解决跨地域、跨机房通话等问题,大幅提升服务可用性和通话质量。用户可以根据需要选择使用 API 两种访问方式,方便快捷。它在腾讯内部的许多业务中被广泛使用,目前每天承载数百亿的请求。是微服务框架中优秀的名称服务解决方案。
TARS团队一直与各类企事业单位进行深入的技术交流与合作:与中国信息通信研究院合作建立国内微服务相关标准;与大唐移动合作,共同开发基于TARS的5G核心网SBA架构;与财付通合作开发基于TARS的银行核心网络系统。同时,TARS 在腾讯之外也被广泛使用。腾讯不仅与国内知名互联网公司进行交流,还在众多中小企业中积极尝试。在使用它们的过程中,他们也为 TARS 开源社区做出了很多贡献。例如,阅文集团为TARS提供了PHP语言的补充,这对广大 PHP 开发者来说是一个福音,满足了 PHP 语言对微服务治理框架的需求。科大讯飞扩展了对 TARS 的协议支持。还有其他热心的社区开发人员为 TARS 提供一键安装脚本和 TARS-。TARS 开源社区在国内开发者中一直非常活跃。接下来,我们希望进一步吸引更多来自世界各地的开发者。基于它是一个全球中立的开源组织,我们决定让腾讯自研TARS并加入基金会。本次大会也是这两个项目进入基金会的重要里程碑。还有其他热心的社区开发人员为 TARS 提供一键安装脚本和 TARS-。TARS 开源社区在国内开发者中一直非常活跃。接下来,我们希望进一步吸引更多来自世界各地的开发者。基于它是一个全球中立的开源组织,我们决定让腾讯自研TARS并加入基金会。本次大会也是这两个项目进入基金会的重要里程碑。还有其他热心的社区开发人员为 TARS 提供一键安装脚本和 TARS-。TARS 开源社区在国内开发者中一直非常活跃。接下来,我们希望进一步吸引更多来自世界各地的开发者。基于它是一个全球中立的开源组织,我们决定让腾讯自研TARS并加入基金会。本次大会也是这两个项目进入基金会的重要里程碑。我们决定让腾讯自研TARS,加入基金会。本次大会也是这两个项目进入基金会的重要里程碑。我们决定让腾讯自研TARS,加入基金会。本次大会也是这两个项目进入基金会的重要里程碑。
原本腾讯内部使用云平台网站制作,是企业IT团队开发的技术服务,提供内部支持。在建设的基础上,社区版抽出了一个分支进行自主研发。那时,与社区的互动并不多。针对缺乏统一的组件管理、自动化部署差等问题,腾讯企业IT团队通过自主研发优化接入了大量腾讯内部成熟的PaaS和SaaS服务,同时实现了多种组合部署方法。为腾讯提供了安全可靠的支持,积累了丰富的运营经验。两年前,开始由内而外,开始为中国政府和企业用户提供服务,并深入参与基金会的社区。,已成为白金会员,并获得17年用户奖。
作为基石,腾讯云致力于打造新一代开源商业模式——以开源技术为核心的产品和服务型企业,满足企业客户的场景化需求与发展的协同演进。开源社区技术。这种新一代的开源商业模式意味着腾讯云不仅可以按照国际规则参与开源社区,通过代码贡献把握和影响社区的方向,还可以根据客户需求进行产品化,降低企业级客户采用的门槛,同时也将积累的客户需求在实践中反馈给社区,促进社区的健康发展。"
原WeUI原型是微信设计中心网页重构团队的内部样式库,主要用于自身业务开发。
2015年初,微信全面开放JS-SDK,帮助第三方开发者为用户提供更好的服务。在此背景下php 开源轻博客系统,越来越多的公司和个人借助微信的开放接口开发自己的Web应用程序。Web应用体验好不好,很重要的一点就是UI。当时很多第三方微信网页应用缺乏好的腾云网络,页面设计参差不齐,用户体验不够友好。
为了更好地帮助微信开发者开发出更好体验的网页,微信团队对样式库进行了重组、标准化和开源。使用WeUI样式库,微信开发者可以轻松构建符合微信设计规范的Web应用和小程序,体验更佳。这也成为用户必备的开源项目,为微信网页应用和小程序提供更统一的开发者。由此可见,自下而上可以产生什么样的爆发。
微信小程序另一个开源项目Wepy的开源体验更是传奇。Wepy 本身并不是微信团队开发的php 开源轻博客系统,而是一个完全不相关部门的普通程序员利用业余时间做的。Wepy 提供了更接近 Vue.js 的开发框架,并且重新封装了原生小程序的开发模式,更接近于 MVVM 的架构模式。最初是为了满足我自己的开发习惯而设计的,但是开源之后,已经被社区开发者广泛使用和贡献了。这两个案例都表明,当一个开源项目要解决的问题刚刚好,即使没有强大的资源支持,它也可以形成自己非常活跃的开源社区。
对于微信小程序来说,开发者生态非常重要。微信近期在小程序方面的扩张触动了更多平台和巨头的神经,而小程序的成功也让整个准轻应用生态和平台开始动起来。在过去的 GDC 大会上,宣布“免安装应用”开始支持游戏;前不久,国内十家手机厂商也联合发布了“快应用”标准,整个轻应用生态正在重组; 的 iOS 支持 PWA 的步伐。岁月也骤然加速。
微信的动作证明轻应用时代即将到来,而闻讯而来的竞争对手也让小程序不再是微信一个人的赛道。就像之前的移动操作系统、VR、AI平台一样,在这种类型的竞争中,谁能获得更多开发者的支持,占据开发者生态的制高点,谁就有更大的机会赢得最后的胜利。而开源显然是一种非常有效的方式。
腾讯适合开源吗?我认为答案显然是肯定的。
从外部环境来看,随着主流开发平台等的逐步开源发展,IT行业拥抱开源以获取更大的市场份额势在必行。
从腾讯内部技术积累来看,腾讯内部技术研发基础设施完善,开源项目超过8000个,跨越各个技术领域,并经过大量用户验证。腾讯可以不断向开源社区输出优质的开源项目。
从生态机会来看,开源可以很好地服务于腾讯的重点战略方向。比如作为腾讯云Paas和Saas服务的封装,可以推动机器学习和人工智能的广泛应用,或者通过制定行业标准来引领下一代技术。创新。这些都是开源可以给腾讯带来的生态机会。
那么,自下而上的开源与自上而下相比有哪些优势呢?首先,通过内部竞争和开源开发的技术经过广泛实践验证,是项目质量的有力保障。其次,相比聘请全职开源人员来维护,通过完善的社区治理规范和机制,更好地保证项目不会因某人离职或工作调动而受到影响。第三,自上而下的战略容易被KPI引导或与现有业务紧密绑定,难以实现长期的价值积累,或者让创新推动新兴技术的开源,因为战略制定有时会失败速度的创新。
但无论是自下而上还是自上而下,都有一些共同点,从技术驱动到商业战略,从部落到联盟,构建健康的开发者生态,实现共赢,最后,最重要的是,持续不断的技术创新。