Serverless是云计算的未来吗?
- knative
- 4天前
- 30热度
- 0评论
原文链接:https://developer.ibm.com/blogs/the-future-is-serverless/
一、简介
近几年随着云计算的迅猛发展,出现一种新的推动力那就是Serverless,其将推动云计算再次演进。本文将阐述一个观点,即Serverless是云计算的未来。
当下云计算的影响力已经渗透到世界的各个角落,无论你身处何方都可以看见那些依赖便携电脑上网和处理信息的人。那些信息大都从边缘设备采集,进而被运行在云端的应用程序和服务收集,处理后产生的。作为一名拥有该领域多年经验,且推动支撑现代IT关键开源技术发展的个体,是时候退一步思考一下云计算未来发展方向的大问题:
当前云计算模式的下一步的发展方向是什么?
更确切地说是目前占主导地位的由Kubernetes驱动的混合云的计算模式的未来是什么。
说起无服务计算,就和当初Kubernetes的情况一样,通常被提到的就是自然进化,但它是朝着正确的方向演进吗?是否有助于缓解日益增长的云计算成本?亦或它的持续增长是否对我们的环境再次造成威胁?
伴随着云计算的兴起,任何人都可以用每小时几分钱的低廉价格拥有一块云计算机(通常以VM虚拟机或容器的形式)。极大的便捷性使任何人在任何地方都具备毫不费力的启动“云规模”计算资源的能力,这也是我们当前技术革命的最大驱动力之一。
当然这场变革也带来一个后果,一旦向用户提供了高可用的廉价计算单元,无论计算资源是否被充分的利用都将被一直分配。这些资源被分配后,云供应商就需确保在用户需要使用时可以被随时使用。而与此同时,用户运行的工作负载却很难达到7*24持续去使用这些分配的计算资源。
二、Serverless是云计算的未来
Serverless是为了解决云计算资源分配的问题而产生的。通过增加资源分配的自动化功能,Serverless使用户不再需要预先确认和分配其工作负载所需要的计算资源。作为一个开源的示例,Knative就是在Kubernetes云平台之上增加了自动化扩展,根据实际服务的需要自由扩缩计算资源。一方面随着请求的不断到来,Knative会相应增加分配的计算资源,并且支持无限扩展Pods节点,另一方面当请求量逐步降低时,Knative会相应缩小计算资源的规模(无请求时则0个Pods)
由此,Knative通过确定何时何地需要那些计算资源,解决了为用户预先分配资源的问题。唯一要做的就是在Knative增强的Kubernetes集群上部署一个服务,当然服务本身并不占用额外的计算资源,以后便可以随时随地的响应计算资源的请求。正如Knative所展示的,Serverless模型将每个服务都定义为一个事件,Knative本身也做了一些功能增强,以便能更好的控制事件的生产和消费。这也能确保每个服务在任何时候都能独立的进行扩展控制,只需要有必要数量的服务实例在云上运行。
Knative通过不断的将每个服务所预留的云资源与实际使用的量相适应来提高云的效率。Knative成为改进Kubernetes的一种方式—涵盖了很多相同功能的同时为用户增加了简化和自动化,从而实现了更高的云效率。因此,你应该尽可能去使用Knative而不是直接使用底层Kubernetes。
三、管理成本
Serverless解决了云用户在部署服务时需要保留计算资源的问题。通过Serverless部署的服务只有在事件(服务请求)需要处理时才会被激活,为云用户节约了成本。伴随更多事件的出现,相应的云服务就会通过扩展来满足需要,而当需求减少时服务便可以缩减直至为零,最佳的情况就是一个服务只需要消耗它处理收到需求所必要的资源,不多也不少。
云服务商在提供Serverless服务时也可以节约成本。在没有Serverless的时候,用户购买了预先配置的计算资源,所有的这些资源都在某处的虚拟机上进行本地化部署。云服务商必须确保当服务达到峰值时,为该服务提供资源的虚拟机要有足够的本地资源提供扩展空间。而有了Serverless后,随着服务需求的增长,云服务商只要确保云上有足够的资源来服务该事件既可。
以Knative为例,如果一个事件到达某个特定的Kubernetes集群,Knative可以在集群的任何地方为该事件寻找资源,而不必局限于一个特定的工作节点。如果整个Kubernetes集群的资源都被完全使用,云服务商可以将事件路由到其他集群,这些通过Istio将网络抽象,同时使用Kubernetes的联合模型非常容易实现。随意使用任意地方的计算资源为事件服务解决了对本地资源预分配的问题,也大幅提高了云效率。总的来说,Serverless为云服务商和用户都带来了显著的成本降低。
四、其他领域
1、数据和人工智能
数据和人工智能也是一个成熟的Serverless使用领域。典型的用例就是在大型数据集上运行机器学习(ML)算法,以及完善算法和功能,并重新运行的能力。一些项目如Kubeflow围绕Knative打包了必要的库和功能,便于这些用例的执行。我们还可能会通过不同的交互模式扩展当前的Serverless解决方案,使数据和人工智能用例更加自然,如允许fire-and-forget类型调用。此外,添加对提供的端点进行回调,以获得结果的功能也可能会非常有帮助。
2、量子计算
最后Serverless架构未来的一个非常重要的应用就是帮助量子计算机成为主流。量子计算机性能全面超越经典计算机,且具有其所不具备的优势,然而它的使用却需要专门的硬件和机柜,并且量子计算机编程限制也是一个重要因素。量子计算机令人望而却步的财务成本及其冷却系统相关的能源成本,使得能提供成本和能源优化的Serverless成为天然候选者。通过量子Serverless模型,如《超导量子计算的未来》中所述,我们可以通过访问事件驱动和经典的Serverless相关的工作负载来减少直接使用量子计算机的复杂性。IBM量子团队正在将量子Serverless作为他们未来2-5年战略的基石。
五、总结
我们认为未来这种Serverless优先的模式对云用户和服务商都带来各种潜在的好处。这种好处不仅仅体现在各方面成本的节约,更重要的是还包括能源效率,从而带来更环保的云和更有环境意识的计算。最后我们还提供了Serverless优先的云的一些用例,如数据和人工智能以及量子计算。