云计算 频道

时远时近的OpenStack和无服务器 我们如何看待

  【IT168 编译】在过去的12到18个月里,云计算出现了巨大的增长。而在几年前,我们仍习惯于为每个应用程序使用一个裸金属服务器,然后进化到虚拟机管理程序(Hypervisors)和虚拟化,以便从我们有限的物理资源中挤出更多的资源。下一步是通过将这些虚拟机和实例拆分为较小的单元——容器,来进一步压缩。我们现在看到的是这种进化的下一个阶段——功能即服务(FaaS),或者说更广为人知的无服务器(serverless)。

  基本原理

  我们一直在寻求办法以优化资源使用和成本,不过,有什么方法能比消除底层操作系统更好呢?对于大多数IT项目而言,人们所要做的就是编写代码来创建应用程序,大部分人并不希望去管理操作系统和它们之间的依赖关系,或者说不希望去协调这些关系。我们写好代码,让它能够良好运行就是了——无需处理底层设施。这正是无服务器发挥作用的地方。

  开拓者——AWS Lambda

  就像开拓了云计算一样,亚马逊也是提供这种功能的先驱者。Lambda的基本概念是让你上传代码(当然,它必须是在支持的语言中),不必担心它是如何部署或扩展的——所有这些都是由平台来处理的。你的代码将基于你定义的触发器运行,它可以是任何消息,从队列中的消息到调度的任务——拥有很大的灵活性。你只需要根据你的功能实际使用时间和你分配给它的资源的数量来进行付费。如果你的代码每天运行12次,那就付只需12次的钱。可用的粒度是如此之细。除非你是一个会大量消耗资源的用户,否则你就能获得亚马逊的免费服务(每月100万请求免费)。

  OpenStack呢?

  在OpenStack中有很多东西都不能作为成熟的服务提供,也不像AWS的同类服务那样成熟。LBaaS和DBaaS是OpenStack社区多年来尝试生产的两个例子。不幸的是,这些服务的收效并不让人满意,许多企业拒绝采用它们,因为缺乏基本的功能,即使是在几次更新之后。

  OpenStack社区已经认识到无服务器基础设施的趋势,并且在OpenStack中也会有这种服务的需求。目前,在OpenStack上有两项提供FaaS的项目,这两个项目都得到了商业公司的支持。

  StackStorm

  StackStorm将他们的产品定义为“事件驱动的自动化平台”,并在波士顿的最近一次OpenStack峰会上进行了展示。


  正如你在上面看到的,解决方案本身使用了许多其他的OpenStack服务,如Zaquar、Trove和Mistral。问题是,目前的OpenStack部署中大多数都很少使用这些服务,正如您在下面看到的:

  因此,沿着StackStorm路线走下去需要大量的补充,而且在许多方面,这是一个进入未知领域的旅程,因为很多人这并不是一个合适的OpenStack项目。

  OpenWhisk

  OpenWhisk是IBM的一个项目,也在波士顿OpenStack峰会上演示过。这个项目是开源的,可以说它正在成为现代数据中心OpenStack(也可能是on - premises)云的实际解决方案。在波士顿会议上展示的示例基于文件上载到Swift的具体场景,然后在OpenWhisk上触发一个函数:

  成熟

  正如您可以从上面的两个演示和示例中看到的,无服务器仍然是一个“革命尚未成功”的工作。OpenStack社区本身还没有决定哪一种解决方案能够汇聚成一种完全集成的无服务器解决方案。上面的例子不应该被认为是完全成熟到任何人都可以在其OpenStack(或on - premises)云上实际使用的解决方案。

  无服务器会取代私有云吗?

  越来越多的企业将他们的工作负载转移到主要的公有云供应商 (AWS、Azure和谷歌),因为OpenStack的进度太慢了。

  FaaS总是需要一些基础的基础设施来运行实际的代码,而且总是需要有一个操作系统。问题在于你如何将这些功能传递给你的终端用户(关于如何大规模实现,Lambda,谷歌云functions,和Azure functions都是目前很好的例子)以及如何把这项服务无缝衔接到你的其他云供应商。

  摘要

  云计算专业人士建议,如果可能的话,你等几个周期,等待开源产品和商业产品成熟,他们可以用在一个简单的和谐的方式完成你的需求。也就是说,不要做第一个用他们推出的解决方案的人。

  如果您有迫切的需要,最好与主要云供应商之一进行合作,尤其是如果他们已经在运行您的工作负载。请注意,并非所有的供应商都是兼容的,从一个解决方案迁移到另一个解决方案可能是一个非常复杂的操作。

0
相关文章