Appearance
服务器与自建持有成本对比
云就是瓶装水,能解一时饥渴却救不了火
云厂商没敢告诉你,上云越积极,挨宰就越狠
云厂会告诉你 什么是企业上云?为什么上云?怎么上云?上什么云
“企业上云”是指企业通过便捷的利用网络资源,实现管理、业务等方面的数据化转型,旨在重构企业的核心竞争力,最大限度创造企业价值
- 云服务器的成本比较低。云服务器采用的是按需收费,相比传统的自建独立服务器,成本更低,可扩展性更强
- 云服务器的性能要比传统服务器优越。云服务器实现了硬件上的隔离以及宽带上的独享,不受地域,流量等的限制
- 云服务器拥有更强大的管理能力。云服务器可以实现远程集中化管理,以及各种业务的备份,可以通过线路远程遥控,资料的调取,数据的传输
- 云服务器相对于传统服务器更安全。专业的云服务提供商有更专业的安全团队和更可靠的安全保障系统
听上去传统服务器和云服务器一笔简直是个小垃圾,但是魔鬼就在细节之中。云服务器的底层是传统服务器。如果传统服务器的成本高、性能低,不稳定,那么在传统服务器上做二道贩子的云服务器只会更加的垃圾
只是购买一个云服务器用来当门户、来跑文件共享、游戏服务器不是上云。你承担不起购买物理机并托管的成本,只能用虚拟机,你别无选择,不存在上不上的问题。不管是虚拟机是云厂还是 vps 卖家提供
上云针对的是本地有一定规模且需要对互联网提供稳定服务的企业和个人开发者。可以本地托管,但是选择了云主机。并且上云的一定有开发能力,互联网竞争那么激烈,轮不到你提供标品。云厂商基本没有提供 turn-key 形式的可以直接使用的产品,难道使用腾讯会议和腾讯文档就算是上云了吗?
上云就像是天然矿泉水的那华丽的包装一样,让你忽视了它们把水库里的水卖上了数千倍的价格。哦,不对,矿泉水可没标榜比水库里的水更便宜
桶装水的形式在生活中如此普遍,以至于我看到吃灰已久的烧水壶才想起来,原来还能喝凉白开。这种震惊不亚于我得知上世纪 80 年代,山东的一个十八线小县城上面的高中和单位就有了机房和运维
云的吹捧就是一片乌云,遮蔽了物理机托管这颗太阳,掩盖了太阳滋养出稳定的带宽和供电、软硬件层面的容错、业务软件的高可用这些枝叶做栋梁,才供养出来云的时代。这手颠倒黑白真是菁菁又英英吖(翻译:就是个 xx)
当你业务刚起步的时候,云能帮你快速试错,当云的成本增长到让你肉痛,你就该尝试下云了
简单的引言
之前为了自己跑的一些服务,从 8 年前开始来来回回购买了十几台云服务器。由于需要希望能有 300G 的存储空间且降本增效,经常在琢磨如何能让自建机房达到云的稳定水平
正好之前为了适应微信的流量机制,写了篇云服务器和本地开发板的对比,有很多人关注。所以我就专门写一篇文章来对比一下好了
自我简介一下,作为观点的支撑。计算机和通信行业从业者,家里差不多塞了一机柜的服务器。算是既懂得软件开发和上云运维,又懂得硬件采购和机房维护
目前任职某全球 200 强企业。管理大数据平台,在广州附近有十多个 IDC,自有几万台机。我负责管理其中的几千台,也有不少虚机。目前网上冲浪的空闲在运营一个个人项目,规模不大,数千日活、百万人使用
云厂商比自建多做了什么
有时候我也纳了闷了,谁灌输的云服务器不需要运维?买个云服务器云厂就给你派一个团队的人驻点给你做上云改造?还是云厂说以后你的软件配置、定期维护、备案、等保、基线整改、甚至是办公场所的设备运维都给你包了?部门每年 x 亿的账单都没这个待遇,买个百来块钱割出来的小(虚拟)机还真当自己当大厂了?
没有?那还不招运维?不过话又说回来了,作为有研发实力的公司,接近 996,忙时 007 的作息也有理由和必要保证员工即使是全天在外也可以访问公司内网的测试服务器和秘密数据吧。这不就又回到自托管的资源建设的门槛问题了吗,这下连自托管的机房都是现成的了
读完半年下云省千万,DHH 下云 FAQ,我感觉仿佛冥冥之中有一位嘴替把我的所思所想全说出来了一样。而且这是真金白银的实践
和很多人印象中的不同,上云不等于云厂商吹嘘的万金油。除非绑定云厂商的 SaaS 服务或者进行云原生重构,不然只不过是把传统的虚拟机换了个位置而已
- 解决了
- 可靠的基础设施:网络、电力。过了国标和等保认证,有资质
- 容错的硬件设备:云服务器的硬盘和网络有容错机制,不会因为单硬盘或网卡损坏而丢失数据
- 没解决
- 没帮你运维:程序不会在你需要的时候自动出现。机器多了一样和物理机一样需要增加运维人员
- 没帮你开发:代码不会无中生有的从云上长出来
- 没帮你解决安全问题:云厂不会帮你自己改代码,软件有漏洞了依然需要自己打补丁
- 没帮你备案:主机、域名依然需要备案
- 没帮你做高可用:单机故障了服务依然不可用,需要自行购买两地三中心的云主机并且自行运维配置高可用
- 没帮你灾备:云厂商或者自己不小心删除了数据,数据就没了。321 的备份的钱还得是自己掏
- 没帮你做弹性扩容:你以为云服务器的弹性指的是主机的规格可以伸缩?naive!是你可以买的快
如果你想要开箱既用的高可用,那就需要去买价格再乘上数倍的云数据库(对了,这可是数据库自带的功能哦)
知道云主机所谓的高弹性是指新建虚拟机的速度在分钟级别,我差点一口气没喘过来。那我本地新分配虚拟机资源连几十秒都不需要,还可以玩通过 balloon 和 taskset 秒级动态调整主机规格的骚操作!
弹性计算省钱了吗
如果想要云厂商渲染的全国接入边缘计算、几乎无上限伸缩扩容、多少个 9 的可用性的效果。对不起,你就被云厂商深度绑定了。你需要花大力气把原有的服务改造成依赖云厂商调度的无状态容器,通过云厂商提供的网关接入全国各地的机房、数据库换成云原生的分布式数据库,存储也换成云厂提供的对象存储
听上去确实很棒,但是在计算机硬件按照摩尔定律发展了这么多年,即使是最廉价的设备的处理能力超乎一般人的想象。云厂的所谓的弹性省钱在你只想吃第一块方糖的时候存在,但是当你的胃口大了之后为什么不买整袋的白砂糖,而是去守着方糖不放呢?
一台峰值能处理 C10K 的 4 核树莓派 5 年成本也就大几百,而它能承担的负载远超你我的想象。一般按照峰值 qps 是日均 qps 的 10 倍,日活跃用户会产生 10 倍的浏览次数,每次浏览按照 10 次请求进行计算。10K / 10 x 86400 / 10 / 10 约等于 86W 的日活用户。2022 年瑞幸的小程序的日活大概是 238W,三台树莓派 5 做集群或者一个 16T32G 的云主机就能满足瑞幸面对公众客户的所有需要(不算数据分析等需求,这些可以离线完成。单考虑可以求证的瑞幸的小程序)
云服务和自建的可用性分析
- 参考消息
以云为对比,云厂也是租用或者自建 IDC 的(IDC 也分等级),然后在上层使用在开源基础上改进的架构进行调度。所以在基础设施稳定性上,云厂和 IDC 差距不大。上云更多的是一种正确,云更多强调的是易用
可用性等级里容错(坏了一部分也能跑)> 高可用(坏了换得快) > 灾备(坏了数据没丢)
虽然我不喜欢像非法加冯那样无脑 DISS,但是云服务的技术含金量并不算高,更多的是一种规模经济(超卖和摩尔定律给自己省钱)。比如云厂所谓提供的容错更多的是传统硬件层面,在虚拟机上缺乏开箱既用的高可用。连基础设施都是基于成熟的 openstack 和 kvm。而普遍被看不起 winserver+mssql+iis 甚至都自带了更高等级的容错机制(代价是被微软生态捆绑),VMware Sphere 这样的商业解决方案甚至自带了云服务器层面跨机房的容错
实际上云厂最被诟病的就是占着先进开源的名头却当赛博地主吸血开源生态。小到虚拟化底层的 KVM、libvirt,大到整一套的调度平台 OpenStack 都是开源可用的。云厂商用着免费的开源基础设施和免费的数据库软件,却靠着自身的规模优势把免费产品卖到天价
鼓吹云厂提供高可用服务的,难道忘了 23 年腾讯阿里就被 IDC 干出来了干了两次 P0 级别的事故。这时候承诺的容错和高可用又在哪呢?不过 23 年 Google、AWS、Oracle、Cloudflare、Azure 都出了重大故障,也是个多事之秋啊
至于云厂商最喜欢的 SLA 和可用性,就是擦屁股的纸!达不到等级的后果也就是赔付 100 元代金券或者是当月使用成本!和被戏称保险公司的 IBM 没得比
传统 IOE 都是对具体效果签合同的。IBM 是如果故障由 IBM 的软硬件导致,会按照合同对造成的损失进行赔付。EMC 在购买存储的时候会对存储压缩能力签订合约,达不到的容量进行免费提供硬盘
电力系统的可用性
趣闻 1:由于电池能量密度小于柴油,且 IDC 可以布置家庭和办公场所不好布置的发电机。所以新一点的 IDC 供电一般是采用柴油发电机,UPS 仅作为切换期间供能。这种柴发的体积和大型轮船用的柴油机差不多大,整个系统高度超过六米。驻场和我说烟道上的绿化树因为每月试运行检测的时候的废热太高被烤死,被附近的物业投诉过好几次
趣闻 2:IDC 运营成本里电费占大头(TCO 的 60%),电费的大头(制冷 43%,服务器也就 45%)在制冷上(数据中心能耗指标 PUE = 总能耗 / 设备能耗。全国平均为 1.5,新建要求 1.3)。一般制冷不止使用恒温恒湿的精密空调,还有使用蒸发散热原理的冷却塔(省钱),所以经常被 diss xxx 类型的业务导致耗水 xxx 万吨。水和油都是重要的资源啊!
作为现代社会能量之源,7x24 小时供电的保障早有一套成熟且简单的方案了。IDC 一般是接入双路市电、容量为一个小时的 UPS 以及能够提供 12 小时供电的柴油发电机。很少听过机房因为断电导致的事故,即使是断电也可以靠燃油强行续命(一般是和附近的加油站有协议)
家庭由于不方便布置柴油机,因此一般需要 UPS 能够撑过断电检修时间。这个时间窗口在我所在的区域一般是通告深夜两小时,实际 10 秒钟
网络的可用性
这里的宽带指的是上传带宽!由于服务器的重点是对公服务,能传输给多少用户才是最重要的
专线有多个等级,最高等级的是骨干网拉单独光纤直接接入,其次的是从民用传输网拉单独光纤,最次的是民用宽带(甚至是家庭套餐)上配置了优先策略。IDC 一般是前两者
传输网也是很传统且成熟的架构,云机房和云厂都是接入三网专线做 BGP,同样有高防清洗。由于网络问题导致机房中断的事故较少发生,更多的是由于人为事件导致的问题
家庭做 BGP 就算了吧,不只是配置复杂,更多的限制是家宽没有固定 IP 和不被限制的端口,优化的意义不大。全国加速访问和高防可以用 CDN。高可用可以通过拉两家运营商的带宽和 frp 做备份。一般来说运营商的电是双路,不受断电检修影响
家庭一般来说有三个选项可以选
- 复用家庭宽带(高等级套餐一般可以附加公网 IP),视情况 200 元 50M,或者不要钱(本来就是自己的)
- 小微企业带宽,优惠价可以 1 元 1M(小企业 500m 对等,由于被 PCDN 拿来跑流量,所以可能取消了)
- 正经专线,5-10 元 1M,正经企业级,不限制端口和提供固定 IP。可能需要企业执照,得看和客户经理的能否谈拢了
硬件的可用性
趣闻 1:作为真正意义上人类智慧和工业能力的结晶,CPU 是一个非常复杂的系统。数百亿的晶体管不可能不出错,只不过一般会有冗余(体质、和多做一些)、屏蔽(CPU 等级划分)和报错(掉通道、掉核心)机制。如果没有自动检查出来问题的就是静默错误
比如说经典的 AES 模块问题,https 流量加解密使用 AES 算法。而 AES 加密模块的静默错误轻则导致无法上网,如果是 ID 生成集群的静默错误会导致业务直接爆炸(确实发生过)
都是采购企业级硬件,稳定性差距不大,何况买的很多设备都还带着维保(别买老古董),有什么问题还能打电话摇厂商(我真干过)
特别黑一手 AMD,虽然 zen2 以后确实性能上能把 Intel 吊着摩擦,但是在稳定性上还是有一定差距。比如说 zen2 的计时器问题,一千天就要重启。又或者是静默错误和故障率的问题,不过随着 AMD 在市场占有率的提高和投入的加大,zen3 之后的机器差距就不大了
成本计算
为了方便规模比较,按照对云服务器有优势(实际需求 CPU 内存配比可能很极端,比如计算型实例)的固定模型进行成本比较,会将资源规模折合成一定单元进行计算
本地服务器按照 2U 规格双路 64 核心(256 线程),512G 内存进行折合计算。云服务器则在线程:内存比例为 1:2 的配置中寻找性价比最高的进行折合计算
其他成本计算方式
- 家庭用户:一次性费用为改造和服务器采购,不考虑地价。运营费用电价按照 0.9(三阶、含税) 元 1 度计算,采用自然通风。网费单独计算
- IDC 托管:一次性费用为服务器采购,运营费用按照一个服务器占用 2U 空间计算,电费包含在托管费用中。网费按照平均报价单独计算
- 自建机房:一次性费用为改造和服务器采购,不考虑地价。运营费用电价按照商业用电计算,运维人员费用按照当地平均工资计算。网费按照专线计算
- 云服务器:运营费用按照长期采购折合月价格计算,叠加大批量采购官网价 5 折优惠。
考虑如下情况。即使是家用也要保证有基础的高可用,日中断不超过一分钟。成本按照三年或五年计算
单台服务器成本计算
这个模型有个好处是我买过一台类似配置的,所以我知道具体的功耗和使用成本
云服务器价格按照腾讯云 S5.2XLARGE16 的标准进行计算 8T16G 五年 11923,硬盘按照最低的每年 6 元/1G 的价格进行计算,带宽按照最低的每 Mbps 每年 20 计算
具体的价目表参见腾讯云的说明,定价 | 云服务器
本地服务器的模型则分为二手和采购部分,使用的模型是能方便的在京东对比的戴尔 R7525 和三星 PM9A3 硬盘。云服务器的硬盘按照三副本计算冗余,不考虑云服务器超卖系数(一般这个系数为 4,可以参考云服务器的最低保障系数性能说明,这里当做 100%的实例)
- 准系统(含内存、硬盘外一切)
- 采购:京东 戴尔官方 R7525 + 2x7763。52000
- 二手:咸鱼 戴尔 R7525 + 2x7763。6000 + 2x6000 = 18000
- 内存:16x32g recc 3200 Mhz
- 采购:京东 戴尔官方盒装 32G 16x1459 = 23344
- 二手:咸鱼 三星 32G 16x400 = 6400
- 硬盘:PM9A3 3.84t
- 采购:京东 三星旗舰店 4775
- 二手:咸鱼 全新 2500
云服务器折合本地服务器(不算超卖)要 38 万,全新本机要 7.5 万,二手购买只需要 2.4 万。考虑到需要采购网卡等其他设备,全新设备按照 8W 计算、二手按照 2.5W 计算
这套设备在空载功耗能控制在 150W 内,但是考虑到应当以实际负载水平计算(较高负载)。则实际工作功耗为 300W
单位算力成本为 5 年期的运营成本加单机成本折算到每月,每月硬盘成本也是如此。
家庭托管支出分析
实际上一般家庭也就是买个架子,500 买个 UPS,套餐本来就是带公网,再买点三层万兆交换机什么的。所以一次性支出可能也就 2-3K 这样的
采购正经双路高可用搞家庭运维的玩法其实是致敬掘金的前 CTO 牙医。当是掘金的整套架构都是采用了采购二手服务器设备的方式,并且同样保证了生产的高可用(只不过是托管到 IDC)。这是提供一个同规格算力最廉价的方案参考
首先明确机房规模,考虑到家庭规模有限,因此不考虑使用空调散热,PUE 系数为 1.1(其他设备有损耗)。能承载的机器数量上限为房屋供电上限,比如按照我家的三项 80A 满载计算,能提供 52KW 的恐怖负载(电费账单先一步爆炸),实际按照单路 220V 16A (3.5KW)供电(空调)进行计算。最多安装 10 台服务器
因此机架和供电选择单个 42U 机柜和 ATS 切换器以及两个服务器 PDU,除机柜外选择二手。网络设备方面,双万兆企业光猫和路由器,需要 4 千,两个二手 40G 高速交换机需要 6 千。UPS 选择全新,此时大头是电池,电池可不敢二手
考虑到需求撑过约 8 个小时的断电窗口(即使是一天也可以通过关闭非重要的服务器的方式),以及对满载功耗进行削峰填谷的作用。UPS 选用京东全新 C6KS + 4 小时电池组(足够 3000W 放电 7 个小时)
网络方面目前在用的电信百兆上传 + 公网套餐 399。剩余 600 可以购买 60 兆专线带宽或者 500 兆低等级专线带宽。则网络最多能负载 600 兆 或 160 兆
- 一次性费用:4W
- 机架和供电: 3000
- UPS 费用: 2.7W
- 网络设备费用:1W
- 运营费用
- 人员成本:0
- 电费:9 毛一度,PUE 1.1
- 网费:每月 1000
自建机房托管支出分析
首先明确机房规模,考虑是自用机房,因此不考虑使用空调散热,PUE 系数为 1.5(其他设备有损耗)。能承载的机器数量上限为柜数乘上单柜上限。一般单柜能提供 10KW 左右的负载,这里按照 6KW 计算,能负载 20 台(已经占用 40U 空间了),最多 4 个柜子。一般再多建筑供电和散热就是瓶颈了
网络设备方面,双万兆企业路由器(专线不采用 pppoe 接入),需要 4 千。每个机柜除了供电还需要两个 40G 交换机和一个 UPS。按照每柜 3.5W 进行计算
网络则是专线通行价格,10 元/月/兆。两家运营商按照质量混合布置
- 一次性费用
- 机架: 3.5w x 4。6W 采购精密空调
- 网络设备费用:4k
- 运营费用
- 人员成本:一名机房运维,广州平均月工资 = 1W
- 电费:7 毛一度,PUE 1.6
- 网费:10 元/月/兆
IDC 支出分析
IDC 的成本和服务器非常接近,每个 2U 每年租金 7000,只需要考虑网络费用,高防带宽大概 8 元/月/兆
- 运营费用
- 托管费用:5000 元/年/ 2U
- 网费:8 元/月/兆
云服务器支出分析
全靠租用就行。实际价格按照官网价格的 7 折进行计算,之前个人身份找代理谈优惠的时候只有 9 折。真正大厂去找似乎能谈下来 5 折。这里取个中间数
- 运营费用
- 单位算力:76307 元/年
- 网费:20 元/年/兆
拉表计算
家庭机房主要的优势其实并不是设备廉价,而是宽带成本为一次性先期投入,不随机器数量的增长而增加。看来 IDC 运营的大头确实是电和网,可惜广州 9 毛的电价实在是没优势
通过这张表,我们能得到一个非常有趣的结果。即使是全部都捡垃圾,一个能保证基础高可用的家庭机房在小规模的时候也是比云服务器要贵。但是当云服务器的规模接近单个计算单元(256T512G)的八分之一(32T64G 12.5M 带宽,折合 5 年 4W)的时候,成本就比家庭托管高了。而如果要和正经的 IDC 托管机器比,单台云服务器超过 32 线程(优惠前计算资源就要 5W)就足以支付物理机采购和五年的 IDC 托管费用了
同样的,在足够普惠的 IDC 资源面前,自建机房的成本其实几乎没有明显优势。尤其是考虑到能过等保的高级机房的初期建设成本并不小(当然原本就自有机房的就当别论)
结论
所以再看看开头的云厂商号称的优势吧,这么看是不是像一个笑话了
- 云服务器的成本比较低?规模稍微大一点就价格就上天了,也就欺负散户负担不起门槛费用
- 云服务器的性能要比传统服务器优越?这点是最搞笑的,云的赢利点就是靠规模超售。虚拟化性能本来就逊于裸机,何况还被超售了。不然云厂为什么要推出裸金属实例呢?
- 云服务器拥有更强大的管理能力?和传统的逻辑部署比,虚拟机的管理确实方便了很多。但是 PVE 或者 OpenStack 一样有这些功能,一样提供了网页控制台
- 云服务器相对于传统服务器更安全?这点我都不敢细讲,光我知道的云厂的政务云都被攻陷都不止一次。更别提每年的护网行动里有不知道多少的云厂机器被拿去做肉鸡