功能即服务FaaS平台介绍.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT 12 功能即服务(FaaS)平台介绍 功能即服务是在容器之上构建无服务器功能的框架。在去年10月份开始这个项目,用来理念论证,理解是否可以在Docker Swarm上运行Alexa skills或者Lambda功能。在一开始的一些成功之后。 本文直接介绍无服务器计算,然后介绍在之前500次commit里FaaS的3大特性,最后展望未来。 从第一次commit开始,FaaS持续推进,在GitHub上获得了2500多个star,同时还出现了一个开发者和黑客的小型社区(/alexellis/faas/blob/master/community.md),我们会在聚会中发表演讲,编写自己的很cool的功能,并且贡献代码。我自己的一大收获是在4月份Austin举办的Dockercon上获得了Moby‘s Cool Hacks keynote分会场的一个席位。大家想要将Docker设计用来完成的事情的边界进一步扩展。 无服务器是什么? 架构还在演进 “无服务器”这个词并不是很恰当——我们实际讨论的是事件驱动系统的一种全新架构模式。基于此,无服务器功能常常被用来作为服务间的连接,或者用在事件驱动的架构里。在过去,我们称之为服务总线。 无服务器功能 无服务器是一段小型的,无关联的,并且可重用的代码: 它是短暂的 它不是daemon(长期运行的) 它不发布TCP服务 它没有状态 利用已有服务或者第三方资源 几秒内完成执行(基于AWS的Lambda) 我们还需要区分开无服务器产品和IaaS供应商以及开源软件项目。 一方面,IaaS供应商提供无服务器产品,比如Lambda,Google Cloud Functions以及Azure Functions。另一方面,有FaaS这样的框架,让编排平台,比如Docker Swarm或者Kubernetes做重量的事情。 IaaS供应商提供的无服务器产品是完全受控的,因此它提供了高度的便捷性和基于秒/分钟的计费方案。另一面是,用户需要跟踪供应商的发布和支持周期。开源的FaaS想要提供一些多样性以供大家选择。 FaaS的差异化在哪里? FaaS基于业界标准的Cloud Native技术构建: FaaS项目的差异化在于,任意流程都可以通过watchdog(/alexellis/faas/tree/master/watchdog)组件和Docker容器成为无服务器的功能。这意味着如下三点: 用户可以运行任意语言编写的代码 可以运行任意时间 可以在任何地方运行 转向无服务器化并不意味着用另一种编程语言重写代码。只需继续使用业务和团队需要的东西即可。 示例:比如,cat或者sha512sum可以作为一种不需要变更的功能,通过stdin/stdout通信。Windows功能也可以通过Docker CE支持。 这是FaaS和其他开源无服务器框架的主要区别,它们依赖于每种所支持的语言的特定运行时。 下面介绍DockerCon之后的三大主要特性,包括CLI (/alexellis/faas-cli)和功能模板,Kubernetes支持以及异步处理。 1. 全新的CLI 易于部署 我给FaaS项目添加了CLI,让部署功能更为简易和脚本化。在这之前,用户可以使用API Gateway的UI或者curl。CLI让大家可以在YAML文件里定义功能,随后部署到API Gateway上。 Finnian Anderson在Practical Dev/dev.to上(/RNejhxu)写了一篇介绍FaaS CLI的很好的文章。 Utility脚本和Brew 有安装脚本可以用,John McCabe在brew上维护了项目的recipe。 $?brew?install?faas-cli 或者 $?curl?-sL?/?|?sudo?sh 模板 CLI的模板是你唯一需要用所选的编程语言编写handler的地方,CLI会使用模板将其打包成Docker容器——FaaS会处理所需的步骤。 提供了Python和Node.js的模板,但是你可以轻松创建自己的。 CLI支持三种操作: -action build:从模板在本地创建Docker镜像 -action push:将模板推送到指定的registry或者Hub上 -action deploy:部署FaaS功能。 如果有一个单节点的集群,那么不需要推送镜像就可以部署。 YAML格式的CLI配置配置示例: provider:?? name:?faas gateway:?http://localhost:8080 functions:?? url_ping: lang:?python handler:?./sample/url_ping image:?alex

文档评论(0)

lxm + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档