Type
文章
Created time
Dec 26, 2023 08:16 AM
备注
tags
技术
讨论
本月,滴滴崩溃事件闹得轰轰烈烈,各种离谱派单层出不穷,而造成这一混乱的,则是底层出故障的云。尴尬的是,这已经不是第一次云崩溃事件了,距离上一次阿里云事件,还不到一个月。
一时之间,各种有关 “云” 的讨论纷纷扬扬:有人眼馋马斯克的 X 下云省钱,觉得反正都有风险,还不如自己弄,这样更可掌控,也更清楚;有人则认为上云才是未来的趋势,想要发挥出软件的最大优势,上云更合适。
那么,实际操作中,到底是自建云更安全,还是公有云更有保障?对普通的厂商而言,该怎么选择呢?对此,开源中国邀请了前滴滴软件开发工程师李鹤、AutoMQ 联合创始人 & CTO 周新宇、前淘宝 DBA 蒋明、磐吉云数 CEO 冯若航、公众号《瑞典马工》主理人马工,一起来讨论。
正方:周新宇 speaking ——
我个人大概是在 16 年就加入阿里巴巴巴的中间件团队了,服务了很多客户。从我个人的经验来讲:
第一,没有云之前,硬件出了问题,解决的门槛很高。阿里内部上云之前,因为消息中间件集群规模很大,硬件它总是在出问题,比如说因为网卡问题导致了 TCD 重视率很高,硬盘出现局部的不可写;比如服务器某个硬件温度过高,导致一些局部的节点不可用。好在阿里有专业的团队帮忙解决,但这在小企业就很难负担了。
第二,公有云比专有云效率高。像我们专门做交付,交付完才是第一步,后面有很多的运维工作,这些运维工作,如果我们远程去做的话,效率比较低,如果去驻厂的话,成本又比较高。公有云的模式,通过聚集算力和统一标准,带来了很多效率上的提升。
第三,云计算能加速业务的创新,提高社会运转效率。像在线教育行业,几年前,基本上都利用了公有云的优势来快速进行业务的创新。如果没有云计算,如果不上云,这些完全不可能发生。还有疫情期间的远程会议,一定程度上保障了社会各方面的正常运转。背后的钉钉这些企业软件,也都是云计算在提供算力。
过去,大部分企业还是以云托管的方式上云为主,基本上就是传统的软件架构,通过这个方式进行上云。但不管怎么样,一定程度上解决了效率和创新问题。今天在降本增效的浪潮下,企业用云,可能不能暴力地照搬以前的架构了,架构需要面向云的能力去设计、去优化,把云原生的能力发挥出来。
反方:冯若航 speaking ——
我比较喜欢用实打实的数据来定量分析云。我的观点是:在降本增效成为主旋律的大背景下,对于有一定规模的云上企业来说,下云自建是一个非常经济务实的选项。我认为公有云它是有适用光谱的,绝对不是他们宣称的数字化万金油。不在这个光谱范围内的业务,如果选择上云,或者是留在云上,那就是被割韭菜了。
我这有歪诗一首:世人常道云上好,托管服务烦恼少。我言云乃杀猪盘,溢价百倍实厚颜。赛博地主搞垄断,坐地起价剥血汗。运维外包嫖开源,租赁电脑炒概念。
公有云的商业模式概括起来就是一个事儿:租 —— 租服务器租带宽租磁盘租运维,这跟租房没有什么本质的区别,自建我们就可以类比为买房。那么租房还是买房的决定性因素是什么?我认为是租售比。房子的租售比一般在几百一个月,那大家买房可能要掂量。那么,服务器的租售比、云算力的租售比一般在半年左右使用费 = 购买价格。云磁盘的租售比就更离谱了,只有十几天到一个月。你用一块云盘十几天就能买下来,你用一台云服务器,六个月就能把它买下来,那么你为什么要把一个业务跑在这租的东西上,而不是直接把它买下来?如果你的业务生命周期超过六个月,你可以考虑把它买下来,而不是租。
为什么云的价格这么贵?我认为根本原因在硬件上。硬件遵循着摩尔定律在指数增长,成本在指数下降,而这个指数变化并没有在公有云的价格上反映出来,所以公有云从最开始的普惠基础设施,发展到今天变成了一个杀猪盘。它的资源租赁价格已经达到了自建单价的几十倍上百倍,堪称终极的成本刺客。
这也引发了一些新的变化,比如说马斯克的 X(Twitter)、DHH 的 37Signals,算了账单之后,明智地选择了从云上搬迁下来,节约了每年上千万甚至上亿的成本。我认为,这些案例对于整个行业,都是非常具有借鉴意义的里程碑标志。
所以,我认为云的适用光谱就是三件事 —— 小规模,高弹性,全球化。不在这三个场景之内的业务,你选择留在云上,就是在为几倍几十倍的溢价交智商税、被割韭菜。
正方:周新宇 speaking ——
我觉得这里面有一个误区,不能拿这个硬件的成本去跟软件、甚至跟云服务对比。比如说冯总以前写过一篇文章,就是拿本地盘跟 EBS 价格做对比。实际上我认为 EBS 它本身是一个软件服务,它背后是一整套的完整的分布式系统,云服务已经提供了至少三个九的可用性。但本地盘它是硬件,它的故障概率是比较高的,不同的厂商,年化的故障率可能都有差异,有些可能甚至高达 5% 左右。任何硬件坏了都可能导致无法访问这个本地盘的数据,但在云上,ECS 也好 EBS 也好,它们都是软件,你可以理解为它们就是存算分离的。从应用角度来看,ECS、EBS 都是无状态的,EBS 还解决了一个多副本问题。
如果今天要用本地盘,肯定得主副本,那数据的复制带来的网络带宽消耗、计算资源消耗、存储空间消耗,都需要考虑到成本里面。另外,EBS 它后面是一个大规模的存储节点区域,是能够应对大量磁盘故障的,也能够解决这个数据完整性问题。如果真的要拿 EBS 跟本地盘去对比的话,我觉得至少得让用户去自建一套分布式存储系统,跟使用 EBS 做对比,还得把运维的人力成本也考虑进去。这些在自建、规模比较小的情况下,是很难算清楚的。
反方:冯若航 speaking ——
上云的成本比自建要高得多。我自己 15 年的时候在淘宝的 CNZZ,友盟 + 这个部门算是第一波被推上阿里云的内部 BU。在上云之前,我们有一个自己的机房,几百台服务器,一年所有成本算进去 1000 万。后来上了阿里云大数据全家桶数据库 ODPS 这些东西,每年计算 3000 万存储 4000 万。从 1000 万变成 7000 万这件事直接给了我对云的第一印象,因为阿里云是手把手出工程师加入我们团队帮我们改造业务搬上云的,从原来的每年 1000 万搬到了后来的每年 7000 万,而干的事情,本质上却还是一模一样的,都是统计和计算规模,也没有出现特别的变化。在上完云之后,我们的效能并没有出现变化,但是成本却是实打实地翻了七倍。
这是我自己亲身经历的一个案例。如果说更有共性的一件事,我觉得可以参考一下 Amazon。AWS 在 2013 年提出的公有云价值,他举了六个点:弹性、敏捷、全球化出海、将资本支出转变为运营支出,以及更低的成本、消除重复建设。
但是,这些公有云价值主张在 2023 年很多已经不成立了,甚至说很多已经没有价值了。我认为还有价值的点就是弹性、agility 和全球化出海,但是这里面覆盖的光谱其实并不多,特别是在高价值用户群体里面并没有覆盖那么多,更多是小微初创小规模业务会用到这些点。
比如这个 CAPEX 转为 OPEX,将资本支出转为运营支出。这一点,我认为除了对于那种连六个月都活不过的小业务有价值之外,凡是超过六个月,买肯定比租合算了。lower cost 是 AWS 当初相对于这些企业级解决方案来说的,它更便宜。比如说 Oracle 一盒 1 月你要付一万块钱,那么 AWS 上的 RDS 每个月只要 1000 块钱,是不是很便宜?但是那个时候,你可以说只有我这一家有云,所以我可以用这个价值定价,但现在谁家没有一个 RDS ?开源的 RDS 管控都出来了。那么这就变成了成本定价。既然是成本定价,我用云数据库加硬件,用这种开源的方案加上硬件 20 块钱一盒,1 月不比这 1000 块钱或者 400 块钱的 RDS 要香吗?lower cost 这个事儿已经完全变味儿了,现在不是 lower cost 是 higher cost。
至于消除重复建设这个事,我认为现在开源干得已经比这好了,各家都有自己的 EC2 VPS,但是 K8s 很明显一统了这些无状态服务调度天下,所以我认为在 2023 年公有云的价值就剩下了全球化合规出海,它的适用光谱已经缩小到了小规模业务和高弹性业务和出海业务这三样。以前我们业界大概有一个规模估算,你在云上的年消费在 100 到 300 万这个区间,你就应该考虑下云了。我认为,随着资源云和开源平替的出现,100 万 - 300 万的阈值将会被进一步拉低至 10 万 - 30 万或者 1 万 - 3 万。我认为这件事很有可能会发生,而且正在发生。

如今上云还安全吗?稳定性有多强?

反方:马工 speaking ——
对于安全,我有很多话说。作为一个软件工程师最基本的是,你不能把密码直接写死、hard code 就编码到你的代码里面,更不能把它提交到 Github 上,这属于初级的实习生犯的错误对不对?
但是我看了一下,国内的腾讯云阿里云和华为云什么的,全都教用户把那个 Access ID,编码到代码里面。阿里云和腾讯云去年已经改正了,因为我写文章揭露他们。但是至今为止,华为云和火山引擎上面的范例里面还是页编码,Access key,这是非常不负责任的一个做法。
我为什么说他们是一个草台班子,因为这就相当于修了一座桥,然后把桥的地基给抽掉了,或者说做了一个保险库,但是把钥匙给插在那个锁上了。就这样还谈安全?
我们可以看一下更近的例子,滴滴出了事故影响了上千万的出行,它连具体的技术原因都没提出来,只说我们会改进、我们是一个内部系统。但这个内部系统是什么?你怎么改进这个系统?基础系统是外购的,还是自研的?什么都没说,但是北京那个地铁追尾,人家就成立调查组了,调查组就会有调查结论,就会有限期改正通知书,你得复盘,你得汇报,监管部门会过来检查,然后发通知给其他的地铁公司,让别人吸取他的教训。这才是一个真正的工程行业。
我赞同周新宇说的 “云厂商的故障比自建机房的故障更令人瞩目”,但是,我的机房出故障,我可以得到最全面的信息,云厂商出故障,我得不到所有的信息,甚至他不给我信息。比如阿里云至今也没有披露技术细节。甚至有一些厂商,他是隐瞒故障,他不会跟你通知,而是想着偷偷修复了你就不知道了。这是一个非常让我们担心的问题:没有透明度。这样你也无法从业务上规避它,只能求它别出事了。这是非常危险的。
正方:周新宇 speaking ——
今天云厂商确实做得不够好,但这也是会改进的。云厂商在安全和数据完成这块都有很大的投入,我们以前做一个架构,要经过很多层的安全架构评审,并不是说啥都不做。当然,云计算这个技术也好,云计算这种商业模式也好,它肯定是有进步空间的,不能因为当前云厂商某些地方还不够成熟,就完全否定上云的优势或者是云计算的优势。
正方:蒋明 speaking ——
尤其是大规模的数据库用户,还是上云才能解决需求。像肯德基,阿里云出事以后,他们就把业务迁到了抖音建的云上,并没有迁到自己的机房里。
根据我的经验,自建机房的话,如果只是一两台机器托管一下的话,还是比较简单的。但是当机器达到四五千台的时候,那你就会遇到 CPU 的故障、内存的故障和磁盘的故障,这时候,你就会很依赖监控系统。我有过大概 4000 多台物理机的这种机房托管经验,当时用的是南京的管理系统,也是腾讯的开源软件,实时监控用的是阿里的监控软件 SLS,哪个磁盘出故障了,就发给线下的运维,让他去换。如果全部都是自建的话,根本就做不到。
像我们现在的政务云、水电煤背后的技术支持,全部都是在云上的,政府的政务处理系统,银行的交易系统也全部都在云上,如果云真的一无是处,那我们生活当中,支付宝就没办法扫了,钱也付不出去。
反方:冯若航 speaking ——
我觉得你说的问题非常严峻,就是所谓的云集中的问题。Gartner 最近发布的 2023 年三季度新兴风险报告里面,云集中风险已经连续第二年进入 “五大新兴风险” 综合榜单,在中国排第三位。云集中说的就是云厂商已成为了新的单点,爆炸半径极大。阿里云这一挂,有多少服务宕机了?如果政务云金融云这些都跑在阿里云,那挂了怎么办?
去年阿里云香港区域故障就导致香港政府很多单位的网站和电子政务不能用。
所以,这就是一个下云的重要 argument —— 为了安全性和自主可控。上云其实就是放弃了自主可控,放弃了一部分的安全性。你没有办法对机密性、完整性去进行任何的验证,甚至是追索。
我是搞信息安全的,安全里面有三个点:CIA —— 机密性,数据完整性和可用性。就是不丢,不坏,不宕。但是云厂商它不给你兜机密性和完整性,它只给你兜可用性,而且是非常逊色的可用性。
比如说云 RDS for PostgreSQL,这个云数据库的基础版甚至都没有望归档,也就是说它没有数据库 PITR 时间点恢复的能力,一个数据库服务竟然没有基础的时间点恢复能力,我认为这对于一个数据库用户来说是完全不可接受的。至于机密性,那就更没法保证了,你甚至没有办法去验证发现任何数据丢失。但要是自建机房,就不会存在这样的风险。

中小企业该怎么选?

正方:周新宇 speaking ——
如果是一家初创企业,那肯定是毫无疑问要上云,第一天就应该把你的 IT 设施构建在云上,这样未来的业务创新或试错成本都非常低。这是,如果你的企业已经在重度用云,今天因为成本的问题在考虑是否下云,那我觉得是要慎重的,因为不管是上云还是下云,折腾一次代价是比较大的。所以说更好的方式是去分析云上的账单,这里相对于自建有很大的优势:在云上你的一切价格账单都是透明的,到底贵在哪里,可以针对性地去降本。
正方:蒋明 speaking ——
可以用阿里云、腾讯云、AWS 的基础建设能力,比如 ECS 或 OSS,加上第三方的开源软件,比如 TiDB、AutoMQ,这些软件,它价格便宜,又能用云厂商最便宜的基础能力构建一个企业的自动化 DevOps 系统,让你用最低的成本,在云上创业。至于后面企业大了,像马斯克的 X 公司,那自建云是最佳的选择,毕竟成本会更低。
反方:冯若航 speaking ——
从务实的角度来讲,小企业其实是适合云的,但是你也不要把所有的东西都深度依赖云。
第一,你有自建能力,这是你跟云厂商谈价格折扣的最大筹码!
第二,优先使用资源云。什么是资源云?像租用它的虚拟机,尽可能的避免使用它的专有服务、被供应商锁定。
第三,如果你在云上非要用这些服务,请避免使用 AKSKIAM 这些让你陷入供应商锁定的东西。这些不仅会让你陷入云单点故障中,更是会把你绑在一个你下不来的账单下。
反方:马工 speaking ——
我觉得云是一个操作系统,你用云就相当于从 Windows 系统切换到 Linux,这需要非常大的努力,需要一个范式转移。这个转移路上,你必须要有人带着你走。但我目前看云自己也不知道怎么走。这有一个大胆的估测:
90% 的云厂商的员工,没有自己的云账号;
90% 的云厂商的员工,没有考过云的认证;
90% 的云厂商的员工,从来没有在云上维护过或者部署过一个生产系统。
我觉得大家还是谨慎一点,除非云厂商能够证明云计算的价值点,然后给出一个很明确的路径,不然的话你就不要那么急躁地为了云而云。另外,腾讯会议或者钉钉那不是云,跟微信一样,只是一个很普通的 Saas 系统,这个跟你要负责任的企业 IT 系统是完全不一样的。
大家对此怎么看呢?快留言说说你的经验吧~
直播回放如下,错过的赶紧扫码看看回放吧↓↓↓
notion image