诺基亚:通过Kubernetes在电信公司实现5G和DevOps
公司:诺基亚
地点:埃斯波,芬兰
工业:电信
挑战
诺基亚的核心业务是端到端建设电信网络;其主要产品涉及基础设施,如天线、交换设备和路由设备。“作为电信供应商,我们必须将软件交付给几家电信运营商,并将软件放入他们的基础设施中,每个运营商都有不同的基础设施。”高级开源工程师Gergely Csatari说。“有些运营商使用裸机运行,有些运营商在虚拟机上运行,有些运营商在VMware Cloud和OpenStack Cloud上运行。我们希望在所有这些不同的基础架构上运行相同的产品,而无需更改产品本身。”
解决方法
该公司决定转向云原生技术将允许团队在其产品中具有基础设施无关的特性。诺基亚的团队开始尝试使用1.0版之前的Kubernetes。“基于标签的Kubernetes调度的简单性表明我们这种架构将可以扩展、稳定,并且对我们的目的有利。”Csatari说。第一个基于Kubernetes的产品,诺基亚电话应用服务器,于2018年初上线。“现在,所有产品都在进行某种重新架构工作,而且他们正在转向Kubernetes。”
影响
Kubernetes使诺基亚能够进军5G。“当你开发属于运营商基础设施的东西时,你必须为未来开发它,而Kubernetes和容器是前瞻性技术。”Csatari说。使用Kubernetes的团队已经看到了明显的好处。“通过分离基础架构和应用程序层,我们在系统中具有较少的依赖性,这意味着在应用程序层中实现功能更容易。”Csatari说。由于团队可以独立于目标执行环境测试完全相同的二进制工件,“我们在测试的早期阶段发现了更多错误,我们不需要在不同的目标环境中运行相同的测试,例如VMware、OpenStack或裸机。”他补充道。结果,“我们每次发布都节省数百小时。”
“当人们拿起手机,在诺基亚网络上拨打电话时,他们正通过Kubernetes创建容器。” - 诺基亚高级开源工程师Gergely Csatari
诺基亚是20世纪90年代末和21世纪初无处不在的手机中的第一名字。但到了2014年,该公司已经将其移动设备部门出售,并将其核心业务重点放在网络上,而不是用于呼叫的手持设备。
如今,诺基亚正在建设端到端的电信网络,服务于120多个国家的运营商 - 从天线到交换和路由设备。“作为电信供应商,我们必须将软件交付给几家电信运营商,并将软件放入他们的基础设施中,每个运营商都有不同的基础设施。”高级开源工程师Gergely Csatari说。“有些运营商使用裸机运行,有些运营商在虚拟机上运行,有些运营商在VMware Cloud和OpenStack Cloud上运行。我们希望在所有这些不同的基础架构上运行相同的产品,而无需更改产品本身。”
为了寻找一种方法,让其团队能够构建具有基础架构无关性的产品,该公司决定采用容器化、Kubernetes和其他云原生技术,这一举措正在整个电信行业中实现。自2018年初以来,“当人们拿起手机,在诺基亚网络上拨打电话时,他们正通过Kubernetes创建容器。”Csatari说。“现在,所有产品都在进行某种重新架构工作,而且他们正在转向Kubernetes。”
“让社区和CNCF围绕Kubernetes非常重要,不仅对于与使用Kubernetes的其他公司建立联系,了解或讨论Kubernetes的功能。但作为一家想要为Kubernetes做贡献的公司,拥有与CNCF相关而不是特定某一家公司的CLA(贡献者许可协议)非常重要。这是我们开始为Kubernetes和Helm做出贡献的关键一步。” - 诺基亚高级开源工程师Gergely Csatari
诺基亚的云原生之旅大约在两年前开始,当时Csatari的团队正在构建公司的Telephony Application Server(TAS)。“我们希望产品中有一个服务执行引擎,一个与所有其他部分完全独立的功能。”他说。“在那里,我们考虑可以使用的新架构和新工具。我们基于Kubernetes创建了这个特定产品,我们喜欢这项工作,所以我们开始谈论云原生和容器以及所有这些东西。我们对不同的容器编排工具进行了非常广泛的研究。由于我们的软件在特殊环境运行,我们知道我们有一些比较奇怪或不同的要求。”
首先,诺基亚软件为数百万人提供服务,并且需要具备运营商级“五个九”的可用性:达到99.999%。“如果你把它变成分钟,这意味着我们可以在一年内只有10分钟的停机时间。”Csatari说。“这里的停机时间意味着你无法满负荷运转,这意味着我们不可以失败。这包括软件升级等等,因为当你拨打911时,你正在使用我们的软件,你希望它没问题。”
这意味着他们需要能够在其编排工具中设置关联性和反关联性规则。“你无法将所有功能都放在同一个物理主机上,因为物理主机会出现故障。”Csatari解释道。“如果你有一个物理主机失败了,那么你就失去了所有的核心处理过程。然后就没有电话通过。所以我们必须把它们分成不同的物理主机。那时,只有Kubernetes能够提供这些功能。基于标签的Kubernetes调度的简单性表明我们这种架构将可以扩展、稳定,并且对我们的目的有利。”
“Kubernetes打开了所有这些开源项目的窗口,而不是内部实现所有功能。我们的工程师可以更专注于应用程序级别,这实际上是我们销售的东西,而不是基础架构级别。对我们来说,关于Kubernetes最重要的,是它让我们专注于创造我们业务的价值。” - 诺基亚高级开源工程师Gergely Csatari
TAS于2018年初上线,现在Kubernetes也使诺基亚进军5G。该公司正在推出微服务架构和Kubernetes,同时为现有产品添加5G功能。所有新的5G产品开发都将跑在Kubernetes之上。“当你开发属于运营商基础设施的东西时,你必须为未来开发它,而Kubernetes和容器是前瞻性技术。”Csatari说。
Kubernetes实际节省了时间。“通过分离基础架构和应用程序层,我们在系统中具有较少的依赖性,这意味着在应用程序层中实现功能更容易。”Csatari说。由于团队可以独立于目标执行环境测试完全相同的二进制工件,“我们在测试的早期阶段发现了更多错误,我们不需要在不同的目标环境中运行相同的测试,例如VMware、OpenStack或裸机。”他补充道。结果,“我们每次发布都节省数百小时。”
从三十多年前内部构建的诺基亚传统集群管理系统迁移到Kubernetes平台也意味着“我们开始使用Linux作为基本操作系统,因此我们打开了所有这些开源项目的窗口,而不是内部实现所有功能。(来自CNCF生态系统的项目,团队已经在使用Helm、gRPC、CNI、Prometheus和Envoy,并计划实施CoreDNS。)“我们的工程师可以更专注于应用程序级别,这实际上是我们销售的东西,而不是基础架构级别。对我们来说,关于Kubernetes最重要的,是它让我们专注于创造我们业务的价值。”
“我在KubeCon与来自网络SIG和资源管理工作组的人讨论了一些我们的需求,这对我和我的同事来说非常令人兴奋。” - 诺基亚高级开源工程师Gergely Csatari
该公司的长期目标是将整个产品组合转移到Kubernetes平台。为此,诺基亚团队正在与其他公司合作,将靠近无线网络边缘的实时、纳秒敏感应用所需的功能,添加到使用Kubernetes。
CNCF社区证明是合作的一个很好的论坛。“我在KubeCon与来自网络SIG和资源管理工作组的人讨论了一些我们的需求,这对我和我的同事来说非常令人兴奋。”Csatari说。“以前,每个人都有同样的问题,但每个人都是自己解决,现在我们正在一起努力解决同样的问题。”
Csatari认为,Kubernetes对诺基亚的最大影响可能是人们开始考虑电信公司如何做DevOps。“我们正在构建一个DevOps管道,从实际的开发者到客户,并考虑新的方式,我们如何以数字方式向我们的客户提供软件,并从客户那里获得对工程师的反馈。”他说。“这将从根本上改变电信公司提供软件的方式,以及我们开发新功能的速度。这是归功于容器的使用,当然还有Kubernetes的使用。”
最终用户:Gergely Csatari,诺基亚