公司欧洲核子研究中心 地点瑞士日内瓦 行业粒子物理研究

挑战

在CERN,欧洲核研究组织,物理学家通过实验来了解基础科学。在它的粒子加速器中,“我们将质子加速到非常高的能量,接近光速,然后让两束质子相撞,”CERN的软件工程师Ricardo Rocha说。“最终的结果是我们需要处理大量的数据。”CERN目前在其数据中心中存储330 pb的数据,预计在未来几年内对其加速器进行升级,将使该数据增加10倍。此外,在大型会议之前,组织的工作负载会达到峰值,因此需要其基础设施达到这些峰值。Rocha说:“我们希望有一个更加混合的基础设施,我们有自己的前提基础设施,但当这些高峰出现时,我们可以暂时利用公共云。”“我们一直在寻找能帮助提高基础设施效率的新技术,这样我们就能将更多资源用于数据的实际处理。”

解决方案

CERN的技术团队采用了容器化和云原生实践,选择Kubernetes进行编排,Helm进行部署,Prometheus进行监控,CoreDNS进行集群内的DNS解析。Kubernetes联盟允许该组织在前提云和公共云上运行一些生产工作负载。

影响

“Kubernetes为我们提供了应用程序的全自动化,”Rocha说。它内置了对Kubernetes中部署的所有应用程序和工作负载的监控和日志记录。这是对我们当前部署的一个巨大简化。”对于复杂的分布式存储系统,部署新集群的时间从3个多小时增加到不到15分钟。向集群中添加新节点过去需要花费一个多小时;现在只需不到两分钟。自动缩放系统组件副本所需的时间从一个多小时减少到不到2分钟。最初,虚拟化提供了20%的开销,但通过调优将其降低到5%。如果换成Kubernetes的裸金属,这一比例将达到0%。不需要托管虚拟机预计也能收回10%的内存容量。

随着研究基础科学的使命,以及稳定的极大机器,欧洲核研究组织(CERN)在只能被描述为Hyperscale的内容。

实验是在粒子加速器中进行的,最大的粒子加速器周长为27公里。CERN软件工程师Ricardo Rocha说:“我们将质子加速到非常高的能量,接近光速,我们让两束质子在明确的位置碰撞。”“我们在这些地方做实验,在那里我们做碰撞。最终的结果是我们需要处理大量的数据。”

他的意思是:CERN目前存储和处理330 pb的数据,这些数据来自4300个项目和3300个用户,在其数据中心中使用了1万个管理程序和32万个核心。

多年来,CERN的技术部门已经建立了一个大型计算基础设施,基于OpenStack的私有云,以帮助该组织的物理学家分析和处理所有这些数据。组织的工作负载会达到极限。“很多时候,就在会议之前,物理学家想要做大量的额外分析来发表他们的论文,我们必须达到这些峰值,这意味着在某些情况下过度投入资源,”Rocha说。“我们希望有一个更加混合的基础设施,我们有自己的前提基础设施,但可以在这些高峰出现时暂时利用公共云。”

此外,几年前,CERN宣布将升级其加速器升级,这意味着可以收集的数据量的十倍增加。“所以我们一直在寻找能够帮助提高我们在基础架构效率的新技术,以便我们可以将更多资源专用于数据的实际处理,”Rocha说。

Rocha的团队在2015年下半年开始关注Kubernetes和集装箱化。“我们已经使用分布式基础设施几十年了,”Rocha说。“Kubernetes和我们有很大关系,因为它是自然分布的。它提供的是一个跨异构资源的统一API来定义我们的工作负载。过去,当我们想在基础设施之外扩大资源时,这是我们经常遇到的问题。”

该团队创建了一个原型系统,供用户在CERN的基础设施中部署自己的Kubernetes集群,并花了6个月的时间验证用例,确保Kubernetes与CERN的内部系统集成。主要用例是批处理工作负载,这代表了CERN超过80%的资源使用。(一个单独进行大部分物理数据处理和分析的项目需要消耗25万核。)Rocha说:“在简化部署、记录和监控方面的投资很快就能得到回报。”其他用例包括基于spark的数据分析和机器学习,以改进物理分析。“事实上,这些技术中的大多数都与Kubernetes很好地集成,这让我们的生活更轻松,”他补充道。

该系统于2016年10月投产,同样使用Helm进行部署,Prometheus进行监控,CoreDNS用于集群内的DNS解析。“Kubernetes给我们的一件事是应用程序的完全自动化,”Rocha说。因此,它内置了对Kubernetes中部署的所有应用程序和工作负载的监控和日志记录。这是对我们当前部署的一个巨大简化。”对于复杂的分布式存储系统,部署新集群的时间从3个多小时增加到不到15分钟。

向集群中添加新节点过去需要花费一个多小时;现在只需不到两分钟。自动缩放系统组件副本所需的时间从一个多小时减少到不到2分钟。

Rocha指出,在粒子加速器中使用的度量标准可能是每秒发生的事件,但在现实中,“真正重要的是我们能处理多快和多少数据。”Kubernetes无疑提高了效率。最初,虚拟化提供了20%的开销,但通过调优将其降低到5%。如果换成Kubernetes的裸金属,这一比例将达到0%。不需要托管虚拟机预计也能收回10%的内存容量。

自2018年2月以来,CERN已经使用其生产工作负载的Kubernetes联合会,使组织能够采用混合云策略。这是非常简单的。“我们有一个夏季实习生在联合会上工作,”Rocha说。“多年来,我一直在开发分布式计算软件,这是十年的十年和很多努力,从很多人稳定并确保它的工作。以及我们的实习生,他能够在几天内完成向我和我的团队进行演示,我们在CERN和外面的一些集群联合在一起的公共云中,我们可以向我们提交工作负载。这对我们来说是令人震惊的。它真的表现出使用这种情况的力量既熟悉的技术。“

有了这样的结果,Kubernetes的应用在CERN取得了迅速的进展,该团队渴望回馈社区。Rocha说:“如果我们回顾上世纪90年代和本世纪初,并没有很多公司专注于这种规模的系统,存储pb级数据,分析pb级数据。”“事实上,Kubernetes得到了如此广泛的社区和不同背景的支持,这激励着我们回馈社会。”

这些新技术不仅仅是改善基础设施。CERN也使用基于kubernetes的Reana /重塑可重用分析的平台,这是“将物理分析定义为一组工作流程的能力,这些工作流程被完全封装在一个单一的入口点上,”Rocha说。这意味着物理学家可以建立他或她的分析,并将其发表在一个存储库中,与同事分享,并在10年内用新数据重新做同样的分析。如果我们回顾10年,这只是一个梦。”

所有这些都极大地改变了CERN的文化。Rocha说:“10年前的趋势总是:‘我需要这个,我找了几个开发者,然后我执行它。“现在的情况是‘我需要这个,我知道其他人也需要这个,所以我去问问周围的人。’”CNCF是一个很好的资源,因为有一个非常大的应用程序目录可用。现在很难证明内部开发新产品是合理的。没有真正的理由继续这样做。如果我们认为这是一个好的解决方案,我们就会尝试接触社区并开始与他们合作。”