给昂贵的云降降本

2024-08-13 10:05:52 +08:00
 cesign

云 K8s 太贵,来看看用 Karpenter 给其降本一下: https://mp.weixin.qq.com/s/1QANbWZ6Sx7HGzez74rGRw

结合我的实践,大概能降60%左右!

6187 次点击
所在节点    程序员
51 条回复
perfectlife
2024-08-13 12:42:25 +08:00
salmon5
2024-08-13 12:48:54 +08:00
这个场景是跨境电商场景,是业务最简单的场景,可以 spot 搞来搞去,复杂的业务场景,这样 spot 搞来搞去,直接被 KO 了。
技术都是相对简单的,业务才是最费劲的。
salmon5
2024-08-13 12:50:43 +08:00
RI 、SP 确实用起来很糟糕,这也是用 AWS 无奈之举。
salmon5
2024-08-13 12:53:34 +08:00
所以我一向不主张用 AWS ,挣美元、发(工资)美元的公司,才适合用 AWS 。
国内的云阿里云也有 alibabacloud.com ,对比 AWS ,你这个根本不需要优化成本。
salmon5
2024-08-13 12:57:47 +08:00
人民币换成美元,用 AWS ,那肯定是相当不划算的。
sampeng
2024-08-13 14:07:18 +08:00
除非费用特别高。。我个人不太倾向业务在 spot 上跑。不管你感知多牛逼。AWS 免责说的明明白白,尽可能通知你,但有可能不通知你,自己负责。不过 spot 的回收率我根 BD 聊,大概 93%以上是没触发过回收。我实际在阿里云用也差不多,半年回收一次。所以策略自己搞个脚本其实很容易。不过吧,因为整体费用并不高,投入人力物力实在是不划算。维护成本也是成本。本来 2 个人就搞完的,因为又要高大上又要省钱,很容易一顿操作猛如虎,一看就省 2 毛五。


@hwcloudnative

第一个问题,这是一个综合成本考虑。买 RI 也没人逼着你全买 RI 啊。RI+Savings plans 是一个比较好的组合。RI 负责 24 小时都要开机的常驻机器。Savings plans 负责每小时的最小用量不限定机器类型。我一般组合着错开买,RI 的折扣力度大,SavingsPlans 折扣力度小但是非常灵活,而且支持 fargate 。

而且还要分业务和环境。我做过两种方案,第一种方案呢,开发测试环境白天开 spot ,晚上关机。第二种方案就是直接 RI 覆盖 50%。晚上自动把多余的机器关了,再自动根据流量伸缩一些 spot 机器出来临时用用。看着是前者省钱了,但是一顿操作猛如虎,一看就省 2 毛五。总得招个人来干吧,总得有第二个人维护和懂吧。第二个方案反而是本来就省钱了,多少而已,但是整体维护成本极低。

现在 fargate 其实是个不错的节省成本方案,如果无状态的,临时调度的扔 fargate 里面,跑完就关了。比开机器舒服多了。比如 CI/CD 。以前总是要一个一直在的集群,还有大小限制,死鬼死鬼。现在有 fargate/ask 的加持,就开一个宿主机跑调度就好了。其他都是 eci 。以前 github 跑 runner 要小 3000 美金一个月。现在。。3000 人民币就够了。
tabliu
2024-08-13 14:24:09 +08:00
最妥还是 RI 和购买 saving plan ,spot 不可预测风险和运维成本很高的,遇到过一个 region 突然回收几百台 spot 机器的,如果没有预先购买 RI 和 SP 用 OD 代替跑几天成本就哭死。购买 SP ,怎么买,怎么知道云上 spot 的库存,回收率都是未知的。
cesign
2024-08-13 14:30:34 +08:00
@fredcc
> spot 实例的中断管理本来也不应该 asg 管啊

那什么来管 spot 上用例的稳定性呢?依靠应用不显示,毕竟正在处理的请求,中断后就丢失了

> eks 不能做么

当然可以,主要是细粒度的应用调度级别的控制
cesign
2024-08-13 14:46:22 +08:00
@sampeng

> 尽可能通知你,但有可能不通知你,自己负责。

还是看你怎么用,我们目前用下来,提前通知都受到了。没有遗失的。

> 而且还要分业务和环境。我做过两种方案,第一种方案呢,开发测试环境白天开 spot ,晚上关机。第二种方案就是直接 RI 覆盖 50%。晚上自动把多余的机器关了,再自动根据流量伸缩一些 spot 机器出来临时用用。看着是前者省钱了,但是一顿操作猛如虎,一看就省 2 毛五。

算算,假设 100 台 m5.xlarge ,弹性的为 50 台
所以第二方案的成本为:(50*0.121+50*0.0588)*1 个月=6562.7$
第一方案成本:(50*0.121+50*0.0588)*1 个月=4292.4$

所以 1 年 2w$属于 2 毛 5 的范畴?如果识别出来业务适合 spot ,为啥不用?


> 现在 fargate 其实是个不错的节省成本方案,如果无状态的,临时调度的扔 fargate 里面,跑完就关了。比开机器舒服多了。

给你看看 farget 成本:以一个程序(2Core/2GiB)运行一小时为例:
EKS Fargate=0.0896$
EKS/EC2=0.077$,使用 c5a.large(2Core/4GiB),还有 2GiB 的剩余

如果有一种手段既能享受到 farget 弹性,还能稳定使用 spot ,为啥不用?
cesign
2024-08-13 14:51:50 +08:00
@sampeng
而且我不觉得你方案一和方案二维护成本差多少,接近一样。都需要更具 AWS 的 spot 通知,迁移 spot 节点的业务
cesign
2024-08-13 14:53:38 +08:00
@tabliu

> 遇到过一个 region 突然回收几百台 spot 机器的,如果没有预先购买 RI 和 SP 用 OD 代替跑几天成本就哭死

确实是这样的。不过拉长时间看,比如 3 个月,大部分时间还是 spot 在跑,少部分时间使用 od 在跑
cesign
2024-08-13 15:03:09 +08:00
@perfectlife

> 国内直接就支持啊,阿里云的 axk 好早就支持抢占实例作为 ack 节点,还支持节点被释放前自动拉起一个新抢占实例补上,抢占实例池没资源还能申请按量付费的

知识盲区,感谢提醒,这个很有用。
ytmsdy
2024-08-13 15:15:34 +08:00
生产环境往 spot 上部署,这个对运维的要求太高了。大部分人估计都不敢这么干。
cesign
2024-08-13 15:18:25 +08:00
@ytmsdy 当然,逐步来,我们也是搞了好久。
gkuchan
2024-08-13 15:39:21 +08:00
04 部分,和纯 Serverless 的比较我觉得不够全面。大多数应用的纯运算时间都很少,更想了解一下如果采用纯 Serverless 架构,价格上会差多少。
bthulu
2024-08-13 16:52:44 +08:00
可以先上云降低成本, 再下云降低成本, 再次上云降低成本, 再次下云降低成本, 多来几次, 就没有成本了.
br9852000
2024-08-13 17:29:38 +08:00
业务高峰期节点迁移导致的业务损失估计比你省的钱要多吧。尤其是广告投放
cesign
2024-08-13 17:32:56 +08:00
@br9852000 看业务类型,我们这种业务加上 od+spot 混合调度,没有端服过。
sampeng
2024-08-14 16:46:04 +08:00
@cesign

运维很多事情不光是技术层面,还有很多其他要考虑的。
spot 回收哪怕你 3 年没出问题,出一次问题。就是一个锅。
甚至说锅这个东西因人而异。大部分公司,线上是一点问题都别出的。出了就要扯皮。哪怕没业务损失。
那么问题来了,为啥要去踩这个雷呢。很多领导,你要是跟他说 0.00001%的概率可能会业务出故障或者订单丢失,逻辑丢失,数据丢失之类的。。很多领导直接就会否了方案。

前面你说的第一和第二没有维护成本区别:一个是要做一个程序去控制,如果 spot 回收还要想办法加回来。这个程序要不要维护?有 bug 怎么办? api 升级了怎么办?集群升级了怎么办?是不是都是运维管理成本?第二种,哪有什么成本,年初买个 RI ,云平台设置一下定时关机。几年都不用去管他。甚至忘了的存在。

fargate 就不是这么节省成本的,你这个算法就跟我入现在这个公司发现所有服务都跑在 eci 上一样。fargate 哪能这么用,fargate 不能当长期服务用的,贵死人。他的定位是毫秒级可以分配 pod 。秒级拉起新 pod 。应对流量的高低变化。比如白天我就要 2 台常驻的就够了。晚上随着 cpu 的水位自动增加到 10 台。然后某些核心业务服务群用 fargate 自动横向伸缩,比如最高峰要从 2 个 pod 调度出 20-30 个 pod 。fargate 瞬间就能拉起来。这个高峰最多半个小时。缩回去就没成本了。这才是 fargate 的核心使用场景。而且 aws 的 fargate 不清楚有没有 spot 类型。阿里云的 eci 都有 spot 类型。你拿普通的机器 spot 当宿主机打死都不可能比我就运行 1 个小时就出 1 个小时的钱便宜(正常价格的 1/24 ,spot 顶天了 1/10 ,为了稳定可能是 50%上下的定价范围)。
cesign
2024-08-14 23:41:42 +08:00
@sampeng

> spot 回收哪怕你 3 年没出问题,出一次问题。就是一个锅。

K8s 节点都有挂的可能性,照你这么说,用啥 K8s ,用回物理机算了,spot 确实会回收,但是做好回收后的业务连续性问题(提前回滚)就行。

就算是 on-demand ec2 的可用性保证也只有 99.99%,那按你意思,用啥用。

> 一个是要做一个程序去控制,如果 spot 回收还要想办法加回来。这个程序要不要维护?有 bug 怎么办? api 升级了怎么办?集群升级了怎么办?是不是都是运维管理成本?第二种,哪有什么成本,年初买个 RI ,云平台设置一下定时关机。几年都不用去管他。甚至忘了的存在。

这个程序就是相关产品的价值。RI 没有弹性,我阐述好多遍了,白天要 100U ,晚上 10U ,我得买 100U RI 的钱,那如果我买 10U RI ,90U 的 OD ,这难道不贵吗?




> fargate 就不是这么节省成本的,你这个算法就跟我入现在这个公司发现所有服务都跑在 eci 上一样。fargate 哪能这么用,

那你知不知到有相关 eks+ec2 的解决方案,也可以做极致弹性,有 pod 就扩,没 Pod 就缩,这个和 farget 体验是一样的,而且还便宜。谁跟你说 eks+ec2 不能做到类似 farget 的极致弹性。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064548

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX