云计算系统:云计算的组件
分布式与微服务
分布式系统
分布式系统是一个其硬件或软件组件分布在联网的计算机上,组件之间通过传递消息进行通信和动作协调的系统**。资源可用于描述能在连网的计算机系统中共享的事物的范围,构造和使用分布式系统的主要动力来源于对共享资源的期望。分布式系统有如下显著特征:
- 并发:系统处理共享资源的能力会随着网络资源的增加而提高,对共享资源的并发执行程序的协调是非常重要的;
- 缺乏全局时钟:程序的协作是通过交换消息来协调的,取决于对程序动作发生的时间共识。但事实证明网络上的计算机与时钟同步的准确性有限,没有一个正确时间的全局概念;
- 故障独立性:系统的每个组件会单独地出现故障,而其他组件还在运行。
分布式系统是在网络操作系统的基础上构建的,网络操作系统的一般结构是运行在松耦合硬件上的松耦合软件。每台计算机有自己的操作系统,除了客户/服务器通信必须遵循的协议外,计算机之间基本上没有什么合作。分布式操作系统则是运行在松耦合硬件上的紧耦合软件,使用户产生一种错觉:整个计算机网络是一个分时系统,或像一个虚拟的单处理机,而不是一个互不相同的机器集合。用户不必意识到有多个 CPU 的存在,系统有统一的进程间通信机制、进程管理机制、文件系统和相同的系统调用接口等等。

分布式计算
分布式计算是一种与集中式计算相对的计算方法,将大型任务分解为多个子任务,分配到多台计算机(节点)上并行处理,以提高整体效率。从本质上说,凡去中心化的架构均可视为分布式。分布式计算的典型应用场景有:
| 时间 | 事件 |
|---|---|
| P2P 下载 | 如迅雷,文件碎片存储于不同节点 |
| 内容分发网络 CDN | 将内容分布式缓存到靠近用户的服务器 |
| 大数据存储与计算 | 数据分布式存储,计算任务并行处理 |
| 区块链 | 实现去中心化的分布式账本 |
| 微服务架构 | 应用功能模块分布式部署与协同 |

微服务
分布式计算主要依赖 Web Service 与微服务的支撑:Web Service 提供平台独立、低耦合的应用程序接口,是实现分布式计算互操作的关键技术(基于 XML 标准)。微服务架构包括服务提供者、服务请求者、服务注册中心(如 UDDI)三大角色:
| 微服务角色 | 说明 |
|---|---|
| 微服务提供者 | 微服务的拥有者,等待为其他服务和用户提供自己已有的功能 |
| 微服务请求者 | 微服务功能的使用者,利用 SOAP 或 Restful 消息向提供者发送请求以获得服务 |
| 微服务注册中心 | 把一个服务请求者与合适的微服务提供者联系在一起,它充当管理者的角色 |

这 3 个角色对应发布、发现、绑定三个动作:
| 微服务角色动作 | 说明 |
|---|---|
| 发布 | 让用户或其他服务知道某个微服务的存在和相关信息 |
| 发现 | 找到合适的微服务 |
| 绑定 | 在微服务提供者与微服务请求者之间建立联系 |
微服务主要采用 RPC 和基于 HTTP 的 Web Service API 作为通信方式,常引入 API 网关实现请求分发、熔断、权限控制等高级功能。
云计算的架构
云计算的“云”指互联网上的服务器集群资源(硬件和软件),用户通过互联网发送需求,由远端的云计算资源池完成处理并返回结果。云计算可以看做一种商业计算模型,将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。

云计算的组成架构有:
| 层级 | 名称 | 说明 | 典型案例 |
|---|---|---|---|
| 1.基础设施 | IaaS | 提供虚拟化的硬件资源和管理服务 | 亚马逊 EC2,Sun Grid |
| 2.存储 | 云存储 | 提供存储服务和数据库服务 | 亚马逊 S3,Google BigTable |
| 3.平台 | PaaS | 提供计算平台和解决方案,简化应用部署 | Google App Engine |
| 4.应用 | 云应用 | 软件直接在云上运行,无需本地安装 | Facebook 应用,Google Apps |
| 5.服务 | 云服务 | 通过互联网交付和使用的各类服务 | 亚马逊 SQS,PayPal,Google Maps |
| 6.客户端 | 云客户端 | 访问云服务的专用硬件或软件终端 | iPhone,Google Chrome 浏览器 |
云计算解决的是人与 IT 资源之间的关系,它将用户需求自动转换为技术任务并处理,使用户专注于业务本身。云计算是一个更抽象、广泛的上层概念,分布式计算是云计算的一种底层实现技术。
云基础设施
云基础设施是构成云技术架构基础的核心构件块,主要针对计算、存储、网络三大核心资源。
虚拟网络边界
虚拟网络边界是由网络设备(如虚拟防火墙、虚拟专用网络)建立,将一个网络环境与通信网络的其他部分隔离开,形成的逻辑上的隔离边界。它用于包含并隔离一组相关的、可能物理上分布式的 IT 资源,实现非授权用户/非用户/其他云用户的角色区分,控制被隔离 IT 资源的可用带宽。
虚拟防火墙
虚拟防火墙技术是在一台物理防火墙硬件上,逻辑划分出多个独立的虚拟的防火墙实体。每个虚拟防火墙都如同独立设备,拥有独立的管理员、安全策略、认证库等。在默认情况下,不同虚拟防火墙之间相互隔离。各虚拟防火墙独立维护安全区域、资源对象、包过滤策略、NAT 策略等,可限制每个虚拟防火墙的资源占用(如会话数)。该技术可以解决业务多实例问题,实现物理资源的逻辑分割与安全隔离。

虚拟专用网络
虚拟专用网络在公用网络(如互联网)上建立加密、认证的专用、安全通信隧道,实现远程用户或分支安全访问内部网络。主要特点有:
| 虚拟专用网络的特点 | 说明 |
|---|---|
| 安全保障 | 通过加密和身份验证,保证数据传输的私密性和完整性,防止窃听和篡改 |
| 服务质量保证 | 可为不同业务数据提供不同等级的 QoS,优化广域网带宽利用,防止阻塞 |
| 可扩充性和灵活性 | 支持多种数据类型和传输媒介,便于增加新节点 |
| 可管理性 | 需对安全、设备、配置、访问控制、QoS 等进行统一管理 |

虚拟服务器
虚拟服务器是一种模拟物理服务器的虚拟化软件(同“虚拟机”VM),它通过虚拟机监视器实现硬件抽象、资源调度和虚拟机管理。一台物理服务器上可运行多个独立的虚拟服务器(多客户操作系统),实现资源共享。同一物理机上的虚拟机之间完全隔离,一个虚拟机崩溃不影响其他虚拟机。整个虚拟机环境(包括OS、应用、配置)被封装为一个独立的实体(如映像文件),便于备份、移动、复制。同时,将物理硬件标准化为虚拟硬件,提高了兼容性。

虚拟服务器的主要优点有:
| 虚拟服务器的优点 | 说明 |
|---|---|
| 实时迁移 | 虚拟机可在运行时在不同物理主机间平滑、透明地迁移,支持硬件异构,提高系统可用性(如硬件维护时业务不中断)。 |
| 快速部署 | 通过复制预封装的虚拟机映像,应用部署从传统耗时数天缩短至分钟级,且自动化程度高,不易出错。 |
| 高兼容性 | 应用运行平台与底层物理硬件分离,提高了应用的兼容性和可移植性。 |
| 提高资源利用率 | 将多个低负载应用整合到同一台物理服务器,大幅提升 CPU 等资源利用率。 |
| 动态调度资源 | 可根据负载情况,在线、灵活地调整分配给虚拟机的 CPU、内存等资源,无需物理变更硬件。 |
云存储设备
云存储设备是专门为云配置设计的、可被虚拟化的存储设备。其数据组织单位如下:
| 数据组织单位 | 说明 |
|---|---|
| 文件 | 分组存放于文件夹中的数据集合 |
| 块 | 可被独立访问的最小数据单位,最接近硬件 |
| 数据集 | 基于表格的、以记录形式组织的数据集合 |
| 对象 | 将数据及其元数据组织为基于 Web 的资源,可通过标准 HTTP 操作进行访问 |
当数据委托给外部云提供者很容易出现安全问题,目前多数公有云服务商支持有限。在用户操作安全方面,如果缺乏版本控制可能导致文件被错误覆盖后无法恢复,若无备份或回收站机制,误删后数据可能永久丢失。同时,因存储海量用户数据,云存储设备是黑客攻击的重要目标,服务商需提供强大的安全防护方案来保障数据安全。
就绪环境
就绪环境是 PaaS(平台即服务)交付模型的核心定义组件,位于云架构中间层(介于 IaaS 和 SaaS 之间)。它是云平台上预安装好的一组 IT 资源(如数据库、中间件、开发工具、运行环境),云用户可远程使用和定制,以进行应用开发、部署和运行。以 Oracle PaaS 框架为例,就绪环境的体系结构如下:
| 就绪环境组件 | 说明 |
|---|---|
| iPaaS 集成平台即服务 | 基于 SOA、ESB 等架构,提供云内/云与企业间的集成平台。 |
| aPaaS 应用平台即服务 | 基于 Java 等技术架构,提供应用的部署与运行环境平台,是主要实现层。 |
| dPaaS 数据平台即服务 | 提供可伸缩的数据存储与共享平台,支持多租户下的高效安全数据访问。 |
| 硬件资源池 | 为上层 PaaS 平台提供所需的高性能硬件资源系统。 |

参考资料
《云计算导论(第2版)》,吕云翔、柏燕峥、许鸿智、张璐、王佳玮 编著,清华大学出版社

浙公网安备 33010602011771号