原文链接:

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. Devexpress GridView 单元格输入检验

    实现效果 打开设计器 找到CellValueChanged事件 编写代码 private void gvmain_CellValueChanged(object sender, DevExpress. ...

  2. SSM + Freemarker 开发框架快速搭建

    1.项目骨架建立 一.使用开发工具IDEA,构建Maven项目,然后调整Maven项目结构,使其成为一个标准的web项目: 此处不选择Maven骨架,直接Next: 输入项目的相关信息,直接Finis ...

  3. SciPy从入门到放弃

    目录 SciPy简介 拟合与优化模块 求最小值 曲线拟合 线性代数模块 统计模块 直方图和概率密度函数 统计检验 SciPy简介 SciPy是一种以NumPy为基础,用于数学.工程及许多其他的科学任务 ...

  4. 手把手教你安装Jupyter Notebook(保姆级教程)

    来源于:https://blog.csdn.net/weixin_43855159/article/details/137738714 1. 什么是Jupyter Notebook Jupyter N ...

  5. c程序设计语言 by K&R(五)UNIX系统接口

    一.文件描述符 在unix操作系统中,所有的外围设备(包括键盘和显示器)都被看作是文件系统的文件,因此,所有的输入.输出都要通过读/写文件来完成.也就是说,通过一个单一的接口就可以处理外围设备和程序之 ...

  6. 使用vue-cli4快速搭建项目环境、使用webpack4打包自己的library类库、封装vue插件并发布

    快速创建 使用官方推荐的vue-cli创建项目如下: # 安装 Vue Cli npm install -g @vue/cli # 创建一个项目 vue create vanttest # 创建完成后 ...

  7. CSS & JS Effect – Do something on enter/leave window tab

    需求 我在做一个体验 当用户 submit enquiry 后会 window.open 开启 WhatsApp.而当用户关闭 WhatsApp 回来网站后,会 show 一个 feedback me ...

  8. OpenSSL证书通过Subject Alternative Name扩展字段扩展证书支持的域名

    1.概述 1.1 什么是Subject Alternative Name(证书主体别名) SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展.它允 ...

  9. MyBatis——案例——查询-多条件查询(多参数接收的三种方法)

    查询-多条件查询   编写接口方法:Mapper接口       参数:所有条件查询 List<Brand> selectByCondition(int status,String com ...

  10. Flutter 3.3 正式发布

    Flutter 3 是我们正式为全平台提供支持的一个重量级里程碑,距离它的发布仅过去了三个月,今天让我们有请 Flutter 3.3 正式版!近三个月我们并没有放慢更新迭代的速度--自 Flutter ...