编者按:现存的 CentOS 以及衍生版用户或将面临哪些风险?一套完整的迁移方案应该包括哪些步骤?在当下众多的迁移版本中如何选择符合市场发展诉求的操作系统……一起听听龙蜥社区产品生态总监张鹏程怎么说。本文转自 InfoQ,以下为转载原文:
2020 年 12 月,CentOS 社区宣布 CentOS 服务器操作系统 8 和 7 系列分别于 2021 年底和 2024 年 6 月底停止服务。CentOS 停服对于国产操作系统而言,既有挑战,也有机遇。一方面,如何为国内用户提供 CentOS 停服之后的解决方案,平稳完成服务器操作系统和数据的迁徙是国内操作系统厂商必须要解决的难题;另一方面,CentOS 停服也有望加速国产服务器操作系统替代进程。
那么,CentOS 的停服到底会带来哪些影响?国产操作系统能否扛起时代大旗?如何迁移到国产操作系统?近日,龙蜥社区产品生态总监张鹏程做客 InfoQ 直播间,为大家分享国产操作系统迁移实践经验。
本次访谈完整视频已上线至龙蜥官网,欢迎点击参看:https://openanolis.cn/video/837921694589681665
01 云计算给操作系统带来了哪些改变?
姜雨生:近几年,国内外操作系统整体发展如何?有哪些值得关注的行业大事件?
张鹏程: 经过几十年的发展,操作系统已成为一个相对成熟的产业领域。大家对桌面端常用的操作系统如 Windows、macOS 非常熟悉。在服务器端,Linux 具有开源和免费的特性,广泛应用于服务器操作系统。
由于我们今天的话题主要涉及服务器操作系统,因此我们将聚焦在近年来国际和国内两方面,讨论其中的标志性事件和发展趋势。首先看国际方面,最典型的标志性事件是 Red Hat 公司在 2021 年和 2024 年停止维护 CentOS 8 和 CentOS 7 的版本,并转向 CentOS Stream 作为上游版本。这意味着之前基于 CentOS 的企业级生态系统将受到重大影响,这是一个非常典型的国际标志事件。
接下来,我想谈一下发展趋势。从十多年前云计算的兴起开始,经过了持续的发展,云计算已逐渐成熟。这种发展浪潮给操作系统领域带来了一种“降维打击”的趋势。一个典型例子是亚马逊在其云计算平台上提供的 Amazon Linux,对红帽等操作系统市场地位造成了巨大冲击,形成了颠覆性效果。微软也将其 Windows 部门转移到了 Azure 云平台,这有助于操作系统技术在云上的演进和推广。这是过去几年持续发酵的产业发展趋势,国际上值得关注。
国内方面,一个标志性事件是从 2019 年开始,国家产业主管部门组织了针对操作系统领域的原生开源社区的重大专项活动。随后,龙蜥社区等开源社区相继诞生。这一系列事件标志着国内在自主操作系统演进方面迈出了重要步伐,对国产操作系统的发展和应用推广非常有帮助。此外,在国内除了前面提到的云计算蓬勃发展外,围绕国产化的生态系统也是我们必须关注的发展趋势,这促使更广泛的自主创新,相信这对操作系统发展将产生深远影响。
02 CentOS 停服给国产操作系统带来的挑战与机遇
姜雨生:CentOS 是比较流行的 Linux 发行版之一,2020 年 12 月,CentOS 社区宣布 CentOS 服务器操作系统 8 和 7 系列分别于 2021 年底和 2024 年 6 月底停止服务。随着 CentOS 系列版本停服时间临近,现有 CentOS 以及衍生版用户会面临哪些风险?
张鹏程:这个问题可能已经成为一个正在发生的状态。尽管 CentOS 8 用户群规模可能相对小于 CentOS 7,但 CentOS 8 在 2021 年 12 月底已停止维护。对于 CentOS 8 或者截止到 2024 年的 CentOS 7,它们都将直接受到影响。随着社区停止服务,所有正在运行的版本在截止日期后将不再获得任何问题修复或升级维护。
对于广泛使用存量运行 CentOS 系统的用户而言,这样的事实可能带来连带影响。如果系统因为一些 bug 导致不稳定、宕机甚至不可用的情况,很难获得及时修复。同时,由于潜在的安全漏洞没有及时修复,这些漏洞可能对使用 CentOS 的用户,特别是企业用户的系统安全和数据安全构成重大威胁。此外,许多用户由于商业需求而使用商业发行版本,但这些商业发行版本在过去的发展过程中也是基于 CentOS 演进而来。因此,CentOS 的停止维护因素可能间接导致一些依赖于 CentOS 的商业发行版本很难进行后续演进,这对使用者也会产生连带影响。
姜雨生:CentOS 有广泛的行业用户基础,停服将导致操作系统迁移浪潮。有声音认为,CentOS 停服对于国产操作系统而言,既有挑战,也有机遇,请您分别谈谈其中的挑战与机遇?
张鹏程:这个机遇和挑战,我认为可以看作是两面的。就像我们之前讨论的,它既包含挑战,也蕴藏着机遇。对于操作系统而言,一个非常核心的问题是操作系统的生态系统。因此,在我看来,最大的挑战和机遇都可能在于这个生态系统中。
生态系统带来的挑战是我们现在使用的操作系统和相关的成熟硬件体系,以及上游的数据库、中间件和各种企业应用软件,大部分都是在欧美市场环境下经过数十年成熟发展和不断迭代形成的。在这个发展过程中,软硬件体系相互适配、优化和促进是相互融合的。在这个层面上,现在出现了一些风险和停服的迹象。如果要解决操作系统的替代方案,这个替代操作系统必须解决如何与国外成熟发展的软硬件软件生态系统良好兼容的问题。对于国内操作系统的发展来说,这是一个巨大的挑战,因为我们是在追赶的位置上。在这个过程中,还有许多非技术因素会直接产生影响。我相信这是我们国内从业者共同面临的问题,大家都在努力不断完善和解决。
同时,我认为这个过程中也有很多机会,因为我们正处在一个发展浪潮中,这个浪潮带来了许多新的机会,影响着发展的变化。正如之前提到的,不论是云计算的发展还是国内自主创新的软硬件生态发展,都意味着在国内的许多行业领域,企业在解决自身发展问题的同时,考虑如何进行 IT 架构或技术升级来给业务产生更大的收益。我们现在有更多选择,可以使用创新的云生态系统以及国内产生的芯片、数据库和应用软件等,这些都构成了国内独特的生态系统。这些发展也是我们共同面临的机遇,因为在这个过程中,我们不再仅仅进行“苹果与苹果”的简单比较,而是在进行系统与系统的比较。国内伴随着我们快速发展和强大需求的机遇,可以帮助我们将上下游合作伙伴联合起来。通过在更广泛的应用领域中锤炼,我们能更快地使国内建立起的生态系统更加成熟。
姜雨生:民生证券研究报告称,国内整体 CentOS 存量替代空间有望达到 148 亿元,这个数字符合您的预估吗?目前国内主要是哪些行业有操作系统迁移替换需求?迁移的主要原因是什么?
张鹏程:这个问题可以从两个方面来看。您刚才提到的第一个方面可能是关于市场空间的判断。我认为不同机构或不同视角可能对统计口径有所差异。所以这个数字本身很难直接判断对错,它只是一个相对的指标,但确实能提供一些见解。判断服务器操作系统的市场规模,我们还可以参考服务器规模,每年国内的物理服务器出货量是一个相对确定且得到共识的数字。过去几年的情况,每年大约有 300~400 万台的服务器出货量。
这么多年来,在操作系统领域中,CentOS 一直处于主导地位。因此,国内物理服务器的使用规模至少应该达到百万级别,每年的存量不断累积。此外,考虑到过去 5~10 年,国内云计算从虚拟化发展到云计算,以及众多的虚拟机和类似容器的使用环境,综合考虑这些物理机、虚拟机甚至容器的部署规模,至少达到千万级别。如果将部署规模转化为市场空间,一部分将直接对应各种操作系统选项,包括免费社区发行版的发展,同时也会有商业选项。
对于某些企业客户来说,根据他们的发展角度,仍然需要商业服务来支持他们。这些需求将产生对操作系统的消费,对应到之前提到的千万级别的规模。因此,就整个市场规模而言,我相信超过百亿是一个发展趋势,也是整个行业共识。所以对于整个产业的从业者来说,这可能是一个相对确定性的发展机遇,他们都面临着这个机遇。
刚才您也提到国内的需求。我们看到在各行各业中都广泛应用国内的服务器。根据使用规模,我们可以从中看到一些端倪。当我分析我们操作系统的用户需求时,包括不同行业的发展时,我习惯使用象限来进行分解。纵轴可以定义为业务对服务器或操作系统使用的影响程度,而横轴则可能对应不同行业领域的部署规模,根据相应行业的整体经济规模或企业数量来确定,这些因素可能决定了消耗的规模。
根据这个象限的观察,最典型的需求来源可能体现在政务、金融、电信、能源以及教育和医疗等行业。这些行业在服务器和 IT 资源的消耗方面都属于前几类,而且它们的业务连续性直接关系到日常的国计民生。在这些领域,我相信替代 CentOS 的需求非常高,因为它们影响到业务的连续运行,也影响到它们所提供的广泛经济活动的服务。因此,这些行业迫切希望能有良好的迁移替代选项。另外,还有一大部分服务器消费量来自互联网行业。由于互联网行业在架构演进过程中更多地采用分布式架构,同时在操作系统层面上有更多的替代选项,因此它们对替代的需求可能不会那么强烈。
综上所述,国内市场的机会可以从不同方面来看。从市场规模的角度,超过百亿是一个发展趋势。而从需求的角度来看,政务、金融、电信、能源以及教育和医疗等行业对替代操作系统的需求非常高。同时,互联网行业也是一个重要的消费者群体,尽管对替代需求的迫切性可能相对较低。
姜雨生:有观众提问说,在教育行业的操作系统,我们目前替换的需求量如何?
张鹏程:在教育行业中,我们面临着一个庞大的存量规模。与电信、金融和能源等行业相比,教育行业的存量规模仅次于它们,属于高度使用的行业。在过去的两年多里,我们通过社区工作发现了许多教育机构的需求,包括大众院校和教职机构。这些机构都关注如何解决 CentOS 停服替换的问题。
第一类需求比较直接,原本使用的服务器数量并不是特别多,可能总共只有一两百台。它们通常使用的是免费的社区版本,例如 CentOS。针对这些需求,龙蜥提供了对应版本的操作系统升级,以确保其与学校原先使用的许多软件的兼容性。同时,龙蜥还提供了一些迁移工具,帮助用户进行原地升级迁移,或者在有冗余资源的情况下进行升级替换,以便更好地完成 CentOS 替换。
另一类需求是顺应当前发展趋势产生的新需求。我们注意到一些大学近年来正在构建智能计算平台,以解决其内部现有 IT 资源池的问题,并在科研方向上实现更多的智能化能力。这种方式更适用于规模较大、具有规模效应的大学。在这种情况下,在解决 CentOS 替换的同时,考虑搭建智能计算平台,通过云化方式提供内部使用,并满足科研需求。通过搭建新平台的方式,他们可以一举两得,随着新项目的发展,解决了 CentOS 停服可能带来的威胁。
这两种案例是教育行业用户前进发展的典型代表。一方面,我们满足了那些使用规模较小的学校的需求,通过升级替代的方式帮助他们迁移问题。另一方面,对于规模较大、有新业务方向或科研规划的大学,我们支持他们搭建新平台来替代原有的老资源,从而解决 CentOS 替换的问题,并顺应其业务发展方向。
03 如何进行操作系统迁移?
姜雨生:在迁移过程中,我们提到了从旧系统到新系统的替代过程。我个人在之前的工作中也做过很多与监控相关的系统,但是对于更底层的操作系统内容,特别是在物理机或云 Kubernetes 环境中,我确实没有完全接触过。服务器操作系统的迁移并不是简单的重新安装系统,还需要对操作系统及其搭载的应用软件和业务系统进行替代、适配、迁移和重构等,一套完整的迁移方案应该包括哪些步骤?
张鹏程:我想首先回应一下您刚才提出的问题。您提到了在使用 Kubernetes 等技术时,对操作系统的感知和维护方面可能比较低。这确实是一个事实,而且代表了我们共同面临的发展趋势。随着云原生技术的普及,操作系统在与上层应用的耦合性方面正在降低。这种分层解耦有利于降低维护成本并提高大规模应用的易用性。
在现实世界中,很多用户目前仍然主要使用物理机的操作环境。如果已经使用虚拟机,那对于后续的维护可能已经有所帮助。对于这些物理机或虚拟机形态的主机,迁移过程需要考虑更多因素,特别是硬件和软件对操作系统兼容性的影响。
通常,在进行迁移之前,我们先需要进行评估,包括对操作系统和相关软硬件环境的评估,以及可能需要进行的兼容性适配。第二步,如果涉及硬件环境的变化,或者软件版本的升级,可能需要进行跨架构迁移的兼容性适配。例如,从 x86 架构转向 ARM 架构,或者操作系统版本升级,这些都可能需要考虑应用的兼容性适配。第三步是对原有环境进行备份,这对于任何迁移操作都是必要的保障。第四步是正式进行迁移实施。在具体的迁移实施过程中,通常有以下两种典型的操作步骤。
- 第一种是原地升级,即在原有环境下重启和升级操作系统,使其能够继续正常运行。这种方式对兼容性要求较高,而且需要进行充分的前期测试。
- 第二种方式是轮转升级,这可以借助集群化管理或主备集群的形式实现。我们可以先将新版本安装部署在备用节点或新增节点上,并确保应用在该环境下能够正常运行。然后,在集群调度和管控层面逐渐将旧节点下线,并将其作为新节点逐步升级和重新安装。
迁移实施完成后,最后一步是进行必要的验证,并结合操作系统或软硬件环境的变化进行必要的优化。
通过上述五步骤流程,我们能够尽可能应对每个操作系统所在环境中可能出现的风险,并制定相应的方案。
姜雨生:您提到了在迁移过程中涉及到主备切换的问题。在实际操作中,我们可能会先升级备份集群,然后需要确保备份环境可以接收流量或承担服务的运行,同时进行指标监控。我们是在这个过程中进行直接做切换操作吗?
张鹏程:这个问题涉及环境架构的健壮性和主备切换的设计能力。例如,如果现有的集群环境已经具备了强大的负载均衡和数据同步能力,那么在这个环境下进行主备切换可能会比较顺利,实现一次平稳的切换。
在某些极端情况下,我们可能会对主备切换持谨慎态度。在这种情况下,通常会先进行验证,然后在停机窗口内进行升级和维护。具体的处理方式需要根据具体情况进行分析和决策。实际情况中,我们会发现新系统更容易处理迁移需求。通常建议先进行增量环境的升级,甚至做一些妥协,旧系统可能需要长期运行,直到系统生命周期结束或者出现新的机会才进行升级替换。毕竟,一些系统由于年久原因,可能无法找到维护方,这些风险是现实中需要考虑的。
姜雨生:在实际迁移过程中,我们通常会关注哪些验证指标?
张鹏程:在验证阶段,针对操作系统通用环境,我们通常需要确保原有系统的功能正常运行。对于常规系统而言,如果之前经历了完整的项目周期,通常会有回归测试场景来验证功能的可用性。在兼容性满足的情况下,这些测试通常不会出现大的意外。
第二步可能更关键,即在关键性能场景下进行验证。例如,系统可能具有特定的 QPS 指标或响应时间要求,针对这些指标,对新部署环境也需要进行测试。实际企业环境中,还需要考虑端到端的整体效果。验证的具体步骤因系统而异。
姜雨生:操作系统的迁移工作主要包含哪些成本?比如迁移时间通常需要多久?需要多少人力?运行和使用成本如何?如何才能降低企业的操作系统迁移成本?
张鹏程:在企业进行迁移过程中,成本方面需要考虑资源和人力投入。资源成本包括验证和测试所需的资源,以及生产环境的轮转和替换成本。人力成本涉及企业自有的 IT 运维人员负责操作系统管理和基础环境维护,以及与应用系统维护方或项目参与方相关的人员投入。
在迁移过程中,由于兼容性适配和性能调优的需要,很可能需要应用层面的软件维护人员或开发人员提供帮助。这与所处环境的技术架构和应用程度有关。举例来说,传统架构体系相对复杂的情况下,可能涉及多个业务管理系统、企业 IT 系统和云服务系统,组件数量可能超过 100 个,涉及的服务器节点可能达到上千个。在这个过程中,硬件投入资源相对可控。由于环境已经云化,可以利用冗余资源进行轮转,因此迁移过程不会导致大量额外资源采购。借助云的优势,可以快速创建、使用、验证,并在完成后销毁回收,从而节省额外资源投入。
然而,人力成本是不可避免的。在项目中,参与人员包括项目组成员、IT 人员、应用系统相关人员和软件供应商人员,项目组成员通常达到上百人的配置。经过近三个月的时间,项目组成功地完成了从最初的评估测试到生产级别轮转的新试点项目。考虑到迁移过程中的不确定性和影响,这可以被视为一个高效的项目运作方式。在这方面,对于高要求和推进方面有很多挑战,但团队成功应对了这些挑战。
姜雨生:有观众提问说,龙蜥对于社区用户会提供哪些生产级的技术支持,以何种方式支持?
张鹏程:龙蜥社区是阿里云、统信软件、浪潮信息、龙芯、Intel、Arm 等国内外知名厂商共同创建和维护的社区。龙蜥社区由 24 家理事单位共同管理,超过 300 家操作系统产业生态伙伴共同维护, 为国内用户提供更加安全稳定使用的操作系统。在社区操作系统中,我们提到的产品形态可以分为两层结构。
第一层是社区自身的上游产品,称为龙蜥社区版 Anolis OS(龙蜥操作系统),它是一个开源、免费的版本供大家使用。
第二层是在社区中,理事单位和广泛伙伴可以基于社区版进行衍生开发和商业扩展的版本。其他理事单位可以构建衍生版本,通常与厂商合作,在社区版本的基础上增加自主研发的能力,并提供附加的商业服务和增值功能。这样的衍生版本以商业产品的形式提供给市场上的用户。
在国内广泛的社区使用中,存在两种情况:一种是使用社区免费版本的用户,另一种是使用基于社区发行的商业衍生版本的用户。对于广泛的用户群体而言,如果使用的是社区免费版本,通常会采用社区的服务或开源方式进行维护和推进。在这个过程中,用户可能会在官网或通过钉钉群、微信群等渠道报告问题。社区内包括阿里的成员、不同理事单位的成员以及广泛的开发者用户,大家可以在这个开放平台上共同协作,解决问题并提供解决方案。这是第一层次。
如果用户选择了商业衍生发行版本,通常会获得服务提供方提供的商业服务。在生产环境下,这些服务可能包括 on-call 支持或专家服务。这些商业服务是商业产品的配套服务,用于支持实际使用的应用场景。
姜雨生:当前国内外已经出现了不少 CentOS 停服解决方案,在选择操作系统迁移替换时,不同行业的关注重点分别是什么?与其他迁移方案相比,龙蜥社区的差异化和优势体现在哪里?主要有哪些迁移工具?
张鹏程:龙蜥社区的诞生源自阿里云将其内部使用的操作系统进行开源,并与更广泛的社区伙伴合作,以开源社区的方式更好地推进这项工作。
龙蜥操作系统是基于阿里云在过去十多年发展历程中的沉淀而来,经过大规模验证的生产级别产品。阿里云最初在内部开发龙蜥操作系统是为了替换 CentOS,以满足内部的需求,例如“双十一”等大规模稳定运行的要求。龙蜥操作系统在满足自用的阶段已经在内部发展出了雏形。
随后,我们考虑到云上存在许多企业用户,他们对操作系统需要具备差异化的能力,例如快速启动和弹性部署等。为此,我们将其产品化为阿里巴巴云操作系统(Alibaba Cloud Linux),以更好地服务于云上的广泛用户。
随着龙蜥社区的发展,从 2020 年开始,我们围绕开源社区产业协同共建机制,共同完善龙蜥操作系统。总的来说,我们的发展差异化最核心的基础一直是立足于云计算趋势的发展,并不断演进,以满足国内的自主需求以及整个技术体系的发展需求。
我们的操作系统具备操作系统必备的核心要素,如稳定性和安全性。阿里云上的龙蜥操作系统经过上百万台服务器的运行打磨,其稳定性显而易见,相比我们所熟悉的开源版本具有更高的稳定性。同时,在安全性方面也进行了针对云场景的优化。
龙蜥社区还积累了一个生态协同的优势。例如,在国外发展成熟的操作系统中,存在停服和不同生态发展之间的差异和隔阂问题。而在我们的社区中,国际合作伙伴(如 Intel/ARM)和国内芯片厂商(如海光、飞腾、申威、龙芯、兆芯)积极参与合作,形成了良好的产业协作样板。大家围绕操作系统基础进行软、硬件协同共同研究,使我们共同研发的操作系统无论在通用服务器还是国产芯片服务器上运行,都能保证相应的硬件支持和优化。随着国内生态的进一步发展,这方面的优势和积累将得到更好的体现。
姜雨生:面对国内的芯片厂商,我们在提供支持的过程中进行了合作。这种合作是在我们的社区内部自发进行的,厂商也会提供一些兼容性方面的支持,毕竟他们可能需要进行一些开发工作。在这个过程中,我们社区的开源工作者们不断构建相关内容以满足需求,还是由厂商主导来支持代码仓库构建?
张鹏程:这是一个综合发展的过程。首先,社区内部有一个完整的治理结构。我们提到了理事单位,国产芯片厂商大部分都参与其中,并负责相应的职责。在理事单位下面,还有一个技术委员会,由理事单位的代表组成,大家从技术角度参与进来。
这意味着芯片厂商确实在这个过程中拥有话语权,并参与讨论。同时,通过一些特殊兴趣小组(SIG)的方式,我们实际上创建了许多小型开源项目,大家在操作系统的范围内进行合作。因此,我们将不同的芯片路线对应到不同的 SIG 合作上,以推动代码的合作。当然,更广泛的个人开发者也非常欢迎参与其中。
目前国产芯片的发展主要由芯片厂商主导,因为他们需要考虑如何使硬件与操作系统相匹配,将其整合到软件生态系统中。这是他们需要完成的一项重要任务。一旦这个飞轮开始转动并且得到越来越多的应用和开发者的支持,这部分可能会有更好的基础,然后可能吸引更广泛的开发者群体参与 SIG 组。这样的结构有助于在这样的基础设施环境下,推动社区的产业协同共研,不断地将其发展壮大,就像滚雪球一样。
姜雨生:龙蜥在金融、交通、教育等多个领域帮助企业实现了操作系统迁移,在这些过往的迁移案例中,有哪些让您印象深刻、特定场景下的迁移诉求?我们对应的解决方案是什么?
张鹏程:确实每个客户都是独特的,无论是在我们的咨询、交流,还是在共同开展项目方面,包括我在阿里云接触的客户,都有特定的情况。从我们的角度来看,我们都有自己的能力和边界,以及生态发展方式。因此,我们需要关注需求的共性和差异,以更好地开展工作。在用户群体中,我们主要关注的是保证操作系统的兼容性。如果兼容性存在不确定性,我们需要识别兼容性风险并进行相应的适配调整,以确保操作系统的顺利运行。另外,对于迁移后的优化和运维管理方式,我们也需要思考如何处理。从容器设计的角度来看,这类需求具有共性。
为了满足这类共性需求,我们从社区的角度推动了一个名为”迁移 SIG”的专项兴趣小组。我们完成了一个名为“社区运维工具”的项目,并与“迁移 SIG”和“运维 SIG”合作,将其打造成一个综合平台或工具集。它不仅包括满足迁移评估、适配和验证的自动化流程能力,还是一个组件化的平台,提供系统运维管理和诊断能力,以及对问题的调优建议。因此,我们基于社区合作的成果,创建了一个升级版的 SysOM 2.0 平台,满足了迁移需求和迁移后的使用调优需求,而上层应用的适配则更多是个性化的需求。
通常情况下,我们希望通过社区合作的方式解决这些个性化问题。有时我们会与一些应用厂商进行合作,他们是应用的提供商,并且由于迁移的机会,与我们社区建立了联系。在应用层面,我们希望借助这些应用厂商的专业知识来解决问题。解决客户问题的同时,我们希望这些厂商与龙蜥社区建立更长期的合作关系。实际上,许多厂商在经历了迁移案例后,已经成为龙蜥社区的生态伙伴,并加入了我们的龙蜥社区生态发展计划 – 龙腾计划。
姜雨生:在迁移过程中,我想了解您是否遇到了一些技术上的难点,哪些难点可能让您头疼很长时间,也可能困扰了整个团队,需要花费大量时间来解决?
张鹏程:在迁移过程中,可以按照前面提到的三个阶段,分享一些典型问题的经验。首先是迁移评估阶段,因为国内用户的评估环境多种多样,非常复杂。硬件设备、部件的兼容性对操作系统的兼容性有很大影响,例如 RAID 卡、网卡等。在开始阶段,很多用户都会提出这些问题。为了应对这些问题,我们借助社区采用了一些兼容性验证小工具,并通过推广和积累逐渐建立了丰富的兼容性列表。我们希望通过这种方式尽早发现问题,应对碎片化的硬件生态。
在迁移过程中,更多的问题可能出现在每个系统环境上。老旧系统在升级过程中的成功率较低,或者在真正进行迁移的系统改动之后,由于环境的变化或重启,系统的运行状态可能不如之前正常。这些问题在运行过程中普遍存在。解决这些问题并没有灵丹妙药,最好的方式是提前进行系统测试验证,确保在生产环境中没有充分验证之前,不要贸然进行调整。在整个项目管理流程中,需要加强验证工作。当然,如果是新系统或者有系统升级的机会,结合项目会有事半功倍的效果。
第三种情况是迁移后的问题排查,通常涉及性能提升。有时候我们会发现,在升级后,性能可能下降了 50% 甚至更多,这时我们需要依赖一些调优工具。在社区中,我们积累了一些调优工具,例如我们自研的 Keentune 工具,它结合社区环境提供调优诊断和性能优化建议。这些都是常见的头疼问题,需要结合工具和经验来解决。
04 开发者如何拥抱变化?
姜雨生:对于企业开发者而言,企业在完成操作系统迁移后,开发者在后续的工作中会发生哪些变化?
张鹏程:这确实是一个现实情况。我认为迁移本身可以分解为两大类型。一种是仅进行操作系统的变更,为了解决原有担忧 CentOS 所带来的停服风险,而解决系统更换的问题。对于这种情况,从用户的角度来看,我们的开发者和系统管理员决策方面无需过多担心,因为原有软件生态的兼容性相对较高,具有一致性。所以对于用户来说,他们原有的运维管理工具、开发工具,包括脚本等,基本上都可以正常运行,不会产生太大的意外。
另一种迁移往往伴随着架构升级,这种架构升级可能体现在前面提到的国内情况中,通常伴随着本土化生态的替代。这可能导致跨架构的情况,例如从原来使用的 x86 体系,经过迁移和升级,开始使用 ARM 甚至一些用户接触到了龙芯或申威等架构。在这种情况下,原有的工具和软件需要与新架构相结合进行相应的生态调整。
还有一种情况是朝着云原生化方向发展。例如从物理机维护或虚拟机逐渐转向容器和 PaaS 层的使用。对于开发者来说,不仅操作系统发生了变化,开发范式和运维管理方式也可能发生变化,整体的工作流都会产生影响。
姜雨生:国产操作系统替换浪潮下,对于身处其中的开发者而言,您认为最关键的、最需要掌握的技能是什么?
张鹏程:我认为今天的技术浪潮不仅限于操作系统领域,我们所看到的是云计算不断发展的浪潮,以及国产化趋势下的新兴趋势。最近,AI 大模型也引发了人们对人工智能的期待,这些都是开发者面临的时代机遇。
因此,在这个过程中,我们可以不仅仅局限于参与操作系统社区的工作。诚实地说,能够参与操作系统级别开发的开发者是非常有限的,但更广泛的开发者群体在进行应用和系统开发方面发挥着重要作用。因此,我们欢迎大家参与龙蜥社区的使用。龙蜥社区不仅仅是一个操作系统,它提供了编程语言的编译环境,以及系统管理和优化工具,这些工具对开发者来说非常实用,可以帮助他们完善自己的工作。
所以我想借这个机会进行一点宣传,我们欢迎读者多关注和了解龙蜥社区,参与其中的活动,如前面提到的 SIG 小组或 Meetup 活动。这些活动能够帮助大家了解龙蜥社区的成员,了解他们最近在忙什么,以及一些新兴创新产品。这些内容可能与我们日常工作相关,如果能对大家有所帮助,那么大家可以逐渐参与到龙蜥社区的活动中来。
05 开源会成为国产操作系统的主流模式吗?
姜雨生:正如我们之前讨论过的,对于龙蜥的产品生态,有一个开源版本,还有一个企业级版本。在这样的生态下,目前龙蜥的主要方向是怎样的?从整体来看,国内操作系统未来的趋势可能会以开源为主,还是以商业化模式为主呢?开源生态建设是否会成为未来的主流趋势?
张鹏程:在开源和闭源、开源和商业之间的话题上,随着开源的发展,它们之间确实像 DNA 的双螺旋一样共同发展。简单来说,我认为开源肯定是发展的主流力量。
具体到您提到的开源和商业之间的比重,我觉得开源依赖于一个强大而健康的商业模式,以确保开源不会变得无根之木。参与开源的人除了出于热爱之外,在企业角度上,他们也从中获得商业利益的满足,才会更愿意投入开源的发展。因此,我认为总体而言,追求商业发展的企业会成为开源的主导力量。就使用方面和未来发展的预测而言,我认为供给侧和需求侧都会影响其发展的趋势和比重。
从供给侧来看,开源方式是必不可缺的。就像我之前提到的,如果几个硬件厂商或芯片厂商各自发展各自的操作系统,构建起生态将变得更加困难。然而,基于像龙蜥社区这样的操作系统层面的中转,硬件厂商可以在下一代芯片演进时基于这个中转来嫁接更广泛的软件生态,这样是符合利益的。因此,从供给侧来看,开源为大家提供了一个促进参与开源并从中获益的过程。
而从需求侧来看,它与我们面对的广泛用户群体的需求有关。一些用户可能 IT 预算较低,或者对业务连续性的要求不高,对他们来说,选择开源已经足够。或者在开源的基础上,叠加其他技术层面的解决方案,也能摆脱对单一节点的需求。另外,一些企业在业务连续性、稳定性和安全性方面有较高要求,这就催生了商业版本的价值。商业版本可以由商业厂商提供更充分的服务、更好的升级以及专家资源,这些都有助于企业解决自身问题。
总体来说,开源和商业版本是相辅相成的。开源作为背后的动力基础,使得参与其中的群体在商业循环中有更强的动力继续贡献开源,并进一步获得回报。这是我们的期望。
龙蜥目前主要的定位是什么,以及国内操作系统未来的趋势,是以开源为主还是商业化模式为主,我认为这是一个相互影响的过程。龙蜥作为一个开源操作系统,在开源社区中发挥着重要的作用,并通过健康的商业模式支持其发展。我们希望在未来能够将两者并驾齐驱,相辅相成,共同发展。
点击立即免费试用云产品 开启云上实践之旅!
原文链接
本文为阿里云原创内容,未经允许不得转载。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
在Python中,当我们使用Python处理字符串时,经常会遇到字符串中包含空格的情况,那么Python如何去掉字符串空格?有多种方法可以从Python字符串中删除空格,以下是详细内容介绍。 1、使用strip()方法 它是一个Python内置函数…