2021 年,UC Berkeley 的 Ion Stoica 和 Scott Shenker,在运行零碎热点话题的研讨会上,公布了“从云计算到天空计算”的论文。不同于咱们都熟知的Cloud Computing(“云计算”),Sky Computing (“天空计算”),是云计算的将来,是指天空中有很多的云,如何解决跨云的问题,突破不同云之间的隔膜,最大化地利用跨云数据。
达坦科技的使命正如同论文中形容的“天空计算”的愿景:打造下一代云计算平台,让云之间没有隔膜。为此,新年伊始,咱们翻译了这篇论文,将分两期公布。如下是“从云计算到天空计算”的第一局部。
简介
1961 年,John McCarthy 对将来计算提出了一个预言:
“兴许在将来的某天, 计算自身将会成为基础设施, 就像电话一样。咱们能够连贯到计算服务提供商, 用户只需为应用的计算资源付费, 就领有了可能应用整个零碎的能力。”
从技术角度而言, John McCarthy 的预测还是很有预见性的, 他精确地形容了当今云计算的应用场景。然而在商业上 John 的预测就差得比拟远了, 例如在美国连电话服务都不是公共设施,因为该服务是由一系列服务商提供的。尽管如此, 电话服务还是给用户提供了对立的用户体验,即无论用户应用的是哪一个电话运营商的服务, 他都能接通电话网络上的任何人, 并且该用户想要切换供运营商也十分不便, 甚至可能保留电话号码。
回到 John McCarthy 的预测, 咱们其实也并不冀望可能将计算变成一个公共服务, 然而当初的云计算依然不是一个可行的解决方案。每一家云计算都在提供本人定制的服务, 相互之间差异较大无奈转换。综上,本文将论述如何一步一步地抹平这些差别, 将云计算变成更加通用的天空计算。
历史的回顾
高性能计算社区 (HPC) 在 1980 年代已经尝试过将计算倒退成为基础设施, 然而个人电脑的崛起拖慢了这个过程, 人们纷纷将注意力放到了如何将电脑小型化上, 以便让所有人都能应用上电脑。个人电脑产业的第一批发起者是一些电脑爱好者, 他们让电脑变得更加轻薄, 同时摩尔定律也使得电脑的性能失去急速晋升, 从而满足了人们日渐减少的需要。
因特网的倒退使得一些服务被大家宽泛应用, 例如电子邮件, 论坛和游戏。万维网则推动了下一波的浪潮, 包含网络搜寻, 电商和社交媒体。为了上述服务可能失常运行且满足日益增长的需要, 服务商们不得不搭建本人的数据中心, 并构建简单的分布式系统。这场静止囊括的都是大家耳熟能详的大公司, 像雅虎, 谷歌,Ebay 和亚马逊等。因为建设这样大规模的数据中心须要有微小的资产投入, 因而是一个十分高的壁垒,使得绝大多数小公司无奈进入。
上述的状况在 2006 年产生了扭转, Amazon 开始提供 S3 和 EC2 服务, 以此开启了云计算的时代。原本以此为开始, 咱们是有机会倒退出上述的 ” 天空计算 ” 的, 然而因为 sk 商业上的起因,咱们最终走向了另外一个方向。
在晚期 Amazon 主导了整个云计算市场, 成为了该畛域的事实标准。然而过来的十年市场产生了天翻地覆的变动, AWS 当初只有 32% 的市场份额, 微软紧随其后占有 19% 的份额, 谷歌 7% 份额, 阿里巴巴 6% 份额, 后续所有云计算厂商瓜分了残余的 37% 份额。这样的市场散布造就了更低的应用价格, 也产生了更多的服务和产品广度, 例如 AWS 一家就提供了超过 175 种产品和服务。这些服务绝大多数是私有化服务, 并且这些个性化的服务也是云计算提供商达到区分度的伎俩之一。举个例子, 每个云计算提供商都有本人版本的 API 来治理集群, 也都有本人面向对象的存储接口等等。程序开发人员为一个云平台开发的软件无奈间接在另外一个云平台上运行, 想要达到上述目标须要进行大量的二次开发。这就如同为 Windows 零碎开发的程序无奈间接在 Mac OS 上间接运行一样。正是因为这些商业竞争使得咱们间隔计算公共设施化越来越远。
目前为了达成一个规范的探讨曾经十分多了, 然而这样的致力却收效甚微。而且当初的云计算的商业模式就基于服务的差异化, 首先将用户吸引到本人的平台上来, 而后将用户绑定在本人的平台, 因而提供通用性的服务自身就是和上述的商业模式相冲突的。在此背景下, 咱们如何从当初的云计算模式向计算公共设施化推动呢?
咱们的提议叫做天空计算, 用以表明咱们想要冲破单个云计算厂商的解放的指标。然而咱们并不是第一个提出这个概念的人, 从 2009 年开始曾经有好几篇论文应用了这个名字。然而那些论文的关注点次要是技术层面的, 比方在云计算平台上运行一个中间层, 或者就是针对特定的利用场景, 比方高性能计算。本文将从一个更广阔的视角来看天空计算, 从更通用的角度来思考将来的计算形式, 思考如何从技术和市场的角度来达到天空计算这个指标。
从因特网取得的启发
尽管云计算和互联网从很多方面都不一样, 然而这并不障碍因特网可能带来一些启发。在上个世纪六十年代, 好几个组织都在开发本人的包交换技术。这些晚期的网络都工作得很好, 然而他们并不兼容。整个社区面临一个抉择: 须要一个独自的标准化的网络吗? 有没有可能找到一种形式可能抹平这些差别? 在 1972 年, Robert Kahn 提出了凋谢架构网络, 并引入一个通用的兼容层, 使得任意两个网络之间可能互相通信, 这一层最终就变成了当初大家熟知的 IP 层。尽管 IP 层解决了两个网络之间的通信问题, 然而随着因特网的倒退, 路由的问题就凸显了进去: 网络包如何跨过多重互相独立的网络达到正确的目的地。
BGP 就是被创造进去解决上述问题的, 它就是网络间的胶水, 把互相独立的网络粘合成一个整体出现给用户。这是一个技术解决方案, 然而经济上的问题依然存在: 当网络连接起来之后, 是否须要互相付钱? 如果需要的话, 谁付给谁钱? 一系列的协定和实际在现实生活中被应用, 这个办法被称作 “peering” 协定。比方两个体量差不多的网络, 他们之间的连贯很可能是收费的。这样的办法从技术上是直观的, 然而在商业上依然存在问题, 例如: A 网络和 B 网路并不间接连贯, 然而 A 网络帮忙 B 网络传递数据包, A 需不需要问 B 索要费用?
总结一下因特网可能提供一个对立的接口起因有三个: 第一, 从技术上提供了一个兼容层; 第二, 用一个胶水协定将整个网络连接在了一起; 第三, 在商业上达成了一系列共识, 让多家公司可能一起合作。
将这些教训转移到云计算的场景来, 咱们冀望的是应用程序一次开发后可能运行到所有的云提供商上, 用户也不须要为在不同云上的部署操心。简而言之, 用户写多云的应用程序必须和写单云的应用程序一样简略。咱们给这种模式一个名称, 叫做天空计算。
兼容层
为了实现天空计算, 第一步就是提供一个兼容层, 该层将每家云计算提供的实现细节给屏蔽了, 对上提供一个对立的接口, 利用程序开发一次即可。从互联网的角度看, 这个兼容层就是 IP 层, 所有 IP 之下的协定都须要可能正确处理 IP 的数据包。然而云计算的场景和 IP 又有很大的不同:IP 是一个独自的协定, 云计算的服务类型则十分繁多, 而且服务品种还在一直增长。从这个角度而言, 云计算兼容层更像是操作系统, 治理着所有的资源并且为下层利用提供接口。
云计算尽管提供了很多底层的公有接口, 然而用户用的更多的是更加下层的接口。侥幸的是越来越多的下层接口有了开源软件的代替, 例如操作系统有 Linux, 资源管理有 K8S 等。更进一步, 那些开源软件的创造者创始的公司, 往往会在多个云平台上部署本人的服务。这样用户从一个云平台迁徙到另外一个云平台会简略得多。
尽管开源软件解决了天空计算中的绝大多数问题, 然而还有一个问题没有解决, 那就是存储问题, 因为每一家云厂商都会提供本人的存储接口。侥幸的是曾经有一个计划提供 S3 兼容的接口, 甚至一些云厂商本人也会提供 S3 兼容的接口。更进一步, 云平台之间的数据拜访应该是可行的, 不会受到妨碍。
未完待续
达坦科技(DatenLord)推出的开源分布式 KV 存储 Xline,就是针对多数据中心场景,实现数据的高性能跨云、跨数据中心共享拜访,并保证数据的一致性,不便业务零碎实现多地多核心多活部署。
GitHub 链接:Https://github.com/datenlord/Xline