【51CTO.com快译】德国电信是德国和欧盟地区领先的电信公司,移动用户超过2.42亿、年收入超过1000亿欧元。德国电信的运营规模是如今很少有公司能企及的。特别令人感兴趣的是它涉足边缘计算以及如何借助一个小团队大规模管理边缘基础设施。
顾名思义,边缘计算在尽可能靠近最终用户的地方处理数据。这可能意味着在本地服务器、附近的服务器甚至直接在设备上处理数据。目的是缩短延迟时间、改善用户体验。边缘计算是物联网和5G的关键技术,而不仅仅面向电信公司。
德国电信是全球最大的电信公司之一,需要利用边缘计算的力量为其庞大的客户群提供先进的移动服务。虽然这是值得努力的目标,但每一步面临着复杂的挑战。
Vuk Gojnic是德国电信云原生/Kubernetes平台的团队负责人,负责该项目并为应用程序所有者提供支持,而这些应用程序所有者进一步向供应商和应用程序开发者提供基础设施服务。
采取平台方法
Gojnic很快意识到试图以传统方式构建这个系统是徒劳的,尤其是考虑到他那十来人的团队已经忙于管理其他基础设施项目。为了取得成功,这个边缘平台需要一种新方法,一种减少手动操作,性能和数据安全等基本需求又不受影响的方法。
Gojnic决定采取平台方法来扩建德国电信的边缘基础设施,这是过去几年《DevOps状况报告》建议的一种策略,也是高绩效DevOps团队的关键指标。它需要搭建一个内部开发者平台,凭借该平台,就可以对资源进行模板化,并轻松创建供开发团队使用的资源。像Gojnic的团队这样的专门平台团队管理和维护平台。对于平台团队来说,好处是减少了手动重复工作,还能构建在整个组织中轻松扩展的解决方案。
新平台的架构可支持成千上万应用程序和服务,并每秒处理数十亿个事件。该平台将在 10000多个Kubernetes集群上运行,分布在10个数据中心和10000个边缘位置。
由GitOps管理平台
Gojnic的团队获得了Weaveworks团队的帮助,以协助他们遵循GitOps方法来扩建这个平台。GitOps是一种现代软件交付实践,依赖Git代码存储库作为唯一的真实来源。它支持关键原则,比如声明式基础设施,即系统的每个部分都在Git代码存储库中加以描述。它利用Git的内置版本控制功能来跟踪所有更改,并自动执行合规操作。此外,它使用Flux之类的开源工具以发现生产系统何时偏离Git中声明的状态,并将系统调回到原始状态。这些实践确保边缘基础设施等系统能够以一种可扩展的现代方式来构建,从而减少工作量、提供所需的性能,又不影响安全和合规方面的关键需求。想开始入手GitOps,建议下载Weave Gitops Core。
使用Das Schiff在边缘处交付
德国电信构建了这个新平台,将其命名为Das Schiff(德语中意为“轮船”)。它甚至开源了该平台,称之为“建立和监督在GitOps循环中(自我)管理的自主云原生基础设施的引擎”。
Das Schiff的核心是Flux CD工具,用于为平台管理持续交付的各个方面。深入挖掘就能发现,所使用的Flux的关键组件是Kustomization控制器和Helm控制器。Kustomization控制器监控对集群所做的更改,为这些更改生成YAML文件,生成Kubernetes清单,并按定义的顺序运行管道。Helm控制器从对象生成Helm图表,并自动执行测试、回滚和卸载包等操作。Das Schiff还使用Prometheus和Logstash来监控时间序列指标和日志。可以在这篇 WeaveWorks博文中阅读有关Das Schiff架构的更多信息。
Das Schiff使德国电信的团队能够在物理机上配置专门针对边缘的硬件,比如无线电或网络适配器和硬件加速器。它支持边缘的虚拟网络,以支持德国电信力推的5G和边缘处理。 Das Schiff还支持“混合模式”,即团队可以在Kubernetes集群中运行混合型的虚拟化和非虚拟化裸机节点。考虑到边缘的资源限制,Das Schiff使用AWS Firecracker来配置microVM,从而显著减少池中节点占用的资源。
虽然这是了不起的成就,但并非没有挑战。由于其云原生架构,新平台呈大规模分布式,且极具动态性。然而,通过战略性地采取做法,并利用平台方法和GitOps,德国电信最终构建了一个可以扩展到边缘并支持不同团队和业务需求的系统。
原文标题:How Deutsche Telekom Manages Edge Infrastructure with GitOps,作者:Mike Kress
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】