- 网络服务安全与监控
- 李雨航 徐亭 郭鹏程主编
- 3493字
- 2021-03-12 19:58:15
1.2 云计算
云计算架构从虚拟化技术开始发展,云操作系统通过资源池化和资源自动编排实现对多硬件的资源统一管理。通过软件分配资源,以提升资源利用率,支持大规模存储、计算、网络等需求。早期云架构主要在一些大型公司的内部基础设施中使用,逐渐推广为提供公共服务的公有云架构。
2006年3月,亚马逊(Amazon)推出弹性计算云(Elastic Compute Cloud,EC2)服务。2006年8月9日,Google首席执行官埃里克·施密特(Eric Emerson Schmidt)在搜索引擎大会(SES San Jose 2006)首次提出“云计算”的概念。
云计算因为敏捷、弹性和规模经济等特性,可以带来巨大的潜在收益。因为大幅降低了购买、部署和维护硬件的时间,所有的资源都可以由云服务商提供,通过软件定义,可以快速实现资源的扩容,从容应对突发的业务峰值,所以组织可以运转得更快;由于云固有的弹性特征,因此减少停机时间对业务的影响;由于资本支出减少,需求和能力匹配,按需使用,按实际使用量付费,因此节省资金。
1.2.1 定义云计算
NIST将云计算定义为:云计算是一种无处不在的、便捷的、按需的,通过网络来访问共享可配置的计算机资源(如网络、服务器、存储、应用和服务)的模式,可以通过最少的管理工作或与服务提供商的互动来快速提供并发布。ISO/IEC的定义与其非常相似:通过自服务配置和按需管理,启用通过网络访问可扩展的、弹性的共享物理或虚拟资源池的模式。
描述云的一种简单的方法是,它有一组资源(如处理器和内存),并将它们放到一个大的池中(在这种情况下,使用虚拟化)。消费者需要从池中获得需要的东西(如CPU和内存),而云将这些资源分配给客户端,然后客户端连接到网络并在网络上使用这些资源。当客户端使用完成时,他们可以将资源释放回池中供其他人使用。云几乎可以由任何资源组成,从计算(如处理器和内存)到网络、存储及更高级别资源(如数据库和应用程序)。
云用户是请求和使用资源的人或组织,云提供商是分发它的人或组织。有时还会使用术语“客户”和“消费者”来指代云用户,用“服务”或简单的“云”来描述云提供商。NIST 500-292使用“cloud actor”这个术语,并增加了云代理、运营商和审计人员的角色。ISO/IEC17788使用术语云服务用户、云服务合作伙伴和云服务提供商。
创建云的关键技术是抽象和编排。从底层的物理基础设施中抽象出资源来创建资源池,并使用编排(或自动化)来协调从资源池分配和分发各种资源到用户,这两种技术创造了用来定义“云”的所有基本特征。这就是云计算和传统的虚拟化之间的区别。虚拟化技术将资源抽象化,但是它通常缺乏将它们整合在一起并按需分发给用户的调度能力,而是依赖手动流程。
云天然就是多租户的。多个不同的消费者共享同一个资源池,但彼此相互隔离和孤立。隔离允许云提供商将资源分配到不同的组,孤立确保他们不能看到或修改对方的资产。多租户不仅应用于不同的组织;还用于在单一业务或组织中分配不同单元之间的资源。
1.2.2 定义模型
云安全联盟(CSA)使用“NIST云计算模型”作为定义云计算的标准。CSA还支持更深入的“ISO/IEC模型”作为参考模型。
在NIST对云计算的定义中,包括了5个基本特征、3个服务模型及4个部署模型。图1-2所示为NIST云计算基本特征与模型示意。
图1-2 NIST云计算基本特征与模型示意
1. 基本特征
如果具备以下特征,就把它看作云计算。如果它缺少其中任何一个,就很可能不属于云计算。
(1)资源池是最基本的特性。云服务提供商对资源进行抽象,并将其聚集到一个池中,其中的一部分可以分配给不同的用户(通常是基于策略的)。
(2)用户自己可以按需自动配置资源,他们自己管理自己的资源,无须与服务提供商的服务人员互动。
(3)广泛的网络访问意味着所有的资源都可以通过网络获得,而不需要直接的物理实体访问;网络并不是服务必需的部分。
(4)快速弹性允许用户从池中按需使用资源(启用和释放),通常完全自动。这使他们更紧密地匹配资源消耗需求。例如,当需求增加时添加虚拟服务器,当需求终止时释放它们。
(5)提供可测量的服务,以确保用户只使用他们所分配的资源,如果有必要,还可以对他们收取费用。这就是“使用量计算”术语的由来,因为计算资源现在可以像水和电一样消耗,客户只需要支付他们所使用的部分。
ISO/IEC 17788列出了6个关键特性,其中前5个特性与NIST的特征相同。唯一的补充是多租户,这与资源池是不同的。
2. 服务模型
NIST定义了3个服务模型,它们描述了云服务的不同基础类别。
(1)软件即服务(SaaS)是由服务商管理和托管的完整应用软件。用户可以通过Web浏览器、移动应用或轻量级客户端应用来访问它。
(2)平台即服务(PaaS)抽象并提供开发或应用平台,如数据库、应用平台(如运行Python、PHP或其他代码的地方)、文件存储和协作,甚至专有的应用处理(如机器学习、大数据处理或直接API访问完整的SaaS应用的特性)。关键的区别在于,使用PaaS不需要管理底层的服务器、网络或其他基础设施。
(3)基础设施即服务(IaaS)提供了基础性的计算资源,如计算、网络或存储。
有时称它们为“SPI”模型。
3. 部署模型
NIST和ISO/IEC都使用相同的4个云部署模型。下面描述这些技术是如何部署和使用的,它们适用于整个服务模型的范围。
(1)公有云。云基础设施给一般公众或某个大型行业团体提供服务。并由销售云计算服务的组织所有。
(2)私有云。云基础设施专为一个单一的组织运作。它可以由该组织或某个第三方管理并可以位于组织内部或外部。
(3)社区云。云基础设施由若干个组织共享,支持某个特定有共同关注点(如使命、安全要求、政策或合规性考虑等)的社区。它可以由该组织或某个第三方管理,并可以位于组织内部或外部。
(4)混合云。云基础设施由两个或多个云(私有云、社区云或公有云)组成,以独立实体存在,但是通过标准的或专有的技术绑定,这些技术提升了数据和应用的可移植性(如多云间的负载平衡)。混合通常用于描述非云化数据中心与云服务提供商的互联。
部署模型是基于云用户(使用云的用户)定义的。如图1-3所示,拥有和管理云的组织即使在单个部署模型中也会有所不同。
图1-3 云计算部署模型对比
4. 逻辑模型
宏观上,云计算和传统计算都遵循一种逻辑模型,这种逻辑模型可以基于功能识别不同的层次。这有助于阐明不同计算模型之间的差异。
(1)基础结构:包括计算系统的核心组件,即计算机、网络和存储,是其他结构设立的基础。
(2)元结构:提供基础设施层与其他层之间接口的协议和机制,是一种将多种技术紧密联系起来、实现管理与配置的黏合剂。
(3)信息结构:数据和信息,如数据库中的内容、文件存储等。
(4)应用结构:部署在云端的应用程序和用于构建它们的底层应用程序服务。例如,PaaS的功能特性(如消息队列),人工智能分析或通知服务。
不同的安全性将映射到不同的逻辑层。应用程序安全性映射到应用程序结构,数据安全性映射到信息结构,基础设施的安全性映射到基础设施层。
1.2.3 云计算抽象类型
1. 虚拟机
虚拟机是最广为人知的计算抽象形式,所有的IaaS提供商都可以提供。从基础镜像创建(或克隆)出来的虚拟机在云计算中一般被称为实例。虚拟机管理程序(Hypervisor)理论上也是底层硬件之上的操作系统。现在的Hypervisor可以被嵌入底层硬件功能中且通常应用在标准服务器(或工作站)上,在提供高性能运算的同时加强隔离。虚拟机有遭到内存攻击的可能性,但由于软硬件的不断改进使得隔离逐步加强,现在变得越来越难。在现在的Hypervisor上运行的虚拟机通常会受到有效的安全控制,并且针对虚拟机和安全运行环境的硬件隔离不断增强也将会不断提升这些控制能力。
2. 容器
容器是运行在操作系统上的代码执行环境,共享并充分利用操作系统的资源。虚拟机是操作系统的一个完整抽象,容器是一个受限区域,它是使用操作系统的内核及操作系统其他能力的运行中被隔离的进程。多个容器可以在同一个虚拟机上运行,也可以完全不使用虚拟机直接在硬件上运行。容器提供了一个受限的代码运行环境,只允许代码访问容器的配置定义的进程和功能。容器也随着不同的管理系统、底层操作系统和容器技术而快速发展。
3. 基于平台的负载
基于平台的负载是一个更加复杂的类别,其运行在除虚拟机和容器之外的共享的平台上,如运行在共享数据库平台上的逻辑过程。例如,一个存储过程在一个多租户数据库中运行,或者一项机器学习任务在一个机器学习PaaS平台上运行。尽管提供商可能公开某些安全选项和控件,平台提供商需要对其隔离性和安全性负主要责任。
4. 无服务器计算
无服务器是一个广泛的类别,主要指云用户不需要管理任何底层硬件或虚拟机的场景,只需要访问公开的功能。例如,有一些无服务器平台可以直接执行应用程序代码。但是在后台,这些功能仍然采用容器、虚拟机或其他专业硬件平台的能力。无服务器计算又称为函数即服务(Functions as a Service,FaaS),用户只需要把代码封装成函数即可在FaaS平台上运行,适合并发量不大的定制化功能。