您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

Apache OpenWhisk架构概述 《源代码交易》

  • 时间:2022-08-30 00:52 编辑: 来源: 阅读:318
  • 扫一扫,手机访问
摘要:Apache OpenWhisk架构概述 《源代码交易》
[摘要] Apache OpenWhisk是一个开源的FaaS平台。 现在,AWS Lambda是FaaS最流行的实现。 在开源组件的选择上,OpenWhisk是最好的选择。 OpenWhisk是一个健壮的可扩展平台,支持数千个并发触发器和调用。 本文将探讨OpenWhisk的设计和架构,识别各种组件并使用它们,这将有助于我们更好地理解分布式系统和无服务器平台。 Open Whisk是一个由IBM和Adobe驱动的开源项目。这是一个健壮的FaaS平台,可以部署在云或数据中心。 与其他无服务器项目相比,OpenWhisk是一个健壮且可扩展的平台,它支持数千个并发触发器和调试。 您可以使用Bluemix托管版本的OpenWhisk,或者在您自己的开发机器上部署基于Vagrant的OpenWhisk环境。 在本文中,我们将探索OpenWhisk的设计和架构,识别各种组件并使用它们。 为了获得最佳指南,建议在您自己的机器上部署基于Vagrant的OpenWhisk环境。 OpenWhisk的CLI,wsk应该配置本地设置。 架构快速回顾Apache OpenWhisk被设计成一个异步、松散耦合的执行环境,可以基于外部触发器运行函数。 开发者可以编写独立的函数,作为操作上传,完全独立于事件源。 源通过必要的正确参数集使用该操作。 一旦操作就绪,开发人员就可以创建触发器。 它是触发源明确使用的端点,如数据库、流解析引擎、文件系统和业务应用程序。 操作独立于触发器,这意味着触发器可能有也可能没有任何操作绑定。 当事件源触发触发器时,它可能不知道被调用的操作。 绑定到触发器的操作集仅在运行时被发现和执行。 但是,开发者如何将操作与触发器绑定呢?这是规则。 作为常规触发器和操作之间的纽带,触发器和操作之间形成了松耦合关系。 这种设计模式允许不同的触发器使用相同的操作。 这种松散耦合的架构使得OpenWhisk成为一个可扩展的、可靠的、强大的无服务器平台。 每个执行层都被设计为独立扩展。 可以通过REST端点创建和管理动作、规则和触发器。 事件源使用操作所需要做的就是使用触发器的REST API。 下面是演示的工作流,突出了创建和调试使用代码的简单而强大的机制:$ cat > hello.js 下图描绘了OpenWhisk的架构。 从Nginx到Kafka到Docker,这个无服务器平台使用了各种技术。 通过访问流浪者盒子,使用SSH来检查正在运行的Docker容器和拉取的图像:$ Docker PS-format "{{。姓名}}-{{。image}}”。前两个容器表示最近调用的操作,而其他容器直接映射到核心组件。 下面我们来了解一下各个组件的用法。 Nginx是一个开源Web服务器,它向客户端公开HTTP(S)端点。 主要用作API的反向代理,终止SSL连接。 对OpenWhisk基础设施的每个请求,包括来自wsk CLI的请求,都要经过这一层。 因为它是完全无状态的,所以Nginx层很容易扩展。 控制器通过反向代理的请求后,会触发控制器,控制器充当系统的守门员。 在Scala中,这个组件负责OpenWhisk API的实际实现。 在控制权移交给下一个组件之前,它会为每个请求执行身份验证和授权。 控制器被认为是系统的协调者,它将决定请求最终采用的路径。 CouchDB系统的状态在CouchDB(一个开源的JSON数据存储)中维护和管理 凭证、元数据、名称空间以及动作、触发器和规则的定义都存储在CouchDB中。 控制器根据存储在该数据库中的凭证识别凭证。 可以通过访问http://192 . 168 . 33 . 13:5984/_ utils/(链接只在开发者的机器上使用)从浏览器访问数据库。 创建的初始操作、触发器和规则集的源代码http://192.168.33.13: 5984/_ uti...hisks: helloAction也保存在CouchDB中,包括操作的定义、默认参数和分配的资源配额:OpenWhisk中的每次调用都会导致一次激活,其中包含了动作的输出。 例如,下面的命令异步调用helloAction,产生一个新的激活ID:$ wsk-I action invoke hello action下面是存储在CouchDB中的输出 ConsulOpenWhisk、Kubernetes和Swarm等现代分布式计算平台依靠分布式键/值存储进行状态管理。 OpenWhisk使用Consul作为系统每个组件都可以访问的单一数据源。 同时,consul还提供了服务发现功能,使控制器能够发现调用操作的实体。 这些实体被称为调用者,它们直接负责执行代码。 Consul有一个可用用户及其健康状况的列表。 CONSULTER支持Registrator,Registrator可以查看新的Docker容器,检查它们并决定它们提供的服务。 当Docker引擎创建一个新的容器时,注册者将收到一个被推送到Consul的事件。 当控制器需要将操作委托给调用者时,它会在咨询列表中寻找合适的候选人。 领事的UI http://192 . 168 . 33 . 13:8500/UI/#/DC1/Services:查看可用用户:http://192 . 168 . 33 . 13:8500/UI/#/DC1/kV/invokers/ 它支持需要可靠、高速数据接收的生产工作负载。 OpenWhisk使用Kafka连接控制器和用户。 Kafka缓存控制器发送的消息,然后将它们传递给上一节中Consul的调用方。 当kafka确认消息被传送时,控制器可以立即用激活ID进行响应 这种无状态架构使得OpenWhisk具有高度的可伸缩性。 Apache ZooKeeper维护和管理Kafka集群。 Zookeeper的主要工作是跟踪Kafka集群中存在的节点的状态,跟踪话题、消息和配额。 由Scala实现的Invoker是解决执行过程的最后阶段。 根据运行时需求和配额分配,将自动创建一个新的Docker容器作为所选操作的执行单元。 用户从CouchDB复制源代码,并将其注入Docker容器。 一旦执行完成,它将激活的结果存储在CouchDB中,以备将来检索。 用户决定重新使用现有的“热”容器,或者启动暂停的“热”容器,或者启动新的“冷”容器用于新的用途。 它将查询Conusl的集装箱状态,以便适当使用。 根据平台的负载和利用率,可以有多个用户。 根据元数据,用户将选择要使用的容器图像。 下面是调用helloAction的两个容器。 $ Docker PS-format "{{。姓名}}-{{。image } } " | grep " JS Container " Docker Apache Open Whisk基于少数开源技术,Docker扮演了非常重要的角色。 几乎所有的OpenWhisk组件都是作为容器打包和部署的。 从Nginx到kafka再到consul,平台就像容器一样运行。 OpenWhisk镜像列表可以通过Docker hub查询。 即将推出:虽然API网关没有完全集成,但OpenWhisk也有一个内置的API网关,将其作为HTTP端点公开。 该项目基于Openresty的Nginx,是一个由Adobe维护的开源项目。 目前这种力可以作为实验力。以下命令显示了可能的选项:$ wsk-I API-experimental Summary open whisk是理解分布式系统和无服务器平台的一个有吸引力的项目。 感谢IBM和Adobe向Apache基金会捐款并鼓励社区参与。 最近,虽然许多开源无服务器平台如雨后春笋般涌现,但OpenWhisk以其健壮的架构和设计脱颖而出。 在开源组件的选择上,OpenWhisk是最好的选择,为平台的整体成功做出了贡献。 我希望在未来几个月内看到OpenWhisk的加入。 并注意将OpenWhisk与流行的数据库、存储引擎和API网关集成。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【域名/主机/服务器|】qq邮箱提醒在哪里打开(2024-06-04 18:58)
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部