无服务架构在IOT的应用场景——使用函数工作流处理DIS数据
在物联网领域,复杂性往往并非在于传感器,真正的复杂性在于各种传感器产生的大量数据,以及对这些数据的处理,所以开发者不得不花费大量的时间去构建和维护后端服务器来处理这样一个庞大的数据流。而在今天这个敏捷、快速迭代,对业务创新周期要求越来越短的时代,这无疑是难以接受的。本文我们将通过一个简单的物联网场景,基于函数工作流(FunctionGraph,FGS)来介绍一下无服务(Serverless)在物联网领域的应用。
函数工作流是一项基于事件驱动的函数托管计算服务,托管函数具备以毫秒级弹性伸缩、免运维、高可靠的方式运行。通过函数工作流,开发者无需配置和管理服务器,只需关注业务逻辑,编写函数代码,以无服务器的方式构建应用,便能开发出一个弹性高可用的后端系统,并按实际运行消耗的资源计费。极大地提高了开发和运维效率,减小了运作成本。
现在我们假设一种场景:对IOT的实时数据进行处理(比如格式转换),并进行转储。那么我们可以使用菊厂的数据接入服务(DIS)采集IOT实时数据流,然后通过函数工作流(FunctionGraph)对采集到的数据进行实时的处理(比如格式转换),并存储到表格存储服务(CloudTable Service)中。架构图如下:
对于开发者来说,完全只需要关注函数工作流中函数的内容,即接收到DIS的数据流后对数据处理的业务逻辑(转换格式和存储),无需关注服务器,且整个系统的运行是弹性伸缩,按需计费的。开发者可以在函数工作流创建一个函数,编写代码,实现对数据的格式转换和向CloudTable的存储,然后为函数创建一个DIS触发器,对接DIS服务,通过事件触发的方式,我们的函数就会实时地去处理DIS中采集的IOT数据了,以此构建出一个无服务的IOT系统。
实现流程
1. 搭建用户私有的存储集群。进入虚拟私有云服务,创建虚拟私有云;进入表格存储服务,创建集群。
2. 创建函数,实现格式转换和存储的业务逻辑。进入函数工作流服务,创建函数,我们提供了一份Java语言的Demo供大家参考学习:源码和程序包(包含函数依赖)。
3. 配置DIS事件,测试函数,处理数据。
4. 创建DIS触发器,对接DIS服务。
总结:
通过基于函数工作流的无服务架构和传统架构的对比,我们可以看到其具有如下优点:
1. 无需关注任何服务器,只需关注核心业务逻辑;
2. 函数运行随业务量弹性伸缩,按需付费,执行才计费,低成本;
3. 事件触发,灵活易扩展;
4. 可以通过简单的配置连通函数工作流和其它云服务,比如本例中只需创建一个DIS触发器便可完成数据接入服务和函数工作流的连接,然后在函数中将数据存储到CloudTable,那么函数就像一个粘合剂一样将两个云服务连接在一起。
无服务架构在IOT的应用场景——使用函数工作流处理DIS数据的更多相关文章
- 理解serverless无服务架构原理(一)
阅读目录 一:什么是serverless无服务? 二:与传统模式架构区别? 三:serverless优缺点? 四:使用serverless的应用场景有哪些? 回到顶部 一:什么是serverless无 ...
- 利用 AWS 无服务架构之语音合成
目录 一.架构图 二.服务部署 2.1.创建 DynamoDB 表 2.2.创建 S3 2.2.1 静态网页存储桶 2.2.2.音频存储桶 2.3.创建 SNS Topic 2.4.为 Lambda ...
- Serverless无服务器架构详解
本文对Serverless架构的基础概念.具体产品.应用场景.工作原理进行详细解析. 基础概念 Serverless: 无服务器架构,即在无需管理服务器等底层资源的情况下完成应用的开发和运行,是云原生 ...
- 无服务器架构(Faas/Serverless)
摘要无服务器架构(Faas/Serverless),是软件架构领域的热门话题. AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serv ...
- 5分钟构建无服务图片鉴黄web应用(基于FunctionGraph)
函数工作流(FunctionGraph,FGS)是一项基于事件驱动的函数托管计算服务,托管函数具备以毫秒级弹性伸缩.免运维.高可靠的方式运行.即使在一些复杂的web应用场景中,函数工作流也能发挥出令人 ...
- Java高可用集群架构与微服务架构简单分析
序 可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经"过时"高可用集群架构? 本人工作上大部分团队都是7-15人编 ...
- Net分布式系统之五:微服务架构
因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...
- SpringCloud(一):微服务架构概述
1-1. 系统进化理论概述 在系统架构与设计的实践中,经历了两个阶段,一个阶段是早些年常见的集中式系统,一个阶段是近年来流行的分布式系统: 集中式系统: 集中式系统也叫单体应用,就是把所有的程序.功 ...
- 微服务架构攀登之路(二)之RPC
1. RPC 简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编 ...
随机推荐
- Sollin算法的C++实现 BY gremount
Sollin算法可以看作是Kruskal算法和Prim算法的综合 基本思想是: 1. 从所有节点都孤立的森林开始,通过合并树来得到最小生成树 2. 每次合并树的边都是用最小权重的割边 程序具体实现思路 ...
- js type
js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型. new Object() functionundefined ...
- RK3399 focaltech敦泰触摸屏移植调试
CPU:RK3399 系统:Android 7.1 IC:FT5406 focaltech(敦泰)触摸屏也是比较常用的,但是相对汇顶,就比较少用 RK的源码中虽然有 focaltech 的代码,但没有 ...
- group by 分组去重查询
数据库中的数据是这样的: 想要看看有几种类型,可以用group by: select * from activiti.act_ru_task where PROC_INST_ID_ in (selec ...
- 贝济埃曲线quadTo与传统的手势轨迹平滑度对比分析
package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.Canvas ...
- main方法的详解
格式 * public static void main(String[] args) {} 针对格式的解释 public 被jvm调用,访问权限足够大. static 被jvm调用,不用创建对象,直 ...
- 服务器(三):利用github的webhooks实现自动部署
实现自动部署的关键就是利用github的webhooks,我们在github建立一个项目之后,在项目主页点击Settings,看到Webhooks点击打开可以添加一个链接,这里的意思是,github可 ...
- Python3 中codecs进行文件的读取
简单的概念与说明 编码(动词):按照某种规则(这个规则称为:编码(名词))将"文本"转换为"字节流".而在python 3中则表示:unicode变成str 解 ...
- ALV 颜色设置(行,列,单元格)
[转自:https://www.cnblogs.com/mingdashu/p/color_alv.html] BCALV_EDIT_03 http://blog.sina.com.cn/s/blog ...
- 简介Python设计模式中的代理模式与模板方法模式编程
简介Python设计模式中的代理模式与模板方法模式编程 这篇文章主要介绍了Python设计模式中的代理模式与模板方法模式编程,文中举了两个简单的代码片段来说明,需要的朋友可以参考下 代理模式 Prox ...