收租之王,负债上牌桌 书架

第 05 章 / 共 16 章

第五章 · 自己盖,不租别人的

上一章的结尾我们停在一个尴尬的位置:甲骨文醒得晚,账面上还躺着许可证的租金,云这班车已经开走了。现在问题变得很具体——一个卖数据库的公司,想做公有云,第一步该干什么?

最省事的答案是:别自己盖。租亚马逊的机器,把 Oracle 数据库打个包扔上去,收个软件钱就好。很多软件公司就是这么干的。但甲骨文偏偏选了最重、最费钱、最容易被人笑话的那条路——自己盖数据中心,一砖一瓦,从网络到机柜全都自己来。这一章就讲清楚:OCI 到底是什么,它为什么跟三大云长得不一样,以及「自己盖」这个看似犯傻的决定,怎么在几年后变成了甲骨文手里最值钱的一张牌。

OCI 是什么:不是一个产品,是一整片地基

OCI(Oracle Cloud Infrastructure,甲骨文云基础设施)就是甲骨文自己的公有云。你可以把它理解成甲骨文版的 AWS:你不用买服务器,按用量租它的计算、存储、网络。听起来平平无奇,跟别人没区别。

但这里有个时间上的关键细节,也是第四章埋的伏笔。甲骨文云做过两代。第一代(大约 2016 年前后)基本是照着别人抄,做出来不温不火。真正重要的是第二代 OCI——甲骨文把第一代几乎推倒重来,2018 年前后重新设计了整套底层架构。迟到有个隐藏的好处:它没有历史包袱。亚马逊 2006 年就开始搭 AWS,那套架构是为「一堆小网站、小应用各跑各的」设计的,早期的很多技术选择固化在了地基里,改不动了。甲骨文晚了十年动手,反而可以看着别人踩过的坑,从一张白纸开始画。

类比一下:早期的云像老城区,路是几百年前按马车宽度修的,现在堵车也没法拓宽,因为两边全是楼。甲骨文相当于在旁边一块空地上重新规划一座新城,一开始就按高峰车流量把主干道修到八车道。平时看不出区别,等真来了大车队(后面会讲,就是 AI 的 GPU 集群),差距立刻拉开。

第一个不一样:把虚拟化搬出服务器

要讲清楚差别,得先讲一个云计算里最基础的东西:虚拟化。一台物理服务器很贵,云厂商不会把整台机器只租给你一个人,而是用软件把它切成好多份「虚拟机」,租给不同的客户,每个客户都感觉自己有一台独立的机器。干这个切分和隔离工作的软件层,叫Hypervisor(虚拟机管理程序,可以理解成给虚拟机当房东兼保安的那层软件)。

传统做法是:这个 Hypervisor 跟你的程序住在同一台物理服务器上。问题来了——它自己也要吃 CPU、吃内存来干活。等于你租了一台机器,却有个「二房东」常驻在里面,占着你的资源,还能看到你的一举一动。更麻烦的是安全:房东和租客住一屋,一旦房东那层软件有漏洞,理论上就可能从一个客户串到另一个客户。

甲骨文第二代 OCI 的选择是 off-box 虚拟化(把虚拟化从服务器上挪走)。它把「当房东、管网络、管存储」这些活儿,从服务器主板上搬到了一块专门的网卡硬件里去做。

说人话:以前房东住在你家客厅,现在房东搬到了大门口的门卫室(那块专用网卡)。结果有两个:第一,你租的整台服务器的 CPU 和内存,现在真的全归你,没人分你的资源;第二,房东根本不进你的屋子,就算门卫室出事也波及不到你,客户之间的隔离更干净。这对普通小应用可能感觉不到,但对「我要一整台裸机满血跑」的高性能客户,是实打实的东西。

第二个不一样:扁平的、高带宽的网络

数据中心里成千上万台服务器要用网络连起来。传统大云的网络更像一棵树:机器先连到机架顶上的小交换机,小交换机再连到中层,中层再连到核心。这种分层网络的问题是——两台机器如果挂在不同的树枝上,数据要先爬到树顶再爬下来,中间每一层都可能堵车、都会加延迟。而且越往上,主干越可能成为瓶颈(这叫「网络收敛」,就是上层带宽故意做得比下层加起来小,赌你们不会同时满负荷跑)。

甲骨文走的是扁平网络(flat network)加高带宽,尽量做到任意两台机器之间都有充足的、稳定的直连带宽,不搞那种「赌你们不会一起用」的超额认购。为什么敢这么砸?因为它自己盖楼,网络拓扑是它自己定的,可以从第一天就按「会有客户需要几千台机器一起满速对话」来铺线。

第三个不一样:RDMA,让服务器之间近乎直连

这是最硬核、也最关键的一块。平时两台服务器通信,数据要经过一长串手续:你的程序把数据交给操作系统,操作系统打包成网络协议(就是 TCP/IP 那一套),经过 CPU 处理,再发出去;对面收到再反着拆一遍。每一步都要 CPU 插手、都要复制来复制去,延迟就是这么攒出来的。数据不大时无所谓,但如果几千台机器每秒要疯狂交换海量数据,这套手续就成了灾难。

RDMA(Remote Direct Memory Access,远程直接内存访问)是绕开这一切的办法:让一台服务器的网卡,直接去读写另一台服务器的内存,几乎不惊动两边的 CPU,也不走那套繁琐的协议栈

打个比方:普通网络通信像两个部门传文件,得先交给收发室、登记、装信封、送到对方收发室、再登记、再拆封、才到人手里。RDMA 相当于在两个人桌子之间直接开了个传送管道,文件「唰」地就过去了,谁的秘书都不用惊动。延迟从毫秒级压到微秒级,差着一两个数量级。

甲骨文把 RDMA 做成了 OCI 的一等公民——不是某个高端选项,而是整个高性能网络的默认底子。而 off-box 虚拟化、扁平高带宽网络、RDMA 这三样,其实是互相咬合的一套设计:虚拟化搬走了,服务器才没有二房东拖后腿;网络扁平了,任意两台才谈得上直连;有了 RDMA,这种直连才快到近乎「一堆机器合体成一台」。缺一个都不成立。

为什么这套东西天生适合「大规模并行」

到这里可以把三件事串成一句话了。甲骨文这套架构,专门优化的是一种特定负载:成千上万台机器,需要低延迟、高带宽地紧密协作、频繁交换数据,像一台超级计算机那样一起算一件大事。

这类负载在计算机领域有个老名字,叫HPC(High Performance Computing,高性能计算)——传统上是气象模拟、流体力学、基因分析这些「一道超大题目拆给一万台机器一起解」的科学计算。它们的共同特征是:机器之间不是各干各的,而是每算一步就要互相对一次答案,通信一慢,全场都得等最慢的那台,整体效率就崩了。所以它们对网络延迟的敏感度,远高于普通网站。

普通公有云是为「一堆互不相干的小应用」优化的——你的购物车崩了不影响我的博客,机器之间聊不聊天都无所谓,所以早期那种分层、超额认购、二房东虚拟化的架构完全够用,还更省钱。但 HPC 这种负载放进去就水土不服:延迟高、带宽不稳、CPU 被虚拟化偷走一截。

甲骨文当年下这个重注,公开的理由是要抢企业里那些「跑得动 Oracle 数据库、也跑得动重型计算」的高价值客户——数据库本身就是个对延迟极度敏感的负载,它太懂这种活儿了。于是它反其道而行:别人为「多而杂」优化,它为「少而重」优化,盖了一座专门跑重型负载的新城。

把赌注摆上桌

现在回头看这个「自己盖」的决定,账其实很拧巴。租别人的机器,轻资产,来钱快,报表好看;自己盖数据中心,要买地、买楼、买机器、铺网络、付电费,全是沉甸甸的重资产,回本还慢。单从做云软件生意的角度,这几乎是笨办法。

但请记住这套架构的形状:它天生就是为「一大堆机器用超高带宽紧密互联、合体成一台超级计算机」而生的。在 2018 年,这个形状对应的是一个不大不小的 HPC 市场,看起来性价比存疑。

可就在没几年后,世界上冒出了一种胃口大到离谱的新负载,它的技术需求跟 HPC 几乎一模一样,只是规模要再放大十倍、百倍——训练大模型。成千上万块 GPU,要用 RDMA 高带宽织成一张网、当成一台超级计算机来喂,谁的机房网络扁平、带宽足、延迟低,谁就天生占便宜。

甲骨文当年为了「少而重」的企业客户,咬牙盖的那座新城,地基恰好就是为这种负载打的。这是运气,还是眼光,后面几章会慢慢算。但有一点这一章必须先钉死:正因为它迟到、没被旧架构锁死,才有机会照着高性能负载重画一张图;也正因为它选了最重的「自己盖」,才真握着地皮和网络,能在 AI 来敲门时把赌注一口气加到千亿。下一章,我们就看这个赌注是怎么被放大十倍的。

收租之王,负债上牌桌 · sissi
面向对世界有好奇心的人 · 费曼式写法 · 由多个 AI 代理撰写与互相审校