JiangBao
This guy is lazy and leaves nothing behind
什么是边缘计算
什么是云计算?
要理解边缘计算,首先要明白它的对立面:云计算。
云:是一种 IT 环境,可以抽象、汇集和共享整个网络中的 IT 资源。
云计算:把所有数据从设备(手机、传感器、摄像头等)通过网络传输到遥远的、集中式的云端数据中心进行处理和存储,然后再把结果传回来。
缺点:延迟高(反应慢)、带宽消耗大(传输视频等大量数据很费流量)、隐私性(所有数据都上传了)。
什么是边缘计算?
边缘:是网络边缘的计算位置,以及这些物理位置上的硬件和软件。
边缘计算:是在边缘设备上运行工作负载。
将计算、存储和分析能力从中心化的云端下沉到更靠近数据产生源头(设备)的地方。这个“地方”就是网络的“边缘”。
原本所有问题都要去“中央大脑”(云)解决,现在给各个地方配备了“本地小脑”(边缘节点),简单的问题就地解决,复杂的问题再上报给中央大脑。
边缘是云的一部分吗?
某种程度上是边缘设备可以是云的组成部分,如果这些设备在网络端点上提供的存储和计算能力经抽象、汇集并在网络中共享,那么本质上它们就成了更大的云基础架构的一部分。
但边缘计算不是云的一部分。边缘计算之所以能发挥巨大作用,是因为它有意地与云和云计算分离开来。
我们是这样理解这些概念的:
- 云是存储数据或运行应用的地方。它们是由数据中心或服务器场创建的软件定义的环境。
- 边缘也是收集数据的地方。它们是数据中心外部由硬件构成的物理环境。
- 云计算是一种在云中运行工作负载的行为。
- 边缘计算也是一种行为,是在边缘设备上运行工作负载。
边缘和边缘计算的区别是什么?
边缘(位置)和边缘计算(作用)不是一回事。在网络边缘收集数据,在几乎不修改它们(如果有)的情况下将它们传输至云端,这不是边缘计算,这只是联网。
但是,如果数据是在边缘收集并进行处理,那就是边缘计算。
边缘计算之所以与云分离,主要有两个原因:
- 时间敏感性。边缘计算需要近乎实时的决策速度,它无法接受在边缘设备收集数据、将它们原样传输至中央云,然后进行处理(决策被发送回边缘设备进行执行之前)期间经常出现的延迟。
- 数据量。边缘计算收集的数据量太大,无法原封不动地发送至云。
边缘计算的主要优势
- 低延迟:处理就在附近完成,响应速度极快。这对自动驾驶、在线游戏、工业自动化至关重要。
- 节省带宽: 原始数据(如高清视频流)可以在本地被处理,只上传有价值的结果(如“检测到有人闯入”),而不是全部原始数据。
- 高可靠性与隐私性: 即使网络断开,本地服务也能继续运行。敏感数据可以不用离开本地,提升了隐私安全性。
什么是边缘服务器?
- 定义:边缘服务器就是部署在网络边缘的、实现了边缘计算能力的物理或虚拟服务器。
- 位置:它可以是一个微数据中心(MEC)、一个基站、一个工厂的机房,甚至是一个商场里的机柜。
- 作用:它是边缘计算的承载平台,负责接收、处理和分析来自其覆盖区域内终端设备的数据。
简单比喻:
- 云计算 = 中央总仓库(所有货物都运到这里分发,路程远,速度慢)
- 边缘计算 = 各个社区的便利店(常用商品就近购买,速度快,方便)
- 边缘服务器 = 便利店的仓库和收银系统(实现了便利店功能的基础设施)
Node.js 如何实现边缘计算
Node.js 因其独特的特性,成为了实现边缘计算的绝佳选择。
为什么 Node.js 适合边缘计算?
- 异步和非阻塞I/O:边缘服务器需要处理大量并发的设备连接和I/O操作(如网络请求、传感器数据读取)。Node.js的异步模型可以高效地处理这些任务,而不会因为等待某个操作(如数据库查询)而阻塞整个进程。
- 轻量和高效:相比一些传统的企业级框架(如Java Spring),Node.js运行时和应用本身都非常轻量,适合在资源受限的边缘服务器环境中运行。
- 快速的开发迭代:使用JavaScript和丰富的npm生态,可以快速开发和部署边缘逻辑。
- 事件驱动:非常适合处理来自物联网(IoT)设备的连续事件流数据。
如何用 Node.js 实现边缘计算(实践场景)
假设一个智能工厂的场景:边缘服务器需要实时分析摄像头视频,检测产品缺陷。
[高清摄像头] ----(原始视频流)----> [边缘服务器 (运行Node.js应用)] ----(仅缺陷警报)----> [云端数据中心]
|
|---(本地处理和分析)
|---(实时响应:控制机械臂剔除次品)