在过去的12到18个月中,云领域出现了一个日益增长的趋势。仅仅在几年前,我们还习惯于为每个应用程序使用裸机服务器,然后演变为为了减少物理资源的虚拟机管理程序和虚拟化。下一步是通过将这些虚拟机和实例分成更小的单元——容器来进一步压缩。现在看到的是进化中的下一个阶段——功能即服务,或者更普遍的说法,无服务器。
理由
我们不断寻求优化资源的使用和成本。要做到这些,什么是比消除底层操作系统更好的方式?本质上,我们大多数人是编写代码来创建应用程序。我们不想管理操作系统及其依赖关系,也不想编排它们。我们编写代码,并期望代码运行,而不必处理下面的所有“管道”。这就是无服务器发挥作用的地方。
先锋:AWS Lambda
正如我们今天在公有云中使用的许多事情一样,亚马逊是使用Lambda提供此功能的先锋。Lambda的基本概念是允许你上传代码(当然必须使用支持的语言之一),而无需担心其部署或扩展——所有这一切都由平台负责。你的代码将根据你定义的触发器运行——可以是从队列中消息到计划任务的任何内容,这带来了很大的灵活性。
最棒的是,你支付要为功能实际使用的时间和分配到的资源数量付费。不会仅仅因为你的代码需要每天运行12次,就要为数小时的计算机资源和存储空间花冤枉钱。你可以使用的粒度非常精细,老实说,除非你是非常重度的用户,否则成本基本为 0(亚马逊每月免费提供100万个请求)。
OpenStack怎么样?
OpenStack中有许多不能用作完整服务的组成部分,并不像AWS中的对应部分那样强大。LBaaS和DBaaS是OpenStack社区多年来试图实现的两个例子。不幸的是,这些服务与竞争对手相比不占优。由于缺乏基本功能,许多企业即使在多个发布周期之后仍不愿意采用这些服务,。
OpenStack社区已经认识到了无服务器基础设施的趋势,并且OpenStack中也将(已经)出现对这种服务的需求。目前,有两个竞争项目在OpenStack上提供FaaS——这两个项目都是由商业公司支持的。
StackStorm
StackStorm将其产品定义为“事件驱动的自动化平台”,并在OpenStack波士顿峰会上亮相。
从上图可以看出,该解决方案本身可以利用一些其他OpenStack服务,如Zaquar、Trove和Mistral。但问题在于,今天的大部分OpenStack部署在生产中几乎不使用这些服务,如下所示:
因此,StackStorm路线需要大量修补。它在许多方面都向走向未知的水域,并不被接受为合适的OpenStack项目。
OpenWhisk
OpenWhisk是在OpenStack波士顿峰会上展示的IBM项目。该项目是开源的,可以认为它正在寻求成为现代数据中心的OpenStack(也可能是内部部署)云上无服务器的实际标准解决方案。在波士顿会议中呈现的示例是文件上传到Swift的具体场景,然后会在OpenWhisk上触发一个功能:
成熟度
从上述两个演示文稿和示例可以看出,无服务器仍然是一项正在进行的工作。 OpenStack社区本身尚未决定希望汇聚哪一种解决方案来为OpenStack提供完全集成的无服务器解决方案。上述示例还无法视为目前任何人都可以在其OpenStack(或本地)云上实际使用的完全成熟的解决方案。
无服务器会吞下私有云吗?
越来越多的企业将工作负载转移到主要的公有云提供商(AWS、Azure和Google)。
这不一定与无服务器无关,而是与整体的aaS功能有关。FaaS始终需要一些底层基础架构来运行实际的代码,而且总是需要一个操作系统。如何把它无缝和无形地提供给最终用户(Lambda、Google Cloud功能和Azure功能是如何规模化实现的非常好的例子),以及如何将该服务与所有云端的其他产品联系起来,是问题所在。
总结
专业人士建议,如果可能,你还可以等待更多的OpenStack发布,让开源产品和产品成熟到可以简单和谐的方式使用。
如果有迫切需要,则建议你与某一家主要的云提供商进行沟通,特别是如果它们已经在运行你的工作负载。请注意,并不是所有的提供商都相互兼容——从一个解决方案迁移到另一个解决方案可能是一个非常复杂的操作。
本文转自d1net(转载)