VMware发布Dispatch,正式加入Serverless大军

 吴佳兴 译 分布式实验室

VMware发布Dispatch,正式加入Serverless大军


VMware在VMWorld 2017大会上发布了其Serverless计划,并在现场演示了一个使用Apache OpenWhisk(现有的一项开源FaaS技术)实现的函数即服务(FaaS)。从那时起,Serverless团队一直致力于定义一款基于VMware基础设施之上实现的Serverless框架。这些努力的成果便是Dispatch[1],一款全新的由VMware发起的开源项目,不久前刚刚在GitHub上发布。
Dispatch,构建于Kubernetes之上,提供了一系列的工具和服务以部署和管理生产可用的、函数式支持的Serverless应用。Dispatch不仅仅局限于函数的执行,而是为任何运行在Kubernetes环境里的应用提供了一个“内置电池”形式的Serverless框架。
Dispatch目前是作为Apache License 2.0开源项目公开的。作为一个最初的发布版本,当前实现的功能集是最小化的。我们将继续加强和发展Dispatch,因此我们期待着开源社区和设计合作伙伴的积极参与。

VMware发布Dispatch,正式加入Serverless大军


上图所示即Dispatch的架构,这是一个由VMware发起的开源的Serverless框架。


定义“Serverless”

VMware发布Dispatch,正式加入Serverless大军


当下的开发人员和组织机构正在将大型的,单体的传统应用迁移到基于微服务的架构体系,从而提高软件服务的可扩展性以及开发人员的效率。然而,这些好处有代价的,即集成的复杂性。此外,软件开发人员仍然常常和基础设施直接打交道,无论是虚拟机(VM)又或者是通过Kubernetes或其他容器编排系统运行的容器。
Serverless是应用和系统设计及部署的下一代变革。Serverless应用建立在函数 —— 一些小的代码工件之上,它们是紧凑的,并且专用于一项离散的任务。
这些函数是无状态的,并且必须依赖额外的服务来维护状态,例如数据库和对象存储。它们通常是事件驱动的,这意味着会有一个事件总线来提供触发和反馈函数的执行。由于拥有这些属性,这些函数可以在定义时根据需求轻松地扩展。


Dispatch:不只是函数VMware发布Dispatch,正式加入Serverless大军


构建、部署和管理Serverless应用程序需要的不仅仅只是一个功能调度和执行程序。Dispatch将功能和服务结合在一起,从而能够轻松地管理在函数之上构建的生产级别的应用程序和服务。


一个更灵活的FaaSVMware发布Dispatch,正式加入Serverless大军


Dispatch本身并不是一个函数调度器和执行器。由于已经有几个开源的FaaS实现作参考,Dispatch团队在很早以前就决定了如下三件事情。
第一,我们不会重复造出另一个开源的FaaS框架;
第二,该领域发展还处于早期阶段并且尚未成熟到能够准确地预测说哪家FaaS会否统治其他玩家;
最后,我们将会把Kubernetes定位成一个部署环境,它将为我们提供一个标准的开发和生产环境,无论它是部署在笔记本电脑、私有数据中心,亦或是公有云。
与众不同的是,Dispatch通过一个驱动接口抽象了FaaS的实现,允许和一个或多个现有的或未来的FaaS实现方案集成在一起。最初的Dispatch版本集成了OpenFaaS[2]和Riff[3]的驱动。未来将会加入更多的FaaS实现方案的驱动支持,包括公有云提供的像AWS Lambda这样的实现。
能够集成多个FaaS实现的灵活性并不仅仅只是为了不过时的考虑。这也解锁了一些有意思的场景,在这些场景中,相同的函数能够根据地理位置,计算资源(GPU)或者在公有云上进行急速扩容等因素分派到一个或多个不同的环境里执行。


一个安全的FaaSVMware发布Dispatch,正式加入Serverless大军


让开发人员能够直接访问虚拟机和容器可能会有点问题。IT人员可能会很快失去对生产环境的控制,并无法得知在他们的数据中心里实际运行了什么软件。另一方面,如果开发者不能直接访问虚拟机和容器的话,这也将会是造成IT和开发人员受挫的瓶颈。
基于函数的部署可以缓解这一问题。Dispatch提供了一个可以管理和检查实际运行的函数代码的环境。来自VMware的枢纽容器服务(PKS)提供了安全且最新的Kubernetes服务。Dispatch则是构建在最新的Photon OS[4]上管理函数的运行时和工件(容器)。


一个多租户的FaaSVMware发布Dispatch,正式加入Serverless大军


Dispatch被设计成在多用户和多组织的环境里工作。Dispatch将可以和现有的与OAuth 2.0兼容的身份认证厂商(如GitHub或Active Directory)集成。管理员将能够创建角色和权限,以确保整个Dispatch API处于严格的访问控制。


一个合适的API网关VMware发布Dispatch,正式加入Serverless大军


为了构建一个简单的webhook或者更丰富的web服务来触发组成一次部署的所有函数,我们需要一个API网关。该API网关负责提供路由和安全性。
Dispatch集成了开源的Kong API网关,为构建在Dispatch上的应用程序提供了一个生产水平的解决方案。想要创建一个安全的HTTPS端点,只需要简单定义一条路由并将其绑定到一个函数即可。


与他人合作共赢VMware发布Dispatch,正式加入Serverless大军


与外部服务和事件的集成对于任何Serverless解决方案都是至关重要的。Dispatch实现了一个外部服务接口,允许将Dispatch扩展成能够与任何其他服务一起工作。这些服务可以是数据库,为应用程序维护状态,或者事件源,为函数提供触发器。该接口是灵活且可扩展的。
预览版本中包含一个VMware vCenter Server的驱动程序,该驱动程序允许函数订阅并响应vCenter事件。和创建PowerCLI函数的能力结合在一起使得Dispatch已然是一款强大的IT管理工具。


加入到Dispatch团队VMware发布Dispatch,正式加入Serverless大军


Dispatch最开始是VMware xLabs内部的一个项目,该实验室是VMware的一个创意孵化器,可以快速跟进像Serverless这样的创新想法从而取得成功。如今,Dispatch已经是一个公开的开源项目。
您可以在GitHub[5]上找到Dispatch的代码和文档。眼下许多功能还处于开发中,但是我们鼓励好奇的小伙伴们加入进来,一起构建和创造想象力。
相关链接:

  1. https://github.com/vmware/dispatch

  2. https://www.openfaas.com/

  3. https://projectriff.io/

  4. https://vmware.github.io/photon/

  5. https://github.com/vmware/dispatch


原文链接:https://blogs.vmware.com/opensource/2018/01/12/dispatch-project-open-source-serverless-framework/


上一篇:我的 Serverless 实战—钉钉应用Serverless云开发实训营5天学习心得


下一篇:手机淘宝轻店业务 Serverless 研发模式升级实践