边缘计算在物联网(IoT)当中的运用「物联网架构探索系列」

这里记录的是我对物联网架构的学习、探索和思考,但愿对你有所启发……html

  边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,知足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。目前,许多科技企业已经在边缘计算上开始本身的布局。git

  将来,咱们会看到愈来愈多的像智慧城市、智能工厂、智能制造、智能零售等一系列创新商业模式,它们在运用物联网技术的过程当中,须要用到数据采集、处理、上传数据的边缘端计算设备和网关设备。这些设备或者是相应的解决方案,配合分布式数据库和分布式的数据处理,就构成一个完整的边缘计算体系。但这个体系不是独立存在的,它会跟云计算产生很是多的数据和应用互动github

边缘计算简单架构图

  提到边缘计算,咱们会联想到秒杀时候,使用CDN进行负载分流;可能也会联想到数据中心和分布式服务器;或者想到数据中心和设备采集网关;或者想到华为AI神经网络芯片、离线地图,离线语音识别;或者自动驾驶,电动汽车等等……数据库

  这边不深刻考究边缘计算的概念,具体能够查看维基百科百度百科设计模式

  边缘计算的架构图很简单,以下图所示(图片来源):缓存

  

为何须要边缘计算?

  也许你会第一反应是中心计算力不足,网络延迟,数据量庞大,这些都是常见的因素……安全

  

数据上涨

  随着芯片计算力的发展、硬件成本的下降,加上网路提速,大概每十年一次变革,数据呈现指数级的增加。也许在2020-2030年,经过5G和AI的变革,计算机正在吞噬一切能够数字化的东西,那时候数据的增加不知道会是什么恐怖级别?服务器

  

  显然,这个时候的数据中心,已然没法承担集中式带来的各自延迟,缓慢,痛苦……网络

成本上涨

  为何边缘计算还能节省成本?架构

  

  • 几十万用户的公司,只须要处理百级 QPS 的量,只须要 10 台左右的服务器;
  • 上百万用户的公司,只须要处理千级 QPS 的量,须要有 50 台左右的服务器;
  • 上千万用户的公司,须要处理万级到十万级 QPS 的量,须要 700 台左右的服务器;
  • 上亿用户的公司,其须要处理百万级 QPS 的量,须要上万台的服务器。

  以上数据不是彻底标准的,可是能够肯定的是像BAT,TMD这些大厂的服务器都是以万计算的。

  如上图所示,十万用户到上亿用户,用户量也就多 100 倍,为何服务器须要1000倍?由于,当架构变复杂了后,你就要作不少非功能的东西了,好比,缓存、队列、服务发现、网关、自动化运维、监控等……

  若是咱们可以把那上亿的用户拆成 100 个百万级的用户,那么只须要 5000 多台机器。

分担计算

  海量数据则可以就近处理,大量的设备也能实现高效协同的工做,诸多问题迎刃而解。所以,边缘计算理论上可知足许多行业在敏捷性、实时性、数据优化、应用智能、以及安全与隐私保护等方面的关键需求。

  这里举个简单的应用,假如一个项目有5万个设备点,每隔5分钟一次采集,那么一年后的测点数据可能就是100G量级。对这些数据的统计就会是一个耗时耗力的事情。

  

边缘计算应用场景

  既然边缘计算是一种必然,那么边缘计算会应用在哪些场景呢?我以为至少如下这些场景会用到:

  • 处理一些实时响应的业务。它和用户靠得很近,因此其能够实时响应用户的一些本地请求,好比,某公司的人脸门禁系统、共享单车的开锁。
  • 收集并结构化数据。好比,把视频中的车牌信息抠出来,转成文字,传回数据中心。咱们知道大华,海康等主流摄像头设备自己自带车牌识别等功能就是一个典型的应用
  • 实时设备监控。主要是线下设备的数据采集和监控。好比,设备告警、设备联动、设备管理、设备统计等
  • P2P 的一些去中心化的应用。好比:边缘结点做为一个服务发现的服务器,可让本地设备之间进行 P2P 通信。 
  • ……

 

  边缘计算的运用场景仍是十分丰富的,还有不少是咱们所想象不到的,咱们正在期待神经网络芯片助力AI智能,将来的设备必然会更增强大,更加边缘化。

边缘计算的技术?

  边缘计算涉及到的技术包括方方面面,这里截取要点分析。

API网关

   

  API Gateway至关于一个门卫的角色,和设计模式的Facade(门面模式)很像,是系统的惟一入口。网关能够是一台服务器,也能够是一个比较强大的设备。

  网关还能够进行往下分层级,像众星拱月同样,最后经过一个大的门卫做为惟一的入口。这种星型的网关架构能够控制每一个子网关或者叫子边缘计算的粒度。固然这种架构也带来更大的复杂度。

  

  一个网关通常包含如下这些组件:服务注册,请求路由,负载均衡,弹力设计,安全管控。此外网关对性能、集群和高可用也是须要考虑的一个要点,对于初创中的团队,这些其实能够放在最后去考虑,后续业务起来后依然是一个必须考虑的重点,好比单点故障致使的全部访问瘫痪,性能低下致使的请求延迟,或者没有使用异步机制致使的吞吐量低下等等……

服务函数化(Serverless)

  传统的作法,咱们都须要在服务器上持续运行进程以等待 HTTP 请求或 API 调用,而Serverless能够经过某种事件机制触发代码的执行。

  "若是说微服务是以专一于单一责任与功能的小型功能块为基础,利用模块化的方式组合出复杂的大型应用程序,那么咱们还能够进一步认为 Serverless 架构能够提供一种更加 " 代码碎片化 " 的软件架构范式,咱们称之为 Function as a Services(FaaS)。所谓的 " 函数 "(Function)提供的是相比微服务更加细小的程序单元。"——左耳朵耗子

  不一样于微服务的是函数化更加碎片,并且无需进程等待,这是他的杀手锏。最后推荐两个GO语言的开源框架

数据同步

  边缘和中心的关系千丝万缕,就物联网来讲,中心须要的数据是什么呢?大部分是决策数据,也就是那些官老爷要看的数据,至于设备何时告警,何时出故障等等数据不必定要实时或者所有同步到中心,也就是说你的数据延迟一段时间并不妨碍,甚至隔天都问题不大。

  若是要同步,通常如何作?

  • 经过消息队列写时复制(Wirte And Copy),这种方式实时性高,有很好的削峰填谷。
  • 经过DB层面发布订阅进行数据同步,这种同步是日志级别的,性能有保障,可是调式有坑,不建议使用。

  我所了解的建筑智能化设备设施这个行业,边缘设备只要不是闹人命的故障,好比电梯故障,火灾报警什么的,大部分的业务其实都和钱和安全没有多大关系,也就是对高可靠的依赖是很是弱的。固然不排除医院或者机场等特殊状况。

 总结

   本文主要探讨了物联网领域的边缘计算这个概念和简单架构图,接着简单介绍为何须要边缘计算以及边缘计算的使用场景和关键技术。边缘计算和物联网一块儿兴起,还有不少未知等待探索,一块儿行动吧……

引用连接:

相关文章
相关标签/搜索