原文链接:

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%成本的更多相关文章

  1. SpringAop实操之记录关键业务请求数据

    AOP,中文名称,切面.在不影响业务代码情况下,实现想要的功能,是个真炫酷的事. aop是个好东西,记录日志是必须的. 记录数据也一样的,那么也是可以用aop来实现的,这里借助注解一起解决问题吧. 因 ...

  2. 易趣:使用MongoDB创建关键业务的多数据中心应用

    eBay:使用MongoDB创建关键业务的多数据中心应用 作为全球前十的零售品牌,eBay的活跃用户有一亿七千多万,并拥有跨越全世界190个市场的10亿购物清单,这样的规模下,eBay绝对不允许出现宕 ...

  3. 关键业务系统的JVM参数推荐(2018仲夏版) (强烈推荐 唯品会)

    年更贴,因为两年里遇到的事情,一些想法变了.也补充了不少VJTools的内容,比如为伸手党们准备的jvm-options.sh. 在关键的业务系统里,除了继续追求技术人员最爱的高吞吐与低延时之外,系统 ...

  4. 内存回收导致关键业务抖动案例分析-论云原生OS内存QoS保障

    蒋彪,腾讯云高级工程师,10+年专注于操作系统相关技术,Linux内核资深发烧友.目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作. 导语 云原生场景,相比于传统的IDC场景,业务更加复杂 ...

  5. 云服务利用Auto Scaling节省30%成本

    公有云提供了很多免费的高级功能,很多中小用户以为自己用不上.实际上稍微研究一下,就能享受很多便利和节省不少成本. 本方案就是利用弹性伸缩(auto-scaling)减少服务器成本,几乎适合所有集群式部 ...

  6. FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说

    摘自:http://www.infoq.com/cn/news/2017/06/freewheel-experience-on-go Go语言是FreeWheel公司目前主要力推的一个方向,在其看来, ...

  7. DDos攻击的一些领域知识——(流量模型针对稳定业务比较有效)不稳定业务采用流量成本的检测算法,攻击发生的时候网络中各个协议的占比发生了明显的变化

    在过去,很多防火墙对于DDoS攻击的检测一般是基于一个预先设定的流量阈值,超过一定的阈值,则会产生告警事件,做的细一些的可能会针对不同的流量特征设置不同的告警曲线,这样当某种攻击突然出现的时候,比如S ...

  8. 网络流量分析——NPMD关注IT运维、识别宕机和运行不佳进行性能优化。智能化分析是关键-主动发现业务运行异常。科来做APT相关的安全分析

    科来 做流量分析,同时也做了一些安全分析(偏APT)——参考其官网:http://www.colasoft.com.cn/cases-and-application/network-security- ...

  9. 借助 ASR 和 System Center 执行基于 SAN 复制的企业级灾难恢复

    Abhishek A. Hemrajani 云 + Enterprise项目经理 对于Azure Site Recovery,我们的优先级已经提升为每个人都可以在任意地点获取易于使用的灾难恢复 (DR ...

  10. 构建微软智能云:介绍新的Azure业务转型创新技术

    在我和用户的交流中发现,在任何类型和规模的组织中,每当涉及到在云中实现商业价值的最大化并取得竞争优势的时候,就会明显呈现三个趋势.首先,应用程序促进着组织更快速实现价值.同时,诸如机器学习.数据预测分 ...

随机推荐

  1. DPABInet做 Network Contruction时一直报错“函数或变量 'nets_netmats' 无法识别”

    DPABInet模块做 Network Contruction时一直显示报错"函数或变量 'nets_netmats' 无法识别",是因为没有将FSLNets导入路径,所以找不到该 ...

  2. vue自定义组件的点击事件失效

    在vue开发过程中为了减少重复代码,很多时候都需要将重复的部分写成一个组件,方便调用.但是使用组件时很可能又会给该组件添加点击事件.如果直接这样写,事件则会失效: 正确写法应该是这样:

  3. 游戏AI行为决策——GOAP(目标导向型行动规划)

    游戏AI行为决策--GOAP(附代码与项目) 新的一年即将到来,感觉还剩一种常见的游戏AI决策方法不讲的话,有些过意不去.就在这年的尾巴与大家一起交流下「目标导向型行为规划(GOAP)」吧! 另外,我 ...

  4. Facebook – Reviews (Graph API)

    前言 企业网站经常需要放 customer reviews 来增加 conversion. 常见的 Reviews 平台有 Facebook Reviews 和 Google Reviews. 这篇, ...

  5. CSS – 屏幕, 打印, 分辨率, 物理像素, 逻辑像素, Retina, DPI, PPI 是什么?

    前言 之前就有写过关于 Retina 和 Responsive Image 响应式图片 (responsive image) Retina 显示屏 但写的很烂, 这篇从新整理一下. 参考: 掌握web ...

  6. mysql alter table修改表命令整理

    这篇文章主要介绍了mysql alter table修改表命令整理的相关资料,需要的朋友可以参考下   MYSQL ALTER TABLE命令用于修改表结构,例如添加/修改/删除字段.索引.主键等等, ...

  7. USB协议详解第3讲(USB描述符-设备描述符)

    我们第一个学习要点就是USB描述符,所谓描述符其实就是C语言里面的结构体或者数组,数组包含的信息说明当前的设备具有哪些特征.USB描述符有设备描述符.配置描述符.接口描述符.端点描述符.字符串描述符, ...

  8. cpu proc sys文件系统下的含义

    proc文件系统(/proc/sys/kernel/) sched_child_runs_first /proc/sys/kernel/sched_child_runs_first是Linux内核中的 ...

  9. 前端工程化解决方案webpack使用小结

    前端工程化解决方案webpack,模块化.组件化.规范化.自动化,使得前端开发更加高效. 功能:代码压缩混淆.处理浏览器端js的兼容性.以模块化的方式处理项目中的资源 webpack插件:clean- ...

  10. 存储事件 storage

    // 去手动删除本地存储触发存储事件 window.addEventListener('storage', function () { console.log('存储事件触发了') }) const ...