【无服务器架构】openwhisk 经典使用案例

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 【无服务器架构】openwhisk 经典使用案例

OpenWhisk提供的执行模型支持各种用例。以下各节包括典型示例。有关无服务器体系结构,示例用例,优缺点讨论和实现最佳实践的更详细讨论,请阅读Martin Fowler博客上的Mike Roberts优秀文章。

微服务

尽管具有微服务的优势,基于微服务的解决方案仍然难以使用主流的云技术来构建,通常需要控制复杂的工具链以及独立的构建和运营管道。小型而敏捷的团队花费大量时间来处理基础架构和操作复杂性(容错,负载平衡,自动缩放和日志记录),尤其希望使用一种方式来开发精简的,增值的代码,这些代码已经使用了已知的编程语言。爱,最适合解决特定问题。

OpenWhisk具有模块化和固有的可伸缩性,因此非常适合在操作中实现细粒度的逻辑。OpenWhisk动作彼此独立,可以使用OpenWhisk支持的多种不同语言来实现,并可以访问各种后端系统。每个动作都可以独立部署和管理,并且可以独立于其他动作进行扩展。OpenWhisk以规则,序列和命名约定的形式提供动作之间的互连性。这对于基于微服务的应用程序来说是个好兆头。

Web应用

尽管OpenWhisk最初是为基于事件的编程而设计的,但它为面向用户的应用程序提供了许多好处。例如,将其与较小的Node.js存根结合使用时,可以使用它为相对容易调试的应用程序提供服务。而且,由于与在PaaS平台上运行服务器进程相比,OpenWhisk应用程序的计算强度要低得多,因此它们的价格也要便宜得多。

可以使用OpenWhisk构建和运行完整的Web应用程序。将无服务器API与用于站点资源的静态文件托管相结合,例如HTML,JavaScript和CSS意味着我们可以构建整个无服务器的Web应用程序。与站起来并操作Node.js Express或其他传统服务器运行时相比,操作托管OpenWhisk环境的简单性(或者因为它托管在IBM Cloud上而根本不需要操作任何东西)是一个巨大的好处。

其中一项有用的功能是使用OpenWhisk CLI wsk工具(称为“ --annotation web-export true”)的选项,该工具可从Web浏览器访问代码。

以下是一些有关如何使用OpenWhisk构建Web应用程序的示例:

  • Web操作:具有OpenWhisk的无服务器Web应用程序。
    使用IBM Cloud Functions和Node.js构建面向用户的OpenWhisk应用程序
    使用OpenWhisk的无服务器HTTP处理程序
  • Web Actions: Serverless Web Apps with OpenWhisk.Build a user-facing OpenWhisk application with IBM Cloud Functions and Node.jsServerless HTTP handlers with OpenWhisk

物联网

当然可以使用传统的服务器架构来实现物联网应用,但是在许多情况下,不同服务和数据桥的结合需要高性能和灵活的管道,从物联网设备到云存储和分析平台。通常,预配置的网桥缺乏实现和微调特定解决方案体系结构所需的可编程性。鉴于可能的管道种类繁多,并且一般而言,尤其是在IoT中,围绕数据融合的问题缺乏标准化,因此在许多情况下,管道需要自定义数据转换(用于格式转换,过滤,扩充等)。OpenWhisk是一种出色的工具,可以以“无服务器”方式实现这种转换,其中自定义逻辑托管在完全托管且具有弹性的云平台上。

物联网场景通常固有地是传感器驱动的。例如,如果需要对超过特定温度的传感器做出反应,则可能会触发OpenWhisk中的操作。物联网交互通常是无状态的,在发生重大事件(自然灾害,重大天气事件,交通拥堵等)的情况下,可能会产生非常高的负载水平。这产生了对弹性系统的需求,该系统的正常工作量可能很小,但需要具有可预测的响应时间,能够迅速扩展,并且能够处理大量事件,而无需事先向系统发出警告。使用传统的服务器体系结构来构建满足这些要求的系统非常困难,因为它们要么功率不足,无法处理流量高峰,要么配置过度且极其昂贵。

这是一个使用OpenWhisk,NodeRed,Cognitive和其他服务的示例IoT应用程序:使用OpenWhisk对IoT实时数据进行无服务器转换。


API后端

无服务器计算平台为开发人员提供了一种无需服务器即可快速构建API的方法。OpenWhisk支持自动生成用于操作的REST API,并且很容易将您选择的API管理工具(例如IBM API Connect或其他)连接到OpenWhisk提供的这些REST API。与其他用例相似,适用于可伸缩性和所有其他服务质量(QoS)的所有注意事项。

这是使用Serverless作为API后端的示例和讨论。

移动后端

许多移动应用程序需要服务器端逻辑。对于不想管理服务器端逻辑而宁愿专注于设备或浏览器上运行的应用程序的移动开发人员,使用OpenWhisk作为服务器端后端是一个很好的解决方案。此外,对Swift的内置支持使开发人员可以重用其现有的iOS编程技能。移动应用程序通常具有不可预测的负载模式,并且托管的OpenWhisk解决方案(例如IBM Cloud Functions)可以扩展以满足几乎任何工作负载需求,而无需提前配置资源。

数据处理

由于现在可用的数据量很大,因此应用程序开发需要具有处理新数据并可能对其做出反应的能力。此要求包括处理结构化数据库记录以及非结构化文档,图像或视频。可以通过提供的系统或自定义提要来配置OpenWhisk,以对数据更改做出反应并自动对传入的数据提要执行操作。可以对动作进行编程以处理更改,转换数据格式,发送和接收消息,调用其他动作,更新各种数据存储,包括基于SQL的关系数据库,内存中的数据网格,NoSQL数据库,文件,消息传递代理和各种其他系统。OpenWhisk规则和序列提供了无需编程即可灵活地更改处理管道的灵活性-只需通过配置更改即可。这使得基于OpenWhisk的系统具有高度的灵活性,并易于适应不断变化的需求。

认知应用

认知技术可以与OpenWhisk有效结合,以创建功能强大的应用程序。例如,IBM Alchemy API和Watson Visual Recognition可与OpenWhisk一起使用,以自动从视频中提取有用的信息,而无需实际观看。

这是一个示例应用程序Dark vision,它就是这样做的。在此应用程序中,用户使用Dark Vision Web应用程序上载视频或图像,该应用程序将其存储在Cloudant DB中。视频上传后,OpenWhisk通过听Cloudant更改(触发)来检测新视频。然后,OpenWhisk触发视频提取器操作。在执行过程中,提取器将生成帧(图像)并将其存储在Cloudant中。然后使用Watson Visual Recognition处理帧,并将结果存储在同一Cloudant DB中。可以使用Dark Vision Web应用程序或iOS应用程序查看结果。除Cloudant外,还可以使用对象存储。这样做时,视频和图像元数据存储在Cloudant中,媒体文件存储在对象存储中。


相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
2月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
4月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
808 61
|
3月前
|
数据挖掘
服务器数据恢复——服务器异常断电造成raid5阵列故障的数据恢复案例
某服务器上有一组由12块硬盘组建的raid5磁盘阵列。 机房供电不稳定导致机房中该服务器非正常断电,重启服务器后管理员发现服务器无法正常使用。 意外断电可能会导致服务器上的raid模块损坏。
|
4月前
|
存储 数据挖掘
服务器数据恢复—EMC存储raid5阵列数据恢复案例
服务器存储数据恢复环境: EMC某型号存储中有一组由8块硬盘组建的raid5磁盘阵列。 服务器存储故障: raid5阵列中有2块硬盘离线,存储不可用,上层应用崩了。
|
4月前
|
数据挖掘 Linux
服务器数据恢复—服务器重装系统导致分区改变的数据恢复案例
服务器上有一组由raid卡组建的raid5磁盘阵列。上层安装linux才做系统,采用XFS文件系统,划分了3个分区。 管理员将服务器的操作系统重装后,发现服务器上的分区发生了改变:一个分区消失,其他分区不可访问。
|
4月前
|
存储 运维 数据挖掘
服务器数据恢复—EqualLogic存储硬盘出现坏道的数据恢复案例
一台EqualLogic某型号存储中有一组由16块SAS硬盘组建的RAID5阵列。上层采用VMFS文件系统,存放虚拟机文件,上层一共分了4个卷。 磁盘故障导致存储不可用,且设备已经过保。
|
5月前
|
存储 固态存储 文件存储
服务器数据恢复—NAS存储精简lv的故障的数据恢复案例
NAS数据恢复环境: QNAP TS-532X NAS设备中有两块1T的SSD固态硬盘和3块5T的机械硬盘。三块机械硬盘组建了一组RAID5阵列,两块固态硬盘组建RAID1阵列。划分了一个存储池,并通过精简LVM划分了7个lv。 NAS故障: 硬盘故障导致无法正常进入系统,7个lv分区丢失。
|
5月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
462 69
|
3月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
|
2月前
|
Oracle 安全 关系型数据库
服务器数据恢复—热备盘未成功激活导致raid崩溃的数据恢复案例
一台服务器中有5块硬盘,其中的4块组建了一组RAID5阵列,剩下一块盘作为热备盘(Hot-Spare)使用。服务器操作系统为linux,应用系统为构架于oracle数据库的一个oa。 raid5阵列中一块盘离线,但热备盘未自动激活rebuild。直到另外一块盘离线,RAID崩溃。 由于oracle已经不再对本案例中的oa系统提供后续支持,用户方要求尽可能恢复数据和操作系统。经过检测发现热备盘完全没有启用,硬盘无明显物理故障,无明显同步表现。

热门文章

最新文章