在物联网领域,复杂性往往并非在于传感器,真正的复杂性在于各种传感器产生的大量数据,以及对这些数据的处理,所以开发者不得不花费大量的时间去构建和维护后端服务器来处理这样一个庞大的数据流。而在今天这个敏捷、快速迭代,对业务创新周期要求越来越短的时代,这无疑是难以接受的。本文我们将通过一个简单的物联网场景,基于函数工作流(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数据的更多相关文章

  1. 理解serverless无服务架构原理(一)

    阅读目录 一:什么是serverless无服务? 二:与传统模式架构区别? 三:serverless优缺点? 四:使用serverless的应用场景有哪些? 回到顶部 一:什么是serverless无 ...

  2. 利用 AWS 无服务架构之语音合成

    目录 一.架构图 二.服务部署 2.1.创建 DynamoDB 表 2.2.创建 S3 2.2.1 静态网页存储桶 2.2.2.音频存储桶 2.3.创建 SNS Topic 2.4.为 Lambda ...

  3. Serverless无服务器架构详解

    本文对Serverless架构的基础概念.具体产品.应用场景.工作原理进行详细解析. 基础概念 Serverless: 无服务器架构,即在无需管理服务器等底层资源的情况下完成应用的开发和运行,是云原生 ...

  4. 无服务器架构(Faas/Serverless)

    摘要无服务器架构(Faas/Serverless),是软件架构领域的热门话题. AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serv ...

  5. 5分钟构建无服务图片鉴黄web应用(基于FunctionGraph)

    函数工作流(FunctionGraph,FGS)是一项基于事件驱动的函数托管计算服务,托管函数具备以毫秒级弹性伸缩.免运维.高可靠的方式运行.即使在一些复杂的web应用场景中,函数工作流也能发挥出令人 ...

  6. Java高可用集群架构与微服务架构简单分析

    序 可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经"过时"高可用集群架构? 本人工作上大部分团队都是7-15人编 ...

  7. Net分布式系统之五:微服务架构

    因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...

  8. SpringCloud(一):微服务架构概述

    1-1.  系统进化理论概述 在系统架构与设计的实践中,经历了两个阶段,一个阶段是早些年常见的集中式系统,一个阶段是近年来流行的分布式系统: 集中式系统: 集中式系统也叫单体应用,就是把所有的程序.功 ...

  9. 微服务架构攀登之路(二)之RPC

    1. RPC 简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编 ...

随机推荐

  1. Go By Example-值类型

    Go By Example-值类型 Go语言的数据类型可以分为值类型和引用类型,这里先说值类型. 值类型 值类型:在Go语言中int.float.bool和string这些类型都属于值类型,使用这些类 ...

  2. 常见的可以写入VIM配置文件中的设置参数

    常见的可以写入.vimrc文件中的设置参数 设置参数 含义 :set nu :set nonu 设置与取消行号 :syn on :syn off 是否依据语法显示相关的颜色帮助,在VIM修改相关的配置 ...

  3. 服务器(Linux)上运行python总结

    跑实验换了几次服务器了,每次遇到相似问题都要重新百度,而且每次百度搜索出的顺序都不一样,又得重新找半天,这次把遇到的问题都总结一下. 1.准备 PuTTY和FileZilla FileZilla使用F ...

  4. legend3---16、网站的安全性问题

    legend3---16.网站的安全性问题 一.总结 一句话总结: 通过客户端传递参数的方式也是有些危险,需要注意 单纯的获取数据的方法还好,但是 修改数据库方法一定要同时做前后端验证 1.php的b ...

  5. MAC将根目录文件夹的权限赋给用户

    https://my.oschina.net/liujiest/blog/762004 1.sudu -i进入root模式(需输入密码) 2.chown -R 用户名 /文件夹名 sudo -i Pa ...

  6. 治理Go模块 服务治理 中台业务 Golang的net.Conn接口,double close

    小结: 1.中台业务 前台业务 快车.专车.顺风车,在滴滴这些业务线叫做前台服务,他们有一些共同的特性,都有司机信息,订单的状态,收银,账号等等这些业务逻辑,我们会把专门的业务逻辑集合起来,形成专职的 ...

  7. php接口数据安全解决方案(一)

    前言 目录介绍 登录鉴权图 接口请求安全性校验整体流程图 代码展示 演示用户登录 演示获取用户信息 文章完整代码地址 后记 前言 目的: 1.实现前后端代码分离,分布式部署 2.利用token替代se ...

  8. Qt编写控件属性设计器3-拉伸控件

    一.前言 插件控件加载了,拖曳控件也实现了,接下来就是一个最难点了,跟QtDesigner或者其他开发环境一样,能够任意自由的拉伸控件大小,移动位置,为了这个功能,还特别编写了一个控件来实现这个功能, ...

  9. Dubbo -- 关于 api接口调用不使用强依赖

    首先,我们都知道  Dubbo 调用api 需要提供暴露  接口,   消费端才通过 ZK 可以调用 通常我们都会使用 提供 api  jar包 的方式 使用  这样既方便又快捷 简单 只需要在spr ...

  10. Jmeter与BlazeMeter使用 录制导出jmx

    本文链接:https://blog.csdn.net/weixin_38250126/article/details/82629876JMeter 的脚本录制,除了自带的HTTP代理服务器以外,被大家 ...