FinOps的终点是下云

在 SACC 2023 FinOps专场上,我狠狠喷了一把云厂商。这是现场发言的文字整理稿,介绍了终极 FinOps —— 下云的理念与实践路径。

太长不看

FinOps关注点跑偏总价 = 单价 x 数量,搞 FinOps 的人关注减少浪费资源的数量,却故意无视了房间里的大象 —— 云资源单价
公有云是个杀猪盘:廉价EC2/S3获客,EBS/RDS杀猪。云算力的成本是自建的五倍,云存储的成本则可达百倍以上,堪称终极成本刺客。
FinOps终点是下云:对于有一定规模企业来说,IDC自建的总体成本在云服务列表价1折上下。下云是原教旨 FinOps 的终点,也是真正 FinOps 的起点。
自建能力决定议价权:以斗争求和平则和平存,以妥协求和平则和平亡。拥有自建能力的用户即使不下云也能谈出极低的折扣,没有自建能力的公司只能向公有云厂商缴纳高昂的 “无专家税” 。
数据库是自建的关键:K8S 上的无状态应用与数据仓库搬迁相对容易,真正的难点落在数据库上 —— 如何自建足够好的 RDS 服务。

FinOps关注点跑偏

比起浪费的数量,资源单价才是重点。
公有云是服务器带宽租赁超卖与运维专家外包的生意,其实是一个外包的“技术中台”。而搞中台就会面临吃大锅饭如何分账如何避免浪费的问题。云厂商为了营收搞了许多花里胡哨的计费规则,复杂到专门诞生了一门工程 FinOps 来研究如何分这些账 —— 这是一个因为使用公有云而出现的问题。
FinOps 基金会说,FinOPS关注的是“云成本优化”。但我们认为只强调公有云其实是有意把这个概念缩小了 —— 值得关注的是全部的资源的成本管控优化,而不仅仅局限在上公有云 —— 还有“混合云”与”私有云“。即使不用公有云,FinOps 的一些方法论也依然能用于 K8S 云原生全家桶。
正因为这样,很多搞 FinOps 的人关注点被刻意带偏 —— 目光被局限在减少云资源浪费数量上,却忽视了一个非常重要的问题:总价取决于两个因素:数量 ✖️ 单价。比起数量,单价可能才是降本增效的关键。前面几位嘉宾介绍过,云上资源平均有 1/3 左右的浪费,这也是 FinOps 的优化空间。然而如果你把不需要弹性的服务放在公有云上,本身使用的资源单价就已经溢价了几倍到十几倍,浪费的部分与之相比只能算三瓜两枣。
在我职业生涯的第一站,便亲历过一次 FinOps 运动。我们的BU曾是阿里云第一批内部用户,也是“数据中台”诞生的地方,阿里云出了十几个工程师直接加入带我们上云。上了 ODPS 后每年存储计算开销七千万,而通过健康分等 FinOps 手段确实优化了十几个M的浪费。然而原本使用自建机房 Hadoop 全家桶跑同样的东西,每年成本不到一千万 —— 节约是件好事,但与翻几番的资源成本相比根本算不了什么
随着降本增效成为主旋律,云遣返也成为一种潮流。发明中台这个概念的阿里,自己已经开始拆中台了。然而还有很多企业在重蹈杀猪盘的覆辙,重复着上云 - 云遣返的老路。

公有云是个杀猪盘

廉价EC2/S3获客,EBS/RDS杀猪。
公有云所鼓吹的弹性是针对其商业模式而设计的:启动成本极低,维持成本极高。低启动成本吸引用户上云,而且良好的弹性可以随时适配业务增长,可是业务稳定后形成供应商锁定,尾大不掉,极高的维持成本就会让用户痛不欲生了。这种模式有一个俗称 —— 杀猪盘
要想杀猪,先要养猪,舍不着孩子套不着狼。所以对于新用户、初创企业,小微用户,公用云都不吝于提供一些甜头,甚至赔本赚吆喝。新用户首单骨折,初创企业免费/半价 Credit,以及微妙的定价策略。以 AWS RDS 报价为例可以看出,1核2核的迷你机型,单价也就是 几$/核·月,折合三四百块人民币一年,可以说是非常便宜实惠(不含存储):如果你需要一个低频使用的小微数据库放点东西,这也许就是最简单便宜的选择。
notion image
然而,只要你稍微把配置往上抬哪怕一丁点儿,核月单价就出现了数量级的变化,干到了二三十~一百来刀,最高可以翻到几十倍 —— 这还没有算上惊悚的 EBS 价格。用户也许只有在看到突然出现的天价账单时,才会意识到到底发生了什么。
相比自建,云资源单价普遍在几倍到十几倍的范围,租售比在十几天到几个月之间。例如,探探IDC包网包电代维+运维网工所有成本均摊下来,一个物理机核算力核月成本在 19块钱,如果使用 K8S 容器私有云,一个虚拟核月成本只要7块钱。与之对应,阿里云的 ECS 核月单价在一两百块钱,AWS EC2 的核月单价在两三百块钱。如果你“不在乎弹性”,预付买个三年,通常还能再打个五六折。但再怎么算,云算力和本地自建算力的几倍差价是放在这儿没跑的。
notion image
存储资源的定价则更为离谱,一块常见的 3.2 TB 规格企业级 NVMe SSD 有着极为强悍的性能、可靠性与性价比,批发价 ¥3000 元出头,全方位吊打老存储。然而,在云上同样的存储,就敢卖你 100 倍的价格。相比直接采购硬件,AWS EBS io2 的成本高达 120 倍,而阿里云的 ESSD PL3 则高达 200 倍。以 3.2TB 规格的企业级 PCI-E SSD 卡为参照基准,AWS 上按需售租比为 15 天,阿里云上不到 5 天,租用此时长即可买下整块磁盘。若在阿里云以采购三年预付最大优惠五折计算,三年租金够买下 120 多块同款硬盘
notion image
notion image
云数据库RDS的的溢价倍率则介于云盘与云服务器之间。以 RDS for PostgreSQL 为例, AWS 上 64C / 256GB 的 db.m5.16xlarge RDS用一个月价格 $25,817 / 月,折合每月 18 万元人民币,一个月的租金够你把两台性能比这还要好的多得多的服务器直接买下来自建了。租售比甚至都不到一个月,租十来天就够你买下来整台服务器。
任何理智的企业用户都看得明白这里面的道理:如果采购这种服务不是为了短期的,临时性的需求,那么绝对算得上是重大的财务失当行为。
notion image
notion image
任何有意义的降本增效行动都无法忽视这个问题:如果资源单价有打0.5~2折的潜力,那么折腾30%的浪费根本排不上优先级。只要你的业务主体还在云上,原教旨 FinOps 就如同隔靴搔痒 —— 下云,才是 FinOps 的重点。

FinOps终点是下云

饱汉不知饿汉饥,人类的悲欢并不相通。
我在探探待了五年 —— 这是一家瑞典人创办的北欧风互联网创业公司。北欧工程师有个特点,非常实事求是。譬如在云与自建选型这件事上,就不会受炒作营销影响,而是会定量分析利弊得失。我们仔细核算过自建与上云的成本 —— 简单的结论是,自建(含人力)总体成本基本在云列表价的 0.5 ~ 1 折范围浮动
因此,探探从创立伊始就选择了自建。除了出海合规业务,CDN 与极少量弹性业务使用公有云,主体部分完全放在 IDC 托管代维的机房中自建。探探的数据库规模不小,13K 核的 PostgreSQL 与 12K 核的 Redis,450w QPS 与 300TB 不重复的TP数据。这两部分每年成本1000万不到:算上两个DBA一个网工的工资,网电托管代维费用,硬件五年均摊。但是这样的规模,如果使用公有云上的云数据库,即使打到骨折,也需要五六千万起步,更别提杀猪更狠的大数据部分了。
然而,企业数字化是有阶段的,不同的企业处于不同的阶段。对于不少互联网公司来说,已进入自建云原生 K8S 全家桶玩到飞起的阶段了。在这个阶段,关注资源利用率,在线离线混合部署,减少浪费是合理的需求,也是 FinOps 应该发力的方向。但是对那些占总量绝大多数的数字化门外汉企业来说,迫在眉睫的不是减少浪费,而是压低资源单价 —— Dell服务器可以打两折,IDC虚拟机可以打两折,云骨折也能打两折,请问这些公司是不是还在掏原价采购,甚至还有几倍的回扣费用呢?大把大把的公司因为信息不对称与能力缺失被嘎嘎割韭菜中
企业应该根据自己的规模与阶段,评估审视自己的业务并进行利弊权衡。如果是小规模初创企业,云确实能节省不少人力成本,很有吸引力 —— 但请您保持警惕,不要因为贪图便利而被供应商锁定。如果您在云上的年消费已经超过了 100万人民币,那么是时候认真考虑一下 下云所带来的收益 —— 很多业务并不需要微博并发出轨,训练 AI 大模型那种弹性。为了临时/突发性需求,或出海合规支付溢价还算合情合理,但是为了不需要的弹性支付几倍到几十倍的资源溢价,那就是冤大头了。您可以把真正需要弹性的部分留在公有云上,把那些不需要弹性的部分转移到 IDC 。仅仅只是这样做就能省下的成本可能让用户惊掉下巴。
下云是原教旨 FinOps 的终点,也是真正 FinOps 的起点。

自建能力决定议价权

以斗争求和平则和平存,以妥协求和平则和平亡
时来天地皆同力,运去英雄不自由:在泡沫阶段,大家可以不在乎在云上大撒币,在经济下行阶段,降本增效成为核心议题。越来越多的公司意识到,使用云服务其实是一种缴纳“无专家税”与“保护费”的行为。行业也出现了下云的思潮 —— 云遣返,37 Signal DHH就是最著名的例子。与之对应,全球各大云厂商营收增速也出现了持续性下滑,阿里云的营收甚至已经增速为负 —— 开始负增长了(2023Q1)。
notion image
notion image
背后的时代趋势是,开源平替的出现,打破了公有云的技术壁垒;资源云/IDC2.0的出现,提供了公有云资源的物美价廉替代;大裁员释放的技术人才与将来的AI大模型,让各行各业都有机会拥有自建所需的专家知识与能力。结合以上三方面的趋势,IDC2.0 + 开源自建的组合越来越有竞争力短路掉公有云这个中间商,直接与 IDC 合作显然是一个更经济实惠的选择
公有云厂商并非做不好 IDC 卖资源站着挣钱的生意,按理说云厂商的水平比IDC好不少,理应通过技术优势与规模效应降本增效,向公众提供比 IDC自建更便宜的资源才对。然而残酷的现状是,资源云可以爽快的给用户2折虚拟机,而公有云不行。甚至如果考虑到存储计算行业摩尔定律的指数增长规律,公有云其实每年都还在大幅涨价 
专业懂行的大客户,特别是那种随时有能力迁移横跳的甲方去和公有云搞商务谈判,确实有可能获取两折的底价折扣,而小客户不太可能有这种机会 —— 在这种意义上,云其实是吸血中小客户补贴大客户,损不足以奉有余的。 云厂商在大客户那边疯狂打折促销,而对中小客户和开发者进行薅羊毛杀猪,这种方式已经完全违背了云计算本身的初心与愿景。
云用低起步价格把用户赚上来,当用户被深度锁定之后,杀猪就会开始 —— 聊好的折扣与优惠,在每年续约时没有了。从云下来又要支付一笔伤筋动骨的大费用,用户处在进退两难的困境中只能选择饮鸩止渴,继续缴纳保护费。
然而对于有自建能力,可以在多云/本地混合云灵活横跳的用户来说,就没有这个问题:谈折扣的杀手锏,就是你自己有随时下云、或迁移至其他云上的自建能力,这比什么口舌都好使 —— 正所谓 “以斗争求和平则和平存,以妥协求和平则和平亡” 。

自建其实并不难,说到底就是解决资源能力两件事。
在资源方面,IDC与资源云已经解决得足够好了。上面所说的IDC自建,并不是真的自己从头买地建机房,而是直接使用资源云/IDC的托管机房 —— 用户除了可能需要一位网络工程师规划一下,其他的服务器运维事项都可以交由供应商代理。如果不想折腾,IDC能爽快地直接卖给你云列表价两折的虚拟机,您可以直接租用两三千一个月的高配物理机(64C 256G)。无论是整租一个机房,或者只要一个托管的机位都没问题。零售机位全包下来一年五千块搞定,买两台两百核物理机虚拟化一下,还要啥ECS ?
租用机房自建还有一个额外的好处 —— 如果您真的想做到极致 FinOps,可以使用二手服务器或者过保服务器。服务器通常按三年五年均摊报废,但用八年十年的也不少见 —— 相比购买服务进行消费,这是实打实的资产,多用算白赚。上面所使用的 64C 256G 服务器全新价格也需要五万,IDC租用大概两三千一个月。但用了一两年二手甩卖的“电子垃圾”只需要两千八,插一块全新企业级3.2TB NVMe SSD (¥2800),整机六千块拿下。
notion image
在这种情况下,你的核月成本甚至可以做到1块钱以内 —— 游戏领域确实有这么个传奇案例,可以做到几毛钱一个服务器。有了K8S调度能力和数据库高可用切换能力,可靠性可以完全可以靠多台电子垃圾并联,最终做到令人震惊的成本效益比。
在能力方面,随着足够好用的开源平替出现,当下自建的难度和几年前完全不可同日而语。例如,Kubernetes / OpenStack / SealOS,可以理解为云厂商 EC2/ECS/VPS 管控软件的开源替代;MinIO / Ceph 旨在作为为云厂商 S3 / OSS 管控软件的开源替代;而 Pigsty[1] / 各种数据库 Operator 就是 RDS 云数据库管控软件的开源替代 —— 有许许多多的开源软件提供免费的,用好这些资源的能力;也有许许多多的商业公司提供明码标价的服务支持。
notion image
您的业务应该尽可能收敛到只用虚拟机和对象存储这种纯资源,因为这是所有云厂商的提供服务的最大公约数
在理想的状态下,您的业务完整运行在 Kubernetes 上,而这套 Kubernetes 可以运行在任意环境中 —— 不论是云提供的 K8S底座,ECS,独占物理机,还是你自己机房的服务器上。外部状态例如数据库备份,大数据数仓使用存算分离的方案放在 MinIO / S3 存储上。
使用这样一套 CloudNative 技术栈,理论上您就有了在任意资源环境上运行的能力。从而避免了供应商锁定,掌握了主动权 —— 您可以选择以此为筹码和公有云谈判出一个骨折折扣出来,也可以选择直接下云省大钱。
当然,下云自建也是有风险的,而最大的风险点就在 RDS 上。

数据库是自建的关键

云数据库服务也许不是云上最大的开销项,但一定是供应商锁定程度最深的服务之一
质量、安全、效率、成本,是一个递进的需求金字塔上的不同层次。而 FinOps 的目标,是要在不影响质量安全的前提下完成降本增效。无论是K8S上的无状态应用,还是离线大数据平台,搬迁起来都很难有致命风险。特别是如果您已经完成了无状态应用的 Kubernetes 改造,以及大数据存算分离的改造,这两个部分通常不会有太大困难 —— 前者可以蓝绿部署,灰度切换,后者也是无所谓停几个小时完成切换。唯有作为工作记忆的数据库搬运移动容易伤筋动骨,稍有不慎便容易翻车。
可以说,绝大多数 IT 系统的架构都是服务于数据库这一核心的 —— 真正牵一发而动全身的关键风险点,落在了 OLTP 数据库 / RDS 上。而下了云之后,土法的 Kubernetes Operator 好像也没法达到云数据库的完整功能体验。把 OLTP 数据库放在 K8S/容器 中,使用 EBS 运行也不是成熟的最佳实践,时代在呼唤一个足够好的 RDS 的开源替代品。这,就是我们要做的事情 —— Pigsty,开源免费的 RDS PG 替代品。让您用好 世界上最先进、最成功的数据库 —— PostgreSQL
Pigsty 允许您践行最终极的 FinOps 理念 —— 用几乎接近于纯资源的价格,在任何地方(ECS,资源云,机房服务器甚至本地笔记本虚拟机)运行生产级的 PostgreSQL RDS 数据库服务。让云数据库的能力成本,从正比于资源的边际成本,变为约等于0的固定学习成本
notion image
Pigsty 属于公益性质,用爱发电开源项目,软件本身是完全开源免费的。开箱即用的全扩展发行版,自动配置的高可用与PITR,业界顶尖的监控系统,IaC,一键安装,本地沙箱,以及SOP预案手册,让您无需专业 DBA 也可以快速拥有比肩RDS的 PostgreSQL 服务,分文不取:如果您觉得安装使用维护有困难,需要下云迁移或者疑难杂症兜底,我们也提供免费的社区答疑,以及顶尖的数据库专家咨询服务,性价比相对公有云数据库的工单/SLA极有竞争力。
可能也就是北欧企业的社会主义氛围,才能孵化出这样的纯粹的自由软件。我们做这件事不是为了挣钱,而是要践行一种理念:把用好世界上最先进的开源数据库 PostgreSQL 的能力普及给每一个用户,而不是让使用软件的能力沦为公有云的禁脔。云厂商吸血白嫖开源软件,垄断开源专家与岗位,而我们要要打破云厂商对于能力的垄断 —— Freedom is not free,你不应该把世界让给你所鄙视的人,而应该直接把他们的饭桌掀翻
这才是最终极的 FinOps —— 授人以渔,提供让用户真正用得上的更优备选,赋予用户自建的能力与面对云厂商的议价权

References

href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485269&idx=1&sn=a46b8b218331ece956c336b5c2a8df79&chksm=fe4b328ec93cbb98434b258ed1bfa6c63aecd0f3675002db75520edd21456eb39e97455fe995&scene=21#wechat_redirect">[1] 云计算为啥还没挖沙子赚钱?
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485269&idx=1&sn=a46b8b218331ece956c336b5c2a8df79&chksm=fe4b328ec93cbb98434b258ed1bfa6c63aecd0f3675002db75520edd21456eb39e97455fe995&scene=21#wechat_redirect">[2] 云数据库是不是智商税?
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485601&idx=1&sn=5521562d414b547a192b3dbc45ce720f&chksm=fe4b3d7ac93cb46c37f64f61593a102eb0a6c624a95fe37e0cccf2c03c766cda5ad268671e14&scene=21#wechat_redirect">[3] 云SLA是不是安慰剂?
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485391&idx=1&sn=4cec9af2b58160eb345a6b12411f0b68&chksm=fe4b3214c93cbb023c13a89133c75bf1e88e1543de9359df7447498e4a9d5ec555313a954566&scene=21#wechat_redirect">[4] 公有云是不是杀猪盘?
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485301&idx=1&sn=2fb038f8b9f26c095d97eb0d87e8b262&chksm=fe4b32aec93cbbb81fbb1d7dfadba404ff7015d2b83f590bbe46a7372b55ac0aac076a71a76b&scene=21#wechat_redirect">[5] 范式转移:从云到本地优先
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485559&idx=1&sn=9279f44f0aa804a6e2698e503d5eacea&chksm=fe4b3dacc93cb4ba370cab412379ebee07b7b8e16ddd9a79448815e5ba5c3a2bac2ab867d574&scene=21#wechat_redirect">[6] 杀猪盘真的降价了吗?
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485349&idx=1&sn=96fde26dd9efd399ef7ae11e52e05843&chksm=fe4b327ec93cbb688e2708ff4e709a7ba32eee2be9d8637e9b941f47e6600dc7fcd2710a42c4&scene=21#wechat_redirect">[7] 炮打 RDS,Pigsty v2.0 发布
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485363&idx=1&sn=8622b25fd2309d4fc969d22964a04129&chksm=fe4b3268c93cbb7efb8757e876574bebf5d615bdd3c4ceb76e48b2bd907d78faeb450ca1e825&scene=21#wechat_redirect">[8] 垃圾腾讯云CDN:从入门到放弃
href="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485093&idx=1&sn=5815f71f1d832101d35a75f5aa4acd3c&chksm=fe4b337ec93cba68fbf30eb0ed50d052c6e8972d42cf506051b5016668f4555edaa0756688dc&scene=21#wechat_redirect">[9] 云RDS:从删库到跑路
ref="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485549&idx=1&sn=7c34439d82431129c57aba211202b5ca&chksm=fe4b3db6c93cb4a0423daf3a226e04867821e34ba3c6b5a8145bd5319c728fb08d63b2544a43&scene=21#wechat_redirect">[10] 分布式数据库是伪需求吗?
ref="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485566&idx=1&sn=640f4441fddbfe889d98d715af0a1cad&chksm=fe4b3da5c93cb4b30839bc2e65f40983c7e881768c908a4a38ffe3565543b56090244d38f63e&scene=21#wechat_redirect">[11] 微服务是不是个蠢主意?
ref="http://mp.weixin.qq.com/s?__biz=MzU5ODAyNTM5Ng==&mid=2247485518&idx=1&sn=3d5f3c753facc829b2300a15df50d237&chksm=fe4b3d95c93cb4833b8e80433cff46a893f939154be60a2a24ee96598f96b32271301abfda1f&scene=21#wechat_redirect">[12] 更好的开源RDS替代:Pigsty
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP