奥迪借助Karpenter为关键业务节省63%成本
原文链接:
https://aws.amazon.com/cn/solutions/case-studies/audi-efficient-compute-case-study/
翻译:cloudpilot.ai
Karpenter开源地址:https://github.com/kubernetes-sigs/karpenter
全球高档汽车制造商奥迪股份公司(AUDI)借助其在线汽车配置工具帮助客户和经销商定制汽车的完美配置。这一项服务已在全球 30 多个市场推出,但奥迪的单一本地基础架构使其效率低下且难以维护。通过迁移到 AWS 并利用 Karpenter,奥迪提高了其工具的可扩展性、性能和成本,节省了63%的业务成本并且应用启动时间缩短了20%。
奥迪借助 AWS 提高可扩展性、可用性、效率和延迟
奥迪是大众汽车集团的子公司,为全球 100 多个市场生产高档汽车。经销商可以使用奥迪汽车配置工具为客户定制和下订单。客户也可以使用该工具在奥迪网站上选购和比较车辆。汽车配置工具是客户的主要入口,因此它对于业务来说至关重要。

奥迪的汽车配置工具后台系统最初是一个本地的单体应用,但为了应对流量激增和减少资源浪费,同时为各市场快速发布软件更新,奥迪需要更高的效率、高可用性和无缝的可扩展性。
在本地环境中,资源过度配置,且需要额外的服务器待命,因此部署新环境通常需要花费数天甚至数周来完成内部流程。
2018年,奥迪在北美市场测试了其工具的云端原型。在验证云计算的优势后,奥迪将其生产应用迁移到 Amazon EC2,利用其安全且可扩展的计算能力。
接着,公司开始使用 Terraform 和 AWS CloudFormation 进行基础设施自动化和快速部署。通过迁移到云端,奥迪不再需要管理设备和数据中心,而是按需配置资源。此外,奥迪还通过在全球 AWS 区域内部署工作负载,解决了海外客户的延迟问题。
在 AWS 上,奥迪的开发速度和稳定性得到了提升,开发人员的生产力也提高了。奥迪的PO和系统架构师 Florian Königer 表示:“我们现在一切都使用 IaC。”整个环境使用 Terraform 搭建,部分组件使用 AWS CloudFormation。奥迪通过细粒度的权限设置简化了维护工作,减少了不必要的开销。同时,通过蓝绿部署(blue/green deployments),奥迪能够在云端更好地应对资源高峰期,从而稳定环境。
为了提高应用程序的敏捷性、部署速度和可扩展性,奥迪将其架构迁移到容器化平台。这使得向不同市场发布更新变得更加简单。
奥迪通过使用 Kubernetes 及其集群自动扩展工具(Cluster Autoscaler)功能,将原来的单体应用拆分为微服务。但由于 Cluster Autoscaler 对节点组深度依赖,无法灵活管理多种类型实例、应对突发流量高峰存在延迟并且对于节点扩缩容的处理比较低效。

为了进一步优化运维管理并提升灵活性,奥迪决定迁移到 Karpenter ——一个由AWS构建并贡献给 CNCF 的开源高性能 Kubernetes 集群自动扩展工具。
Karpenter项目地址:https://github.com/kubernetes-sigs/karpenter
“在AWS上,我们的可用性相比本地部署有所提升。我们还实现了更低的延迟和更短的响应时间。”奥迪 PO 兼系统架构师 Florian Königer 表示。
利用基于Graviton的实例和Karpenter提升性能和灵活性
通过 Karpenter,奥迪能够在单一配置中使用不同的 Amazon EC2 购买选项、实例类型和尺寸,搭配不同处理器的实例,自动根据价格和容量优化策略选择最佳实例。奥迪使用的选项包括按需实例、Spot实例和预留实例。
在云妙算(Cloudpilot.ai)中用户可以采用智能节点选择功能,为其工作负载匹配多样化的实例类型,以提升计算性能、增加系统的冗余度和容错性,增强应用的稳定性。
2021年,奥迪开始使用搭载 AWS Graviton 处理器的 Amazon EC2 实例,提供高达40%的价格性能提升。到2024年,奥迪扩展了多架构方案,利用 Karpenter 简化 Graviton 实例的配置。
奥迪的开发团队将 Graviton 实例与预留实例和 Spot 实例结合使用,从而优化工作负载的价格性能,并降低汽车配置工具的计算成本。Karpenter 的性能表现是 Cluster Autoscaler 的3-5倍。 基于此,奥迪使用 Karpenter 运行生产环境中的大约1,000个 Kubernetes Pod,使每个实例都能直接由Karpenter 管理,提高灵活性。相比本地系统,Graviton 实例的计算成本降低了63%,应用启动时间缩短了20%。

然而,Spot实例可能随时被回收,用户只能提前2分钟接到中断通知。对于大规模节点部署而言,会导致回滚操作时间不足。
为解决这一问题,云妙算(Cloudpilot.ai)的** Spot Predict 功能通过机器学习算法准确预测出 AWS 全球数十万 Spot 实例的中断时刻,提前60分钟进行回退操作**,进而大幅减少中断事件。结合增强版Karpenter,确保大规模使用 Spot 实例的稳定性。
为了进一步榨干 Spot 实例的价值,云妙算提供 Spot Automation 特性,让尽可能多的应用以尽可能长的时间跑在竞价实例上,进一步帮助您的团队节省云成本,把预算用在关键的业务拓展上。
此外,奥迪还优化了资源使用,特别是在周末的开发环境中,通过 Karpenter 提高了效率,减少了配置容量。
继续云迁移以改善客户体验
通过将汽车配置工具迁移到混合使用 Amazon EC2 实例和 Karpenter 的架构,奥迪加快了应用启动时间,提升了可扩展性,并减少了客户的延迟。“在AWS上,我们的可用性相比本地部署有所提升,”Königer表示,“我们还实现了更低的延迟和更短的响应时间。”
迁移到云端后,奥迪优化了计算基础设施,提升了客户和经销商的整体体验。
项目介绍
Karpenter 于2021年11月由AWS推出,是一款开源的Kubernetes集群自动扩展工具,专为优化 Kubernetes 集群的工作负载设计,旨在以灵活、高性能和简洁的方式实现节点的弹性扩展。今年9月已发布1.0版本。
目前,Karpenter 已为全球超500家知名企业在生产环境中提供服务,包括阿迪达斯、Anthropic、Slack、Figma等。
Karpenter项目地址:
https://github.com/kubernetes-sigs/karpenter
奥迪借助Karpenter为关键业务节省63%成本的更多相关文章
- SpringAop实操之记录关键业务请求数据
AOP,中文名称,切面.在不影响业务代码情况下,实现想要的功能,是个真炫酷的事. aop是个好东西,记录日志是必须的. 记录数据也一样的,那么也是可以用aop来实现的,这里借助注解一起解决问题吧. 因 ...
- 易趣:使用MongoDB创建关键业务的多数据中心应用
eBay:使用MongoDB创建关键业务的多数据中心应用 作为全球前十的零售品牌,eBay的活跃用户有一亿七千多万,并拥有跨越全世界190个市场的10亿购物清单,这样的规模下,eBay绝对不允许出现宕 ...
- 关键业务系统的JVM参数推荐(2018仲夏版) (强烈推荐 唯品会)
年更贴,因为两年里遇到的事情,一些想法变了.也补充了不少VJTools的内容,比如为伸手党们准备的jvm-options.sh. 在关键的业务系统里,除了继续追求技术人员最爱的高吞吐与低延时之外,系统 ...
- 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障
蒋彪,腾讯云高级工程师,10+年专注于操作系统相关技术,Linux内核资深发烧友.目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作. 导语 云原生场景,相比于传统的IDC场景,业务更加复杂 ...
- 云服务利用Auto Scaling节省30%成本
公有云提供了很多免费的高级功能,很多中小用户以为自己用不上.实际上稍微研究一下,就能享受很多便利和节省不少成本. 本方案就是利用弹性伸缩(auto-scaling)减少服务器成本,几乎适合所有集群式部 ...
- FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说
摘自:http://www.infoq.com/cn/news/2017/06/freewheel-experience-on-go Go语言是FreeWheel公司目前主要力推的一个方向,在其看来, ...
- DDos攻击的一些领域知识——(流量模型针对稳定业务比较有效)不稳定业务采用流量成本的检测算法,攻击发生的时候网络中各个协议的占比发生了明显的变化
在过去,很多防火墙对于DDoS攻击的检测一般是基于一个预先设定的流量阈值,超过一定的阈值,则会产生告警事件,做的细一些的可能会针对不同的流量特征设置不同的告警曲线,这样当某种攻击突然出现的时候,比如S ...
- 网络流量分析——NPMD关注IT运维、识别宕机和运行不佳进行性能优化。智能化分析是关键-主动发现业务运行异常。科来做APT相关的安全分析
科来 做流量分析,同时也做了一些安全分析(偏APT)——参考其官网:http://www.colasoft.com.cn/cases-and-application/network-security- ...
- 借助 ASR 和 System Center 执行基于 SAN 复制的企业级灾难恢复
Abhishek A. Hemrajani 云 + Enterprise项目经理 对于Azure Site Recovery,我们的优先级已经提升为每个人都可以在任意地点获取易于使用的灾难恢复 (DR ...
- 构建微软智能云:介绍新的Azure业务转型创新技术
在我和用户的交流中发现,在任何类型和规模的组织中,每当涉及到在云中实现商业价值的最大化并取得竞争优势的时候,就会明显呈现三个趋势.首先,应用程序促进着组织更快速实现价值.同时,诸如机器学习.数据预测分 ...
随机推荐
- 在 Ubuntu 环境下 Qt Creator 无法使用搜狗输入法
在 Ubuntu 环境下 Qt Creator 无法使用搜狗输入法 在 Ubuntu 中安装 Qt Creator 后,发现无法使用搜狗输入法.切换输入法也没有效果. 最初以为是搜狗输入法出了问题,后 ...
- 修改 Ubuntu 文件夹为英文
如果你在安装 Ubuntu 时,语言选了中文,那么系统自动创建的文件夹也会是中文(下载.图片 等).有时这会造成不便.可以通过以下命令将文件夹改为英文: LANG=C LC_ALL=C xdg-use ...
- Maven 打 JAR 包
项目和依赖分别打入独立 JAR 包 使用 Maven Jar Plugin 插件,可以将项目自身单独打成一个 JAR 包,项目依赖的 JAR 包统一放置到指定目录. 在项目的 pom.xml 中添加如 ...
- 几步轻松定制私人AI助手
这两年大模型的发展持续火热,以至于许多资本和学者认为AI出现了泡沫,根本原因还是因为大模型目前还没有出现能够结合行业切实落地的应用. 我才不关注泡沫不泡沫呢,我只关注大模型能给我带来哪些帮助即可.大模 ...
- Locust 进行分布式负载测试
什么是 Locust Locust 是一个开源的负载测试工具,用于测试网站和其他应用程序的性能.它通过编写 Python 脚本来定义虚拟用户的行为,模拟这些用户对目标系统发起请求.Locust 提供了 ...
- Figma 学习笔记 – Component
参考 Guide to Components in Figma Figma Tutorial: Components - The Basics (Youtube) 定义与用途 Figma 的 Comp ...
- servlet一些笔记、详解
一.什么是servlet? 处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西.理解这个的前提是了解一些http协议的东西,并且知道 ...
- Servlet——Tomcat8以前解决中文乱码问题
Request 请求参数中文乱码问题 // 1.解决乱码问题:POST,getReader() request.setCharacterEncoding("UTF-8&quo ...
- 【QT性能优化】QT性能优化之QT6框架高性能模型视图代理框架千万级数据表分层查询优化
[QT性能优化]QT性能优化之QT6框架高性能模型视图代理框架千万级数据表分层查询优化 简介 本文使用QT树状控件QTreeView快速展示SQLite数据库中的1000万条具有层次结构的数据记录,当 ...
- C#上位机与PLC通信心跳的实现方法
-Begin- 大家好!我是付工.众所周知,在工业自动化控制系统中,上位机与下位机之间的通信是实现自动化生产的关键环节之一.为了确保通信的稳定性和可靠性,我们通用会采用一种被称为[心跳机制]的方法,它 ...