Skip to content

云计算

字数
2242 字
阅读时间
9 分钟

1 云计算概述

1.1 云计算定义

云计算是各种虚拟化效用计算、服务计算、网格计算、自动计算等概念的混合演进并集大成之结果。

1.2 三元认知论角度理解云计算

云计算既是一种商业模式,也是一种计算范式,还是一种实现方式

1.3 云计算作为计算范式分为两种结构

  1. 横向云体逻辑结构
    • 从横向云体的角度看,云计算分为两个部分:云运行时环境( CIoud runtime environment )和云应用( CIoud application )
  2. 纵向云栈逻辑结构
    • 由 SaaS 、 PaaS 和 IaaS 三部分构成

Infrastructure aa Service(基础设施即服务)
Platform aa Service(平台即服务)
Software aa Service(软件即服务)

2 分布式计算

2.1 ACID 原则

ACID 是数据库事务正常执行的四个原则,分别指原子性、一致性、独立性及持久性

  • 原子性(Atomicity): 事务中的所有操作要么全部成功,要么全部失败。不会出现部分成功的情况
  • 一致性(Consistency): 事务只能将数据库从一种有效状态转换到另一种有效状态
  • 隔离性(Isolation): 同时执行的事务彼此隔离,就像它们是单独执行的一样。一个事务的更改对其他事务不可见,直到该事务提交
  • 持久性(Durability): 一旦事务提交,其对数据库所做的更改将永久保存,即使系统发生故障也是如此

2.2 CAP 理论

一个分布式系统最多只能同时满足一致性( Consistency )、可用性( Availability )和分区容错性( Partition tolerance )这三项中的两项

CAP 定理(也称为布鲁尔定理)是计算机科学中的一项基本定理,它指出在分布式计算系统中,不可能同时满足以下三个属性:

  • 一致性(Consistency): 所有节点在任何时候都必须看到相同的数据
  • 可用性(Availability): 系统必须始终可用,即使某些节点发生故障
  • 分区容错性(Partition Tolerance): 系统必须能够在网络分区的情况下继续运行,即使某些节点彼此无法通信

换句话说,分布式系统只能同时满足其中两个属性,而不能同时满足三个属性

CA 系统: CA 系统提供一致性和可用性,但不能容忍分区。这意味着如果网络分区,系统将变得不可用
CP 系统: CP 系统提供一致性和分区容错性,但不能保证可用性。这意味着系统可能在某些情况下不可用,例如当网络分区时
AP 系统: AP 系统提供可用性和分区容错性,但不能保证一致性。这意味着系统在网络分区时仍然可用,但不同节点上的数据可能不一致

在实践中,大多数分布式系统都必须权衡 CAP 定理中的三个属性。例如,像 Amazon DynamoDB 这样的数据库系统优先考虑可用性和分区容错性,而像 Apache Cassandra 这样的数据库系统则优先考虑一致性和分区容错性

CAP 定理对于理解分布式系统的设计和局限性至关重要。它有助于系统设计人员做出明智的权衡,以满足特定应用程序的需求

2.3 BASE 理论

BASE 是指基本可用( Basically Available )、软状态( Soft state )、最终一致性( Eventual consistency )

BASE 理论(基本可用、软状态、最终一致性)是分布式计算系统设计的一种替代方法,它放松了 ACID 原则中的一些严格要求,以提高可用性和可扩展性。BASE 是以下三个属性的缩写:

  • 基本可用(Basically Available): 系统在大多数情况下都可用,即使某些组件发生故障
  • 软状态(Soft State): 系统的状态可以随着时间的推移而改变,并且不同节点上的状态可能不完全一致
  • 最终一致性(Eventual Consistency): 系统中的所有副本最终将收敛到相同的状态,但可能需要一些时间

与 ACID 原则不同,BASE 理论允许系统在某些情况下出现数据不一致。但是,它保证最终一致性,这意味着随着时间的推移,系统中的所有副本将最终保持一致

BASE 理论特别适用于大规模分布式系统,其中实现强一致性(如 ACID 原则所要求的)可能非常困难或昂贵。例如,像 Amazon DynamoDB 和 Apache Cassandra 这样的 NoSQL 数据库系统遵循 BASE 理论,以提供高可用性和可扩展性

需要注意的是,BASE 理论并不是要取代 ACID 原则。对于需要强一致性和数据完整性的应用程序,ACID 原则仍然是重要的考虑因素。但是,对于那些可用性和可扩展性比强一致性更重要的应用程序,BASE 理论提供了一种有价值的替代方案

3 云计算架构

3.1 云计算中工作负载模式分类&特征

  1. 时开时停模式
    • 用户使用 IT 资源的方式不是连续的
  2. 用量迅速增长模式
    • 用户使用 IT 资源随着时间的推移,用量不断增长
  3. 瞬间暴涨模式
    • 用户一般时段使用资源用量都相对稳定和平均,但会在特定时间点上出现用量的暴涨和暴跌
  4. 周期性增减模式
    • 用户的 IT 资产用量呈现周期性的增长和消减

3.2 "云体"&"云栈"概念

  1. 云体是云计算的物质基础,是云计算所用到的资源集合。它是构成云计算的软硬件环境,如网络、服务器、存储器、交换机等,通过网络连接在一起
  2. 云栈又称云平台,是在云上面建造的运行环境。它能够支持应用程序的发布、运行、监控、调度、伸缩,并为应用程序提供辅助服务的机制,如访问控制和权限管理等

4 虚拟化技术

4.1 OpenStack中负责对象存储的项目代码名称

  • Nova
    • 负责管理虚拟机实例的生命周期,包括创建、启动、停止、销毁等操作。
  • Neutron
    • 负责管理网络资源,例如虚拟网络、防火墙、路由器等。
  • Swift
    • 是一个分布式对象存储系统,它将数据分割成多个对象并存储在多个节点上。这使得 Swift 能够提供高可用性和可扩展性。负责提供可扩展、可复制、可持续的对象存储服务。它可以用于存储大量非结构化数据,例如图像、视频、文档等。此外,Swift 还支持多种数据格式和访问协议,例如 HTTP、REST、WebDAV 等。
  • Cinder
    • 负责管理块存储资源,例如虚拟机硬盘。

4.2 关于容器化应用程序的数据持久化不正确的说法

  • 尽可能使用卷存储应用程序的数据。

  • 生产环境中使用机密数据存储服务中所有的敏感应用程序数据。

  • 将应用程序配置文件存储在容器的可写层中。

  • 开发环境中可以绑定挂载源代码目录。

4.3 虚拟化技术概念&类型

  • 概念
    • 在计算机科学领域中,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念
  • 类型
    1. 服务器虚拟化
    2. 网络虚拟化
    3. 桌面虚拟化
    4. 软件定义的存储

4.4 硬件虚拟化技术代表

  1. GPU 虚拟化
  2. FPGA 虚拟化
  3. RDMA 虚拟化
  4. NVM 虚拟化