前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >9 个月节省 4.23 亿:由 AWS EC2 迁移 Kubernetes

9 个月节省 4.23 亿:由 AWS EC2 迁移 Kubernetes

作者头像
云头条
发布2022-06-06 16:46:49
发布2022-06-06 16:46:49
4850
举报
文章被收录于专栏:云头条云头条

对于在云端运行重要工作负载的任何企业而言,确保云支出随需求增减而自动增减是核心优先事项之一,但对于太多的企业来说,这又常常是令人痛苦、代价高昂的教训。不过从来不缺一线用户给出的有意义的详细指导,爱彼迎(Airbnb)正是愿意分享宝贵经验的用户之一。

爱彼迎的两位软件工程师Evan Sheng和David Morrison在一篇详细的新文章中介绍了他们如何使用Kubernetes Cluster Autoscaler动态扩展云集群;近年来,这家公司做出了许多早期云采用者正在做出的转变:将几乎所有在线服务从手动编排的AWS EC2实例迁移到开源容器编排系统Kubernetes。

在此过程中,工作团队对上游的Kubernetes Cluster Autoscaler作了诸多改进,以帮助改进这个容器编排系统管理AWS Autoscaling Group(ASG)的方式。

与许多组织一样,就在不久前,爱彼迎的每项AWS服务也都是手动配置的,以提供必要的可用计算容量。该公司在积极确定支出最高的几方面并采取相应节支措施后收效显著,在2020年的短短9个月内省下了6350万美元(4.23 亿人民币)的托管成本,这得益于采取多管齐下的措施:一些深刻的文化变革、转向Kubernetes、重新思考存储策略以及与AWS合作。

EC2节点 vs Kubernetes节点

捎带提一下,Kubernetes经常因其复杂性而受到抨击。

正如约会应用程序Hornet的一位首席DevOps工程师称:“我是Kubernetes的忠实拥趸。如果我在构建一大堆自定义的AWS编排工具,按部就班地操作,下一个人进来时,我得教他如何做所有这些事。如果下一个人进来时我在Kubernetes上做所有事,我只需要说‘嘿,你知道Kubernetes吗?”就在不久前,Hornet运行的IT环境还“非常像2012年至2014年时期的AWS自动扩展组、负载均衡系统和启动配置”,听起来与爱彼迎之前的环境很相似。

爱彼迎如何降低AWS成本?

如今,爱彼迎在近百个集群上运行数千个节点(虚拟机或物理机),以适应要求苛刻的工作负载。

在此之前,云容量管理颇具挑战性,正如两位工程师在5月23日的博文中所写:“[以前]服务的每个实例都在自己的机器上运行,且手动扩展,确保拥有适当的容量,处理流量增加的情况。每个团队的容量管理各不相同;一旦负载减轻,容量很少会被取消配置,成本随之增高……”

Kubernetes集群类型

爱彼迎在今年5月称第一季度的预订量就超过1亿次,它诞生于云——早在2007年 AWS本身还处于起步阶段时,它就启动了平台,用户“只需在控制台上点击几下”。

然而由于业务增长迅猛,爱彼迎在2021年声称,几年前“注意到AWS的每月成本增长超过了收入增长”,于是立下了目标,保持“预订出去的每晚基础设施成本”稳定。

该公司于是召集了跨职能团队,获取了大量数据,很快取得了一些成功。其中一项重要工作是解决存储问题:“Amazon S3存储成本历来是我们支出最高的方面之一,而通过实施数据保留策略、利用更具成本效益的存储层以及清理闲置未用的仓库存储,我们大幅降低了每月的S3成本”,爱彼迎去年特别指出。

“你需要考虑数据的访问模式以及S3存储桶中的文件大小和对象数量,因为可能会产生意想不到的成本”,爱彼迎团队特别指出。

“不妨以Glacier为例。对于存储在Glacier中的每个对象,S3在‘标准’存储类中存储额外的32KB数据。因此,如果你将一个对象存储到Glacier,大小为1 KB,S3将在‘标准’存储类中添加额外的32KB,两者均按相应的价格收费。因此,虽然Glacier的成本仅为‘标准’存储类成本的十分之一,但总成本可能高于仅仅将数据存储在‘标准’存储类的成本。”

该公司还大量使用了AWS的2019年“储蓄计划”:如果客户同意在一定期限内保持稳定的计算使用量,这种定价模式让他们可以在Amazon EC2和AWS Fargate上节省高达72%的支出。

爱彼迎的云效率之旅分多步走,不过它向Kubernetes转变给世人提供了一个特别引人注目的案例研究对象,表明爱彼迎如何降低了AWS成本。

爱彼迎的Kubernetes迁移

爱彼迎已将几乎所有在线服务从手动编排的EC2实例迁移到了Kubernetes。

异构Kubernetes集群

两位工程师在博文中特别指出,这种迁移是爱彼迎得以降低AWS成本的主要原因,可以分为三个阶段。

1:同构集群(Homogenous Clusters),手动扩展;

2:多种集群类型(Multiple Cluster Types),单独自动扩展;

3:异构集群(Heterogeneous Clusters),自动扩展。

两位工程师Evan Sheng和David Morrison特别指出,Kubernetes的初始部署相对简单:“只有少数几个集群,每个集群有单一的底层节点类型和配置,它们只运行无状态的在线服务……[然后我们]开始在多租户环境(一个节点上有多个pod)中运行容器化服务。这种聚合减少了资源浪费,并将这些服务的容量管理整合到Kubernetes控制平面处的单一控制点。在这个阶段,我们手动扩展集群,但这仍比以前的情形有显著改进。”

当团队试图将需求各异的更多样化的工作负载类型迁移到Kubernetes 上时,“我们创建了一个集群类型抽象来[定义]集群的底层配置,这意味着某一类集群的所有集群都一样,从节点类型到不同的集群组件设置……我们起初手动管理每个集群容量的策略很快失灵了。”

“为了解决这个问题,我们将Kubernetes Cluster Autoscaler添加到每个集群中。该组件可以根据pod [一组容器]请求,自动调整集群大小——如果集群容量耗尽,可以通过添加新节点来满足待处理的pod的请求,Cluster Autoscaler就会启动一个集群。同样,如果集群中有节点在很长一段时间内未被充分利用,Cluster Autoscaler将从集群中删除这些节点。添加这个组件非常适合我们的环境,为我们节省了大约5%的云总支出,还节省了手动扩展集群的运营开销。”

到目前为止,一切很好,但该公司面临将手动AWS处理换成Kubernetes处理的风险,该公司坦率地承认:“我们的[Kubernetes]集群类型已增加到30多种,集群数量已增加到100多个。这种扩展使Kubernetes集群管理变得枯燥乏味……”这两位工程师说,补充道他们试图通过创建“异构”集群来解决这个问题,异构集群可以借助单个Kubernetes控制平面来管理不同的工作负载;这意味着可减少配置测试,“由于爱彼迎如今在Kubernetes集群上运作,每个集群的效率为降低成本提供了很大的帮助……整合大小不一的各类工作负载可以带来更好的装箱和效率,因此带来更高的利用率。”

如果买不到,那就自建……

Kubernetes Cluster Autoscaler 是一个Kubernetes组件,可根据利用率指标来添加或删除“节点”,即当利用率低于某个阈值时,从计算集群中删除节点,以确保基础架构具有弹性,还可以根据工作负载不断变化的需求动态调整资源。

集群自动扩展器和定制的gRPC扩增器

这个工具维护一群节点组(可用计算资源),针对待处理的工作负载运行调度模拟,以测试节点组能否扩展,并将模拟结果传递给一个名为Expander的组件:该组件会基于用户指定的分层优先级列表选择要扩展的节点组,只要被告知怎么选择。

发现Kubernetes的默认扩展器“不够先进,无法满足我们在成本和实例类型选择方面更复杂的业务需求”后,爱彼迎团队构建了一个实施成gRPC客户端和服务器的自定义工具以及对Kubernetes Auto Scaler所作的另外两处关键改进。

1、没有容量的AWS ASG提前中止:使Cluster Autoscaler循环发生断路,等待它尝试启动的节点,看看是否准备好,为此需要调用AWS EC2端点,检查ASG是否有容量。实施该更改后,用户扩展起来快得多,同时确保正确。以前,使用优先级等级的用户必须在每次尝试ASG启动之间等待15分钟,然后才能尝试优先级较低的ASG。

2、缓存启动模拟,以减少AWS API调用:为AWS ASG Launch Templates(启动模板)引入缓存。实施该更改后,大大减少了API调用数量,即使在使用大量ASG的情况下,这对我们的总体集群策略至关重要。以前,针对空的ASG(集群中没有节点),Cluster Autoscaler会反复调用AWS端点以获取启动模板,从而导致AWS API实行限制……”

也许这不是最轻松的转型之旅,但如今爱彼迎在单一平台上拥有数量最充足的计算资源,“提供了一种有效提高效率的手段”,团队特别指出自2022年初以来它一直在使用针对K8s自动扩展器的自定义调整,“顺畅无阻地扩展我们的所有集群”——更宽泛地说,该公司表示,它已经看到“成本意识和管理方面出现了深刻的文化变革”。财务团队已设立了首席财务官颁发的全公司财务纪律奖,以表彰推动重要的成本节约计划的员工,基础架构团队已举办了节省成本的黑客马拉松。与此同时,爱彼迎的“AWS Attribution Dashboard”成为爱彼迎浏览次数最多的仪表板,此后人气一直居高不下;该公司声称节省成本的工作是 “我们只会逐渐加大力度的新优先事项”。

 相关阅读 ·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云头条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档