云计算1.0专注于基于虚拟化的基础架构即服务 (IaaS)。云计算 2.0 引入了云原生服务,例如大数据、AI/ML、可扩展的中间件服务以及基于容器化等概念的开发。
云下一步将走向何方?我们有理由相信云3.0 将专注于在任何地方进行大规模的计算——想象一个“去中心化的世界计算机”,完全分布在云的边缘,存在于多个位置,并且永远不会消亡。
为什么去中心化很重要
如今,AWS、Azure、GCP 等公有云大多是中心化的。虽然公有云有多个区域,但每个区域基本上还是一个数据中心。
托管在此类区域中的应用程序将以典型的客户端服务请求/响应方式为远程位置的客户端提供服务。
随着越来越多的数据在边缘生成,由于“数据引力”,计算自然会更靠近数据所在的位置。5G 等技术可以最大限度地减少网络延迟和带宽限制,但不能解决边缘处理的需求。
例如,如果一家零售店想要捕捉客户的照片进行图像识别,然后在客户的手机上做一些推送促销,最好直接在商店本地处理图像,而不是通过 WLAN将图像发送到集中的云区域。还有一些用例需要更多本地用户交互,例如 AR/VR。
分散式云计算方法的另一个优点是参与者可以在需要时相互提供资源。资源孤岛可以被打破,这样整个世界就可以减少基础设施的过度配置。
我们已经看到公共云提供商将其业务扩展到更靠近边缘的位置。这些位置和投资,跨越多个云和数据中心,为真正的全球化提供了坚实的基础设施点。
差距和挑战
虽然“云3.0”可能是一种自然演变,但我们才刚刚开始解决企业需要解决的问题:
1. 安全和控制必须是首要考虑因素
这类似于早期的私有云与公共云的争论。企业花了十多年的时间才拥抱公共云。云提供商必须证明他们在安全性、运营效率、工作负载和网络隔离方面做得更好。
即便如此,企业仍然会使用混合云或多云。没有人愿意把所有的鸡蛋放在一个篮子里,有些云更适合某些特定的工作负载。
完全去中心化的全球“公共”云将很难被企业所接受,特别是如果他们的工作负载将在不可见的不受信任的计算环境中运行。由于一切都是分布式的,因此网络和数据物理隔离几乎是不可能的。需要改变思维方式才能转向逻辑隔离。
企业将更喜欢专用的“私有”去中心化云,覆盖现有的公共云和私有云,利用他们自己的公共云帐户和本地基础设施,以便他们拥有控制和信任。
2. 要求重写应用程序会减慢采用率
早期的去中心化计算平台要求开发人员使用专有的编程语言或 PaaS 服务来创建可以在其平台上运行的应用程序。
例如,CDN 提供商提供 FaaS 服务,以太坊提供类似 Javascript 的编程语言Solidity,或者 Synadia 提供用于应用程序的去中心化 NATS 消息总线服务。
这可能是充分利用平台并在幕后隐藏一些互连所必需的。然而,这阻碍了采用——重写应用程序不仅是一项巨大的投资,对于企业而言,只有一个选择也是有风险的。
2009 年《伯克利云计算》(A Berkeley View of Cloud Computing)曾经给出预测。它描述了两种相互竞争的云计算方法:基础设施即服务(例如 AWS EC2)和平台即服务(例如 Google应用引擎)。
它预测 PaaS 将会获得广泛应用,因为它会隐藏基础设施的复杂性并提供简单的编程接口来使用服务。
当此观点发布后,作者承认:“市场最终接受了亚马逊的低级虚拟机方法来进行云计算,因此谷歌、微软和其他云计算公司提供了类似的接口。我们认为低级虚拟机成功的主要原因是,在云计算的早期,用户希望在云中重新创建与本地计算机相同的计算环境,以简化将工作负载移植到云的过程。显然,实际需求优先于仅为云编写新程序,尤其是在尚不清楚云会取得多大成功的情况下。”
而AWS 同时提供 IaaS 和 PaaS 服务。两者都很重要,但首先采用 IaaS 是因为它更好地理解了最初如何使用它。
成功过渡到云3.0将建立在当今熟悉的开发人员工具和平台上,例如容器和 Kubernetes,但要以采用多云和多集群方式。其他去中心化服务和平台将随着时间的推移而发展。
3. 罗马不是一天建成的,去中心化的云也不是
企业采用和迁移到去中心化云不会在一夜之间发生——这将是一个过程。此外,服务仍将存在于本地或公共云上,因此与它们的互操作性将很重要。
当迁移到去中心化云时,第二层或第三层站点到站点的VPN / VPC 对等设置将不再可行。大多数服务访问控制必须在应用程序服务级别的第7层。Service Mesh 将发挥重要作用并扩展到其他集群,以及与现有的遗留服务互连。
为了让一切变得无缝,需要计算平台编排和放置额外的 Service Mesh 网关,以实现服务可访问性控制的自动化。
虽然完全去中心化的泛在计算平台的概念很有趣,但要实现它还需要解决许多问题。新的用例、实现——我们将在未来几年看到更多发展。