1、背景
随着互联网的发展,我们进入了大数据时代,这个时代也是移动互联网的时代,而且这个时代,大量的线下服务走到线上,随之而来的,比如外卖、叫车……于是,有各种各样的 App 和设备在收集你的行为和数据。更加海量的数据源源不断的产生,并上传到云平台。
这就给云提出了很大的挑战。一方面是极大地消耗有限的网络带宽资源;另一方面对于大数据处理的实时需求越来越成为刚需了,因为,如果不能实时处理、实时响应,那么怎么能跟得上这个快速的时代呢。这就好像一个人脸识别的功能。如果苹果手机的人脸识别需要到服务器上算,然后把结果返回,那么用户的体验就很糟糕了。这就是为什么苹果在手机里直接植入了神经网络的芯片,而我们知道网络的不确定因素很多,有可能导致不可控的延时。
而且数据通常与物理实体关系密切。比如家庭监控摄像头中,家庭成员的肖像等视频信息是非常敏感的;而在工业场景中,很多数据是机密的。如果这些信息全部上传到云,会给用户带来很大的安全风险。
所以,现在行业内已经开始尝试将云的部分计算服务,下沉到靠近数据发生地的“边缘节点”上进行,这就是边缘计算的由来。
Akamai和IBM最早于2002年5月提出了边缘计算解决方案,虽说仅仅是为了使Web应用程序能够在网络边缘执行,但实际上与现在物联网和云计算领域的边缘计算也是一脉相承的。
狭义上来讲,边缘计算是物理上接近于事物,数据和行动源头处的相对于云计算而言的计算,又称近计算或者接近计算(Proximity Computing)。云计算相当于大脑,边缘计算相当于身体各处的神经元。
2015年,卡内基梅隆大学、华为、英特尔等发起成立的OpenEdgeComputing.org(开放边缘计算联盟),对边缘计算架构的定义如下:边缘计算提供了与用户非常接近的小型数据中心(边缘节点)。它通过与计算和存储资源的低延迟交互,仅距离用户一跳即可显着改善客户体验。
而边缘计算产业联盟(Edge Computing Consortium,简称ECC),对边缘计算的定义如下:边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台,就近提供边缘智能服务,满足行业数字化在敏捷联接、实时业务、数据优化、应用智能、安全与隐私保护等方面的关键需求。它可以作为联接物理和数字世界的桥梁,使能智能资产、智能网关、智能系统和智能服务。
2、边缘计算的优势
怎么理解这种技术架构上的进化呢?你可以想一想,人体是如何处理各种感知信息的,是不是所有的信息都需要大脑来处理呢?
大家都熟悉云计算,它有着许多的特点:有着庞大的计算能力,海量存储能力,通过不同的软件工具,可以构建多种应用,我们在使用的许多 APP ,本质上都是依赖各种各样的云计算技术,比如视频直播,电子商务。边缘计算脱胎于云计算,靠近设备侧,具备快速反应能力,但不能应付大量计算及存储的场景。这两者之间的关系,可以用我们身体的神经系统来解释。
云计算能够处理大量信息,并可以存储短长期的数据,这一点非常类似于我们的大脑。大脑是中枢神经中最大和最复杂的结构,也是最高部位,是调节机体功能的器官,也是意识、精神、语言、学习、记忆和智能等高级神经活动的物质基础。人类大脑的灰质层,富含着数以亿计的神经细胞,构成了智能的基础。而具有灰质层的并不只有大脑,人类的脊髓也含有灰质层,并具有简单中枢神经系统,能够负责来自四肢和躯干的反射动作,及传送脑与外周之间的神经信息。我们在初中的生物中都学习到了膝跳反应,这就是脊髓反应能力的证据。
边缘计算对于云计算,就好比脊髓对于大脑,边缘计算反应速度快,无需云计算支持,但低智能程度较低,不能够适应复杂信息的处理。而云计算负责需要大规模数据和复杂计算的数据分析工作,以及完成整体的协调和控制。
具体来说,将原有的云计算模型的部分计算任务迁移到网络边缘设备来;网络边缘设备(比如路由器、移动网络基站等),在数据源附近执行数据处理和数据分析任务。这样一来,就降低了云计算中心的计算负载,减轻海量数据了对于网络带宽的压力,提高了数据处理的效率。
这里将边缘计算模型的好处,总结为四个方面:
- 延迟低。数据只需要从产生设备传输到边缘设备,传输距离短,数据不需要通过其他网络,网络延迟低。
- 节约了主干网带宽。缓解大量数据传输所造成的网络拥堵想象。尤其像一些银行的专有网络,本身带宽非常有限,只能用于传输关键性的数据。
- 计算可用性好。数据在网络中的路径长度显著变短,因网络波动引起的计算服务不可用情况将有所减少。
- 隐私性更好。由于边缘设备距离用户近,用户的隐私数据不再需要上传到云,因此,在边缘计算场景下,用户的隐私也可以得到更好的保护。
- 中心云的成本更低。
我们再来看看云的成本,当一个公司需要支持几十万用户的时候,并没有什么感觉。当他们要支撑上千万乃至上亿用户的时候,我们就会发现,一个几十万用户的系统架构和一个支撑上千万用户的架构,在成本上来说,完全不是一个数量级的。
在这个图中,我们可以看到,当需要处理的数据或是用户请求的规模越来越大时,我们的成本是呈现快速上升的曲线,而不是一个线性上升的成本关系。我们可以来算一下,根据行业内的经验,可以估计如下的投入:
- 几十万用户的公司,只需要处理百级 TPS 的量,只需要 10 台左右的服务器;
- 上百万用户的公司,只需要处理千级 TPS 的量,需要有 50 台左右的服务器;
- 上千万用户的公司,需要处理万级到十万级 TPS 的量,需要 700 台左右的服务器;
- 上亿用户的公司,其需要处理百万级 TPS 的量,需要上万台的服务器。
可以看到,十万用户到上亿用户,也就多了 100 倍,为什么服务器需要 1000 倍?这完全不是呈线性的关系。
这时因为,当架构变复杂了后,你就要做很多非功能的东西了,比如,缓存、队列、服务发现、网关、自动化运维、监控等。
那么,我们不妨开个脑洞。如果我们能够把那上亿的用户拆成 100 个百万级的用户,那么只需要 5000 多台机器(100 个 50 台服务器的数据中心)。
我们还是同样服务了这么多的用户,但我们的成本下降得很快。只不过,我们需要运维 100 个小数据中心。不过,相信我,运维 100 个 50 台服务器的小数据中心的难度应该远远低于运维一个 10000 台服务器的数据中心。
好了,问题来了,什么样的业务可以这么做?我觉得有地域性的业务是可以这么做的,比如:外卖、叫车、共享单车之类的。
然而,100 个 50 台服务器的小数据中心也会带来一些复杂的问题,因为当你的公司有 100 万用户的时候的业务形态和有 1 亿用户的业务形态是完全不一样的,1 亿用户的业务形态可能会复杂得多得多。也就是说,我们不可能在一个小数据中心只有 50 台服务器,因为那是百万用户的业务形态,只有几十个服务。当公司成长到上亿用户的规模时,可能会有上百个服务,50 台服务器是不够部署的。
所以,上面那种多个数据中心的理想只存在于理论上,而实际上不会发生。但是,我们依然可以沿着这条路思考下去。我们不难发现,我们完全可以用边缘节点处理高峰流量,这样,我们的数据中心就不需要花那么大的成本来建设了。于是,还是到了边缘计算。
3、边缘计算的逻辑架构
由下图可知,逻辑架构侧重边缘计算系统云、边、端各部分之间的交互和协同,包括云、边协同,边、端协同和云、边、端协同3个部分。
- 云、边协同:通过云部分Kubernetes的控制节点和边部分KubeEdge所运行的节点共同实现。
- 边、端协同:通过边部分KubeEdge和端部分EdgeX Foundry共同实现。
- 云、边、端协同:通过云解决方案Kubernetes的控制节点、边缘解决方案KubeEdge和端解决方案EdgeX Foundry共同实现。
云、边协同的具体实现如下图所示:
- Kubernetes控制节点沿用云部分原有的数据模型,保持原有的控制、数据流程不变,即KubeEdge所运行的节点在Kubernetes上呈现出来的是一个普通节点。Kubernetes可以像管理普通节点一样管理KubeEdge所运行的节点。
- KubeEdge之所以能够运行在资源受限、网络质量不可控的边缘节点上,是因为KubeEdge在Kubernetes控制节点的基础上通过云部分的CloudCore和边缘部分的EdgeCore实现了对Kubernetes云计算编排容器化应用的下沉。
- 云部分的CloudCore负责监听Kubernetes控制节点的指令和事件下发到边缘部分EdgeCore,同时将边缘部分的EdgeCore上报的状态信息和事件信息提交给Kubernetes的控制节点;边缘部分的EdgeCore负责接收云部分CloudCore的指令和事件信息,并执行相关指令和维护边缘负载,同时将边缘部分的状态信息和事件信息上报给云部分的CloudCore。
除此之外,EdgeCore是在Kubelet组件基础上裁剪、定制而成的,即将Kubelet在边缘上用不到的富功能进行裁剪,针对边缘部分资源受限、网络质量不佳的现状在Kubelet的基础上增加了离线计算功能,使EdgeCore能够很好地适应边缘环境。
云边端协同如下图所示:
- KubeEdge作为运行在边缘节点的管理程序,负责管理在边缘节点上应用负载的资源、运行状态和故障等。在一些的边缘计算系统中,KubeEdge为EdgeX Foundry服务提供所需的计算资源,同时负责管理EdgeX Foundry端服务的整个生命周期。
- EdgeX Foundry是由KubeEdge管理的一套IoT SaaS平台。该平台以微服务的形式管理多种物联网终端设备。同时,EdgeX Foundry可以通过所管理的微服务采集、过滤、存储和挖掘- -多种物联网终端设备的数据,也可以通过所管理的微服务向多种物联网终端设备下发指令来对终端设备进行控制。
KubeEdge的解决方案由MQTT代理和对接支持各种协议设备的服务组成。
4、边缘计算的业务场景
- 处理一些实时响应的业务。它和用户靠得很近,所以可以实时响应用户的一些本地请求,比如,某公司的人脸门禁系统、共享单车的开锁。
- 处理一些简单的业务逻辑。比如像秒杀、抢红包这样的业务场景。
- 收集并结构化数据。比如,把视频中的车牌信息抠出来,转成文字,传回数据中心。
- 实时设备监控。主要是线下设备的数据采集和监控。
- P2P 的一些去中心化的应用。比如:边缘结点作为一个服务发现的服务器,可以让本地设备之间进行 P2P 通讯。
- 云资源调度。边缘结点非常适合用来做云端服务的调度。比如,允许用户使用不同生产商的云存储服务,使用不同生产商但是功能相同的 API 服务(比如支付 API 相关)。因为是流量接入方,所以可以调度流量。
- 云资源聚合。比如,我们可以把语音转文字的 API 和语义识别的 API 相结合,聚合出来一个识别语音语义的 API,从而简化开发人员的开发成本。
- 最新的AIGC能力,在边缘去部署小模型或者算法,来实现边缘化处理。
5、边缘计算的思考
- 早已有之,新葫装旧酒,炒炒新概念:以前的 CS,后来的 BS,再后来的云和 APP,就是某种意义的边缘计算。服务端和终端各自承担一部分算力。过去的 CDN,现在的 VCDN 服务也是一种中心云计算能力下层到边缘节点能力的一种体现。这几年普遍存在的在家用路由器运行容器搭梯子翻墙,也算明显的云边协同。离开了网络离开了应用提供商,现在的电脑手机几乎没啥用,其实 PC,手机,智能路由,小米的智能家电就是边缘设备。只不过现在的边缘计算更多的是云计算出现后的概念,是相对于中心云的一种概念,云+边+端的概念,中心云有 Openstack,Kubernets 或自研平台,边缘云也采用专有边缘设备和边缘开源平台。中心云原生能力往边缘的下沉。
-异构计算迎来大发展:FPGA 相对 ASIC 具有灵活编程的特点,相对于 CPU 以流水线运算周期为运算时间单位,FPGA 以时钟频率为运算时间单位 FPGA 有低时延专业性方向性强的特点,符合边缘计算的需求而大量应用在边缘迎来大发展。以 GPU,ARM,TPU 等大量应用在边缘在边缘计算上也会迎来大发展。 - serverless 会大量应用在边缘。
- 国内厂商中,阿里,华为等在边缘计算上有一定优势。
1)阿里的芯片设计的积累和优势,docker 的合作,以及在容器领域的开源项目之多,公有云市场优势,边缘计算和公有云联系紧密。
2)华为芯片设计的积累和优势。
3)UCloud整个东南亚地区资源丰富,而且成本较低
4)CDN服务厂商如网宿提供全球的边缘计算资源 - 边缘设备更多的服务 toB 业务
1)视频监控
2)智能制造,公共场所(办公,商场,交通,城市)
3)AI(图像视频识别,自动驾驶)
4)个人继续用手机为智能终端连接到中心云和边缘云服务 - 边缘设备小型化和成本是主要考虑对象,所以以机架,服务器形式只能用在重资产的地方,以集成进 5G 基站,路由器,小型定制设备(类似工控机)的轻资产数量居多。
6、AKamai-linode产品分析
Linode是一家成立于2003年的老牌云服务器提供商,总部位于美国。他们的云服务器稳定、安全,具有在线率高。相对而言,Linode的服务器更适合外贸和国内的出海项目。
Linode总部位于美国,提供一些先进的托管解决方案,包括计算,存储,数据库,托管服务,开发人员工具等,可以为从小型静态网站到高级的机器学习的AI提供任何服务。
- 网络原来没有VPC的概念,但是目前版本已有VPC。
首先,Linode正在不断扩大其服务范围,它目前在5个地区有数据中心(北美、欧洲、亚洲、南亚和大洋洲)有11个服务器地点。它应该根据你的受众的位置进一步提高网站性能。
- 边缘计算区域缺乏GPU算力资源
linode的另一个优势是有一键式的市场应用和托管服务策略,其他边缘云服务商缺乏该类业务,而且linode并非强绑定性,其都为与第三方厂商的合作。
linode对比AWS有更低的价格
除雅加达和圣保罗,其他地区的价格都是统一的,而且整体的机型上其流量优势更大,如果客户每个月在云资源上的支付成本中流量是大头,但是又并无使用高级的PAAS和SAAS服务,linode能省很大一笔成本。但是其在东南亚地区对比Ucloud的竞争力有限,如果客户是中计算资源的客户,UC有更高的性价比,如果不考虑海外合规风险。
- 灵活的API操作能力
Linode具有令人难以置信的灵活的API,允许你用容易定制的代码控制你的云服务器的几乎每个方面。你可以安装Linode官方支持的编程库和客户端,其中包括Python、JavaScript和GO客户端,或者利用社区制作的工具。
如果你喜欢直接通过命令行工作,Linode还具有一个用Python编写的强大的命令行界面。它的安装很简单,允许你自动执行普通程序,部署服务器,以及几乎任何你需要的东西。
为什么选择linode:
- Linode最大的特点就是可以按小时计费,用多久算多少,还是很厚道的;
- 价格上Linode最低配置(1G内存/1核/25GB固态硬盘)价格是5美元/月,很香了;
- 对于国内用户而言,Linode主机的访问速度还是很快的。即使在跨越太平洋的情况下,其速度依然表现出色,但是你的用户全部在国内的话,我建议你还是选择国内的阿里云,腾讯这些国内主机,如果你是出海做跨境生意,你的访客都在国外的话,我建议你的选择Linode。
- Linode具有完全控制权,用户拥有root权限,完全可以自己管理自己的主机。
Linode支持的数据中心比较多,大部分都分布在美国,在亚洲有日本、新加坡节点,欧洲也有部分节点,你可以采用最近原则,你的网站受众在哪里,建议你服务器节点就选择那附近的。 - 非强绑定性,迁入迁出更友好,而且linode承诺99.99的SLA服务,其质量稳定性高。
- AKamai CDN的联动优势,如果客户使用linode,同时使用AKamai的CDN,其会有更好的性价比,而海外市场上AKamai的CDN作为号称全球最贵质量最好的CDN,其竞争力还是可观的。