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

挑战

诺基亚的核心业务是构建端到端的电信网络;其主要产品与基础设施相关,例如天线、交换设备和路由设备。“作为电信供应商,我们必须将我们的软件交付给多个电信运营商,并将软件投入到他们的基础设施中,而每个运营商都拥有略微不同的基础设施,”高级开源工程师 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。该公司在为现有产品添加 5G 功能的同时,引入了微服务架构和 Kubernetes。所有新的 5G 产品开发都将在 Kubernetes 之上进行。“当你开发运营商基础设施的一部分时,你必须为未来开发它,而 Kubernetes 和容器是面向未来的技术,”Csatari 说。

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

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

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

CNCF 社区正在成为这种合作的一个很好的论坛。“我在 KubeCon 与网络 SIG 和资源管理工作组的人员进行了一些讨论,以共同研究我们的要求,这对我和我的同事来说非常令人兴奋,”Csatari 说。“以前,每个人都遇到过同样的问题,但每个人都只是用自己的方式解决了,现在我们正在尝试共同解决同一个问题。”

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