- 云计算那些事儿:从IaaS到PaaS进阶
- 陈晓宇
- 2288字
- 2020-08-27 18:35:30
1.9 相关概念
其实云计算不是突然冒出来的一个概念,它之前已经有了很多相似的构想及相关理念,就像LXC在Docker之前很多年就已经提出了。
1.9.1 并行计算
并行计算是将一个大的复杂任务拆分成多个小而简单的任务,分发到不同机器上面并行执行。这些机器的CPU通常是紧耦合于中心共享内存或者松耦合于分布式内存,而处理器之间的通信基本也都是通过内存或者消息传递完成的,这些有并行能力的计算机被称为并行计算机,上面运行的程序被称为并行程序。常见的并行计算结构包括共享存储的对称多处理器SMP、松耦合的工作站集群COW,以及分布式存储的大规模并行机MPP。并行计算需要算法支持,需要解决任务调度,以及任务间的通信等问题。它们的网络环境通常都采用InfiniBand,并且采用GPU加速运算,例如MPP通常采用定制计算节点、插件和模块,成本非常高。图1-7是一个并行计算任务运行示意图。
图1-7 并行计算任务运行示意图
并行计算一般用于科学计算如:石油探测、仿真模拟等,因此属于高性能计算的范畴。并行计算往往是单数据中心级别的,如国内的天河,或者太湖之光等在一个数据中心聚集几万台机器,而云计算的数据中心往往是互通的,亚马逊在全球有多个数据中心,并且一个数据中心有多个zone,保持物理隔离,防止因机房断电等造成服务不可用。下图展示2018年前500的计算机排名。当前的并行计算体系结构逐渐从定制的MPP转入通用x86硬件的集群模式,并且大部分都是Linux操作系统。
1.9.2 网格计算
大家可能对网格计算比较陌生,这个概念比较老。它是将不同类型的资源进行整合,提供一个大的计算机。专业的解释是:通过利用大量异构计算机(通常为台式机)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。所以网格计算更强调的是网络连接各种资源,并提供一个虚拟集群,而云计算并不关心任何计算模型。一个云平台可以供多个用户使用,而且一个用户可以有多个独立的系统。从资源角度来说,网格计算在做异构资源的“合”,而云计算在做“分”。网格计算支持虚拟组织提供应用级别的服务,而云计算主要提供的是基础资源。网格计算遵循OGSA(Open Grid Services Architecture),定义了服务管理、安全、数据的接口规范,云计算并没有统一的标准和规范。网格服务的应用主要集中在科研机构,主要用于处理批任务,而云计算则使用范围更广,任何个人都可以购买云服务。图1-8所示为网格计算的典型应用场景,通过将分布在全球不同的异构设备组成一个虚拟的计算机集群。
图1-8 网络计算的典型应用场景
1.9.3 边缘计算
边缘计算是最近这几年比较流行的一种技术,主要在IoT领域应用比较广泛,其架构图如图1-9所示。根据IDC的统计数据,到2020年,将有超过500亿的终端与设备联网,我国数据存储量达到约39ZB,其中,约30%的数据来自物联网设备的接入。据统计,波音787每秒产生的数据超过5GB,无人驾驶汽车每秒产生约1GB数据。如此大量的数据如果直接传输到云数据中心存储计算,姑且不考虑现有带宽传输的问题,数据的处理统计更加复杂、低效。早在2002年,Akamai和IBM最早提出了边缘计算解决方案,后来思科还提出了“雾计算”,本质上就是分层次、分区域地进行数据处理。近几年,国内、外的云厂商也纷纷加入,例如AWS的Greengrass,以及阿里的Link Edge等。
图1-9 边缘计算架构图
维基百科对边缘计算定义如下:在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。通俗来说,就是在靠近数据源的地方,首先对数据进行一些处理运算,然后再汇报到总的数据中心,这样不仅降低了网络带宽的消耗,提高了传输安全,缩小了延迟,而且降低了数据中心的存储压力。
不得不说边缘计算的发展离不开后述这些因素的推动,第一是5G和SDN等网络技术的发展,带宽不断提速,不仅是传输速率和吞吐量的提升,更重要的是从量变到质变,影响了整个软件世界的架构,使计算和数据可以更好地分离,任务调度和任务执行可以分离,建立在互联网之上的分布式系统能够得以实现。第二是专用芯片的产生,未来将会是一个专用芯片的时代,相比通用芯片的“全方位、多功能”,专用芯片在特殊领域表现出了低功耗、低成本、高效率的特点,无论是机器学习,还是边缘计算,小而精的专用芯片更受欢迎。实践证明,通过FPGA(Field-Programmable Gate Array),即现场可编程门阵列架构,在移动端相比CPU有更高吞吐量和计算效能。第三是边缘操作系统的诞生,如机器人操作ROS。边缘操作系统增强了对数据的处理能力,需要兼容更多的边缘设备,支持更多的驱动,并且在系统运行上面要求更加稳定和高效。
边缘计算和云计算最大差别有两点,第一是位置,边缘计算分布在数据采集点附近,而云计算主要集中在云数据中心;第二是处理能力,边缘计算通常处理的数据量比较少,并且逻辑较为简单,而云计算通常和大数据结合,处理的数据量非常大。在IoT架构中,通常云计算处理的大数据来自各个边缘节点。云计算+边缘计算的方案逐渐流行起来。
计算机的世界“分久必合,合久必分”,20世纪五六十年代,计算机刚刚产生,所有的计算都是集中式的。到了20世纪80年代,个人计算机开始普及,从中心化分散到个人计算机;进入20世纪90年代,随着互联网的普及,服务器架构又把计算统一到数据中心。进入2000年初,手机等移动端开始普及,整个计算机世界又被拆分成一个个客户端。到2007年左右,云计算开始流行,计算和数据又开始汇聚,而今物联网的发展又将走向分散。这些演变一方面是技术的推动,但更多的是需求的变化,正是由于需要低延迟地完成大量数据的运算,才需要把计算能力分散到每个靠近数据源的地方,由此,产生了边缘计算。