公司 诺基亚 地点 芬兰埃斯波 行业 电信

挑战

诺基亚 的核心业务是构建端到端的电信网络;其主要产品与基础设施相关,例如天线、交换设备和路由设备。“作为电信供应商,我们必须将软件交付给多家电信运营商,并将软件放入他们的基础设施中,而每家运营商的基础设施都略有不同,”高级开源工程师 Gergely Csatari 说道。“有些运营商在裸金属上运行。有些运营商在虚拟机上运行。有些运营商在 VMware CloudOpenStack 云上运行。我们希望在所有这些不同的基础设施上运行相同的产品,而无需更改产品本身。”

解决方案

该公司决定转向云原生技术,这将允许团队在其产品中实现与基础设施无关的行为。诺基亚的团队在 1.0 版本之前就开始尝试 Kubernetes。“Kubernetes 基于标签调度的简单性表明,这种架构将具有可扩展性、稳定性,并且非常适合我们的目的,”Csatari 说道。第一个基于 Kubernetes 的产品,诺基亚电话应用服务器,于 2018 年初上线。“现在,所有产品都在进行某种重新架构工作,并且正在迁移到 Kubernetes。”

影响

Kubernetes 使诺基亚能够进军 5G。“当你开发的东西是运营商基础设施的一部分时,你必须为未来而开发,而 Kubernetes 和容器是面向未来的技术,”Csatari 说道。使用 Kubernetes 的团队已经看到了明显的好处。“通过分离基础设施和应用层,我们减少了系统中的依赖关系,这意味着在应用层中实现功能更容易,”Csatari 说道。而且,由于团队可以独立于目标执行环境测试完全相同的二进制工件,“我们在测试的早期阶段发现了更多错误,并且我们不需要在不同的目标环境(如 VMware、OpenStack 或裸金属)上运行相同的测试,”他补充道。因此,“我们在每个版本中节省了数百个小时。”

诺基亚是 20 世纪 90 年代末和 21 世纪初手机无处不在时的第一品牌。但到 2014 年,该公司已将其移动设备部门出售,其核心业务不再是用于通话的手持设备,而是网络。

如今,诺基亚正在构建端到端的电信网络——从天线到交换和路由设备——为 120 多个国家的运营商提供服务。“作为电信供应商,我们必须将软件交付给多家电信运营商,并将软件放入他们的基础设施中,而每家运营商的基础设施都略有不同,”诺基亚高级开源工程师 Gergely Csatari 说道。“有些运营商在裸金属上运行。有些运营商在虚拟机上运行。有些运营商在 VMware Cloud 和 OpenStack 云上运行。我们希望在所有这些不同的基础设施上运行相同的产品,而无需更改产品本身。”

为了寻找一种方法,让其团队能够构建具有与基础设施无关的行为的产品,该公司决定采用容器化、Kubernetes 和其他云原生技术,整个电信行业都在采取这一举措。自 2018 年初以来,“当人们拿起手机并在诺基亚网络上拨打电话时,他们正在使用 Kubernetes 在后台创建容器,”Csatari 说道。“现在,所有产品都在进行某种重新架构工作,并且正在迁移到 Kubernetes。”

诺基亚的云原生之旅始于大约两年前,当时 Csatari 的团队正在构建该公司的电话应用服务器 (TAS)。“我们希望在产品中拥有一个服务执行引擎,这是一个与所有其他部分完全独立的功能,”他说道。“在那里,我们有机会思考我们可以使用的新架构和新工具。我们基于 Kubernetes 创建了这个特殊的产品,我们很喜欢这项工作,所以我们开始谈论云原生、容器以及所有这些东西。我们对不同的容器编排工具进行了非常广泛的研究。我们知道我们有一些,比方说,奇怪或不同的需求,因为我们的软件运行在特殊的环境中。”

一方面,诺基亚的软件为数百万人提供服务,并且需要具有运营商级的“五个九”可用性:正常运行时间达到 99.999%。“如果你把它换算成分钟,这意味着我们全年只允许有 10 分钟的停机时间,”Csatari 说道。“这里的停机时间意味着你无法为用户提供满负荷服务,这意味着我们不能失败。这包括软件升级,所有的一切,因为当你拨打 911 时,你正在使用我们的软件,你希望它能正常工作。”

这意味着他们需要能够在其编排工具中设置亲和性和反亲和性规则。“你不能将所有功能都放在同一台物理主机上,因为物理主机会出现故障,”Csatari 解释道。“如果你的一台物理主机出现故障,那么你将丢失所有核心处理进程。然后就无法接通电话。所以我们必须将它们分散到不同的物理主机上。当时,只有 Kubernetes 能够提供这些功能。Kubernetes 基于标签调度的简单性表明,这种架构将具有可扩展性、稳定性,并且非常适合我们的目的。”

TAS 于 2018 年初上线,现在 Kubernetes 也使诺基亚能够进军 5G。该公司正在引入微服务架构和 Kubernetes,同时为现有产品添加 5G 功能。所有新的 5G 产品开发都将在 Kubernetes 之上进行。“当你开发的东西是运营商基础设施的一部分时,你必须为未来而开发,而 Kubernetes 和容器是面向未来的技术,”Csatari 说道。

得益于 Kubernetes,我们节省了大量时间。“通过分离基础设施和应用层,我们减少了系统中的依赖关系,这意味着在应用层中实现功能更容易,”Csatari 说道。由于团队可以独立于目标执行环境测试完全相同的二进制工件,“我们在测试的早期阶段发现了更多错误,并且我们不需要在不同的目标环境(如 VMware、OpenStack 或裸金属)上运行相同的测试,”他补充道。因此,“我们在每个版本中节省了数百个小时。”

从诺基亚 30 多年前在内部构建的传统集群管理系统迁移到 Kubernetes 平台也意味着“我们开始使用 Linux 作为基础操作系统,所以我们只是为所有这些开源项目打开了大门,而不是在内部实现所有东西,”Csatari 说道。(在 CNCF 的生态系统中,该团队已经在使用 HelmgRPCCNIPrometheusEnvoy,并计划实施 CoreDNS。)“我们的工程师可以更多地关注应用层,这实际上是我们正在销售的东西,而不是基础设施层。对我们来说,Kubernetes 最重要的一点是,它让我们能够专注于业务的价值创造。”

该公司的长期目标是将整个产品组合迁移到 Kubernetes 平台。为此,诺基亚团队正在与其他公司合作,添加使用 Kubernetes 所需的功能,以支持无线网络边缘附近的实时、纳秒级敏感应用。

事实证明,CNCF 社区是这种合作的绝佳论坛。“我在 KubeCon 上与来自网络 SIG 和资源管理工作组的人员进行了一些讨论,以共同努力满足我们的需求,这对我和我的同事来说非常令人兴奋,”Csatari 说道。“以前,每个人都遇到过同样的问题,但每个人都只是自己解决,而现在我们正在尝试共同解决同样的问题。”

Csatari 认为,Kubernetes 对诺基亚产生的最大影响可能是,人们开始思考电信公司如何进行 DevOps。“我们正在构建一条 DevOps 管道,这条管道从实际的开发人员一直延伸到客户,并思考我们如何以数字方式将软件交付给客户,并从客户那里获得直接反馈给工程师的新方法,”他说道。“这将从根本上改变电信公司交付软件的方式,以及我们开发新功能的速度。这是因为使用了容器,当然还有 Kubernetes。”