「首席架构师看无服务器」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中,媒体文件存储在对象存储中。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
Oracle 关系型数据库 数据库
服务器数据恢复—服务器raid5阵列数据恢复案例
一台服务器上的8块硬盘组建了一组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯显示异常报警。服务器操作系统无法启动,ORACLE数据库也无法启动。
62 17
|
1月前
|
运维 数据挖掘 Windows
服务器数据恢复—服务器硬盘指示灯亮黄灯的数据恢复案例
服务器硬盘指示灯闪烁黄灯是一种警示,意味着服务器硬盘出现故障即将下线。发现这种情况建议及时更换硬盘。 一旦服务器上有大量数据频繁读写,硬盘指示灯会快速闪烁。服务器上某个硬盘的指示灯只有黄灯亮着,而其他颜色的灯没有亮的话,通常表示这块硬盘出现故障,这时候更换新硬盘同步数据即可。 如果没有及时发现硬盘损坏或者更换硬盘失败导致服务器崩溃,应该如何恢复数据呢?下面通过一个真实案例讲解一下服务器硬盘指示灯亮黄色的数据恢复案例。
|
16天前
|
弹性计算 负载均衡 Java
【上云基础系列 02-01】通过SLB+1台ECS+ESS弹性伸缩,搭建一个精简版的上云标准弹性架构(含方案及教程)
通常,构建一个弹性架构(即使是一个最基础的入门版),至少需要2台ECS。但是,很多小微企业刚开始上云的时候,为了节省成本不愿意购买更多的服务器。通过 “ALB+ESS弹性伸缩+1台ECS+RDS”方案,在保障低成本的同时,也不牺牲业务架构的弹性设计,更避免了很多人因为节省成本选择了单体架构后频繁改造架构的困局。 方案中的几个设计非常值得小微企业借鉴:(1)通过ALB/RDS的按量付费,节省了初期流量不大时的费用;(2)通过ESS弹性伸缩,不需要提前购买服务器资源,但是当业务增长或减少时却保持了资源弹性自动扩缩容。
|
17天前
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
55 25
|
1天前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
16天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
1月前
|
数据挖掘 数据库
服务器数据恢复—Zfs文件系统下误删除数据的恢复案例
服务器数据恢复环境&故障: 一台zfs文件系统的服务器,管理员误操作删除了服务器上的数据。
|
1月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
183 10
|
1月前
|
存储 数据挖掘 数据库
服务器数据恢复—EMC UNITY 400存储卷被误删除的数据恢复案例
EMC Unity 400存储连接了2台硬盘柜。2台硬盘柜上一共有21块硬盘(520字节)。21块盘组建了2组RAID6:一组有11块硬盘,一组有10块硬盘。 在存储运行过程中,管理员误操作删除了 2组POOL上的部分数据卷。
|
1月前
|
存储 算法 数据挖掘
服务器数据恢复—nas中raid6阵列失效,存储无法访问的数据恢复案例
一台nas上共有14块硬盘组建了一组raid6磁盘阵列。 该nas在工作过程中,raid6阵列中硬盘出现故障离线,导致raid6阵列失效,nas无法正常访问。

热门文章

最新文章