草庐IT

OpenCloudOS 9.0发布,腾讯闯入底层基础软件“深水区”

阿川2015 2024-03-13 原文

3月22日,腾讯发布了2022第四季度及全年业绩,ToB业务成为腾讯的核心引擎。与此同时,ToB的腾讯在近年来持续加码自研投入,提升底层技术实力,2022年研发投入达到614亿元,2018年至今在研发上的投入已经超过2056亿元。随着ToB业务的全面发展,腾讯对外的技术输出也从数字工具向底层基础软件纵深推进。

对于ToB业务来说,拥有庞大的技术生态是成功的关键,特别是要掌握服务器操作系统、数据库等企业IT基础软件的底层技术,才能在ToB的道路上行稳致远。3月底,腾讯发布了ToB技术产品领域的两大关键里程碑:TDSQL数据库成功打榜TPC-C,拿下了全球数据库性能第一;OpenCloudOS 9.0发布,加码CentOS停服后的国产服务器操作系统市场。

从数据库到操作系统,腾讯正全面发力底层基础软件,加速闯关ToB深水区。

刷新开源社区,攻关操作系统

服务器操作系统是企业IT的基石,而开源Linux操作系统一向是服务器操作系统的重头。在开源Linux服务器操作系统中,CentOS的市场占比超过50%。可想而知,当红帽公司宣布将于2021年底停服CentOS 8、2024年6月底停服CentOS 7,对于国内企业IT形成了巨大的挑战。

2021年12月,OpenCloudOS开源社区成立,腾讯将十余年技术积累悉数投入,成为OpenCloudOS的主要发起者和核心技术贡献者。众所周知,国内目前有三大OS开源社区:成立于2019年底的华为系的OpenEuler、成立于2020年9月的阿里系的OpenAnolis以及OpenCloudOS。OpenCloudOS继承了腾讯一贯的产品力,体现了极强的产品化优势。

首先,OpenCloudOS继承了腾讯TencentOS Server的云原生技术力。TencentOS Server 从 2010 年启动研发,蕴含了腾讯在操作系统领域超过10年的技术积累,经过了腾讯内部海量业务的多年验证和打磨,基本覆盖了腾讯所有的业务,同时依托腾讯社交、游戏、金融支付、AI、安全等业务生态,进一步打磨稳定性、安全性、兼容性和性能等核心能力。

作为云原生操作系统,TencentOS Server在容器和虚拟化的支持方面,提供增强的资源隔离和数据安全特性支持,在整机资源分配方面提供高水平的弹性调度能力,强力支撑各大容器/算力平台。在容器场景下,腾讯大量核心业务几乎已经全部云原生化,例如微信所有的逻辑业务全部容器化,针对微信业务特点进行了系列优化,顺利保障了每年春节的红包高峰。

更为重要的是,源于腾讯一贯的融入开源产品社区的思想,TencentOS Server与CentOS 7、CentOS 8的生态全面兼容,在 CentOS 上开发的应用程序可直接在 TencentOS Server 上运行。腾讯云为每个 TencentOS Server 大版本提供超过5年的维护和更新,包括定期更新镜像、新功能和优化引入、及时的安全漏洞修复、Bug修复等。

其次,从适配大规模、标准化的云计算环境到适配小规模、复杂异构的企业IT环境,操作系统必须走开源道路,联合开源社区的力量才能完成大规模的异构的不同版本的企业级软硬件适配工作。实际上,不论是Windows操作系统,还是VMware虚拟化软件或是Oracle数据库,一个最为重要的产品化工作,就是最大程度上适配不同地区、不同厂商、不同版本的软件和硬件,兼容性是操作系统最重要的产品力体现。

中国企业要打通企业服务器操作系统这个产品平台,必须依靠社区的共同力量。为此,腾讯不仅发起了OpenCloudOS开源社区,还清晰提出了完整成熟的操作系统研发模式:涵盖L1(上游发行版)、L2(企业版)、L3(社区稳定版)、L4(基于社区稳定版优化改造的发行版)。

L1基于Linux内核及核心组件构建,是国内最上游的“源社区”版本;L2企业版基于L1源社区版本加固,提供企业级的技术支持及服务,可用于真实业务场景,是稳定可靠的发行版本;L3社区版基于L2企业版进一步优化,是代码完全开源、生态全面开放的发行版本。

其中L1上游源社区版本的研发投入巨大,需要多方协同开发,为此OpenCloudOS社区快速成立了安全、云原生、基础设施、架构体系/内核、测试等10余个SIG主题工作组/群,100多个SIG工作组,已经有包括 OS 厂商、芯片厂商、整机厂商、行业用户、云厂商、数据库厂商、存储厂商、中间件厂商等在内的 600 多家合作伙伴加入。

OpenCloudOS定位为全链路自研的服务器操作系统,实现了从自主可控源社区(L1)、商业版(L2)、到社区稳定版(L3)的全链路覆盖,为国内企业提供上游版本,以及满足企业级稳定性需求的软件供应版本,保障软件供应链安全。

基于以上基本的产品化思路,在短短一年的时间内,腾讯迅速组织起了开源社区,提出了完成的开源社区研发模式,并于2023年3月正式推出了首个L3版本:OpenCloudOS 9.0。

历时一年研发的OpenCloudOS 9.0

2023年3月31日,开源社区OpenCloudOS正式发布首个全自研社区9.0版本(以下简称“OC9.0”)。OC9.0可以说是国内操作系统的里程碑,是国内首个L3级别稳定可靠可用、可直接用于生产环境的自主可控版本。腾讯操作系统研发负责人王佳在OC9.0发布活动上介绍,OC9.0的研发历时超过一年,已经在腾讯的生产环境中经过了验证。

在2021年12月OpenCloudOS开源社区成立的时候,就预计在2023年发布OpenCloudOS 9.0,也就是构建L1源社区并发布L1版本,然后在L1版本的基础上构建商用版本L2,再经过实际生产环境的大规模应用验证后,最终输出稳定的企业级L3版本——基于头部厂商的海量应用场景验证,保障版本的稳定性,满足企业级生产需求。

基于这个基本思路,OpenCloudOS开源社区于2022年7月发布了L1源社区内核版本OCKS2207,并于2023年1月发布了完整的L1源社区版本OCS 2301即OpenCloudOS Stream,作为全自研L1上游版本。OpenCloudOS Stream由社区中的腾讯、中兴、方德、红旗等社区伙伴主力研发,完成了超过1800个软件包的开发。腾讯基于OCS 2301,发布了TencentOS Server 4版本,并在腾讯生产环境中进行了验证;而其它社区伙伴,也在各自的实际生产环境中进行了验证,最终输出了OC9.0。

OC9.0与众不同的地方在于,它不仅仅是OpenCloudOS社区独立研发的版本,而且是由社区伙伴亲自验证过的版本。王佳强调,这种研发模式在操作系统领域非常少见。一般情况下,操作系统厂商会提供生产版本,但自己并不会大规模使用,所以自研自用是OpenCloudOS的鲜明特色之一。换句话说,OpenCloudOS是集成了厂商、生态和用户为一体,由用户发起和主导并提供丰富业务应用场景和大规模生产验证环境的新型开源社区。

OC9.0使用国际上游社区最新内核 Kernel 6.1,提供多体系架构和新硬件支持,多核性能优化,混部隔离特性增强,同时MGLRU、Mapple Tree 等特性提升内存管理效率,具备完善的 Cgroup V2 支持、多架构热补丁支持,并提供细致化的调优与系统适配。除了高性能、安全稳定、支持多硬件平台的特性外,OC9.0还为云原生、大数据、人工智能等领域的开发者和用户提供更好的基础环境和服务能力。

相比于国内的L1社区,国际上游Linux内核社区可以视为L0社区。过去,国内厂商基于L0社区的路线,要经过很长的时间才能推出国内自己的L3版本,这时L0社区的“新”版本往往已经过去了很长时间。国内厂商由于没有掌握在自己手里的技术路线,就只能等待L0社区的发布。而OC9.0的出现,填补了这一空白,让国内用户可以近距离、快速、高效体验新特性、新能力。

例如,最新的Linux Kernel 6.1内核稳定版于2022年11月正式发布,而OpenCloudOS社区在三个月后就迅速发布了基于Kernel 6.1的OC9.0。而相对于2022年初发布的OC8.5(与CentOS完全兼容、源于L0社区),OC9.0在MariaDB高并发情况下的数据库读写性能最大提升超过50%,在体现IO性能方面的NVME随机读写能力也有超过26%的显著提升等等。

在OC9.0的基础上,红旗发布了企业版本——红旗OpenCloudLiunx 8.5;中兴新支点贡献了NDE桌面系统,全力支撑OpenCloudOS桌面体系;九州云通过OpenCloudOS构建了开放、灵活、高效的云系统环境,实现业务创新和价值提升。

其中,由于桌面环境在Linux体系中的稀缺性,中兴新支点将自研的桌面系统开源,尤为值得关注。新支点超凡桌面环境(EX-NDE)是由新支点操作系统团队以及OpenCloud开源社区共同打造的操作系统桌面环境开源项目,该桌面环境包括桌面模式、服务器模式和平板模式,在桌面模式开发的生态,可以直接应用在服务器和平板模式中,通过构建同一套应用生态而不需要管理多个分支。

十年筑基腾讯操作系统

腾讯于2021年底发起组建OpenCloudOS社区以及在一年后火速推出OC9.0并不完全是因为CentOS停服,而是腾讯操作系统经过了十年的筑基,已经进入自主创新研发的阶段。

在腾讯发展初期,公司业务比较单一,服务器数量也很少,选择开源操作系统就可以满足当时需求,也不需要花费额外成本,因此腾讯当时选择了免费且相对稳定的开源软件作为服务器操作系统。

随着公司的不断发展,业务数量和规模快速扩张,业务场景越来越复杂,服务器数量急剧增长,开源操作系统的稳定性问题开始不断爆发,宕机问题频现。而随着业务场景增加,业务开始对操作系统底层特性提出需求,需要操作系统研发层的支持。当时,腾讯没有操作系统研发团队,2006年通过引入商业操作系统SuSE Linux,借助Novell的统一技术支持,解决了当时的一些困难。

在引入OS厂商技术支持几年之后,腾讯公司操作系统支持又面临了新的挑战:公司业务迅猛发展,运营了成百上千个自研业务,并有第三方业务的接入,服务器数量也随之飞速增加。快速发展的业务导致业务场景更加复杂,在操作系统平台的稳定性、性能和底层特性支持方面提出了更高的要求,这也与商业操作系统间逐渐产生了矛盾,包括:生产环境下的故障无法及时有效沟通和解决、无法改动商业Linux内核代码、服务器数量激增导致OS厂商费用高涨等等。

2009年,腾讯公司组建了操作系统团队,专门负责服务器操作系统的研发与运营支持工作。最开始,腾讯还是在SuSE商业发行版的基础上开发linux内核定制版,命名为tlinux。随着业务需求的进一步增长,腾讯开始研发tlinux发行版,相继发布了tlinux1、tlinux2。在公司开源协同战略推进和产业互联网需求爆发的前提下,腾讯于2019年底对tlinux进行了品牌升级,命名为TencentOS Server,并对外正式开源,TencentOS Server3版本也随后发布。

十年间,从2010年tlinux第一个版本到2020年第三个版本的发布,腾讯研发的操作系统的安装量从0增长到了2020年200万台的级别,有效保障了腾讯海量业务的稳定高效运行。2019年底,腾讯对外开源了操作系统产品,并将研发成果进行了开源。2021年,腾讯从发行版定制转变为发行版自主研发,不再基于开源Linux发行版,而是基于upstream开源社区,从头开始构建TencentOS Server Stream版本,并基于Stream版本研发了TencentOS Server商业版本和OpenCloudOS社区版本。

整体来说:OpenCloudOS社区和OpenCloudOS 9.0发布是中国操作系统的里程碑之一,也是腾讯深耕底层软硬件技术的关键节点之一。腾讯自有的社交、游戏、金融支付、云等丰富业务生态以及超大规模自研产品体量作为OpenCloudOS的生产验证环境,是OpenCloudOS研发的特色,也为企业用户采用OpenCloudOS各种版本提供了极大的信心。OpenCloudOS社区不仅是应对CentOS停服的应急措施,更着眼在CentOS停服之后的长期技术创新。在腾讯等科技企业用户的推动下,中国操作系统终将走上高质量发展之路。(文/宁川)

有关OpenCloudOS 9.0发布,腾讯闯入底层基础软件“深水区”的更多相关文章

  1. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  2. ruby-on-rails - 如何在发布新的 Ruby 或 Rails 版本时收到通知? - 2

    有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  5. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  6. ruby-on-rails - 获取 ActionController::RoutingError(当尝试使用 AngularJS 将数据发布到 Rails 服务器时,没有路由匹配 [OPTIONS] "/users" - 2

    尝试从我的AngularJS端将数据发布到Rails服务器时出现问题。服务器错误:ActionController::RoutingError(Noroutematches[OPTIONS]"/users"):actionpack(4.1.9)lib/action_dispatch/middleware/debug_exceptions.rb:21:in`call'actionpack(4.1.9)lib/action_dispatch/middleware/show_exceptions.rb:30:in`call'railties(4.1.9)lib/rails/rack/logg

  7. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  8. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

  9. ruby - 如何在 Ruby 中从内存中 HTTP 发布流数据? - 2

    我想上传我在运行时用Ruby生成的数据,就像从block中提供上传数据一样。我找到的所有示例仅展示了如何流式传输必须在请求之前位于磁盘上的文件,但我不想缓冲该文件。除了滚动我自己的套接字连接之外,最好的解决方案是什么?这是一个伪代码示例:post_stream('127.0.0.1','/stream/')do|body|generate_xmldo|segment|body 最佳答案 有效的代码。require'thread'require'net/http'require'base64'require'openssl'class

  10. IDEA 2023.1 正式发布,新特性简介 - 2

     昨晚看到IDEA官推宣布IntelliJIDEA2023.1正式发布了。简单看了一下,发现这次的新版本包含了许多改进,进一步优化了用户体验,提高了便捷性。至于是否升级最新版本完全是个人意愿,如果觉得新版本没有让自己感兴趣的改进,完全就不用升级,影响不大。软件的版本迭代非常正常,正确看待即可,不持续改进就会慢慢被淘汰!根据官方介绍:IntelliJIDEA2023.1针对新的用户界面进行了大量重构,这些改进都是基于收到的宝贵反馈而实现的。官方还实施了性能增强措施,使得Maven导入更快,并且在打开项目时IDE功能更早地可用。由于后台提交检查,新版本提供了简化的提交流程。IntelliJIDEA

随机推荐