1.分布式系统具有以下特点:
l 由多个处理机或多个计算机组成
l 各个组成部分可能分布在不同的地理位置,不同的组织机构,使用不同的
安全策略
l 程序可分散到多个计算机或处理机上运行
分布式系统的目的,和以往任何一种计算机系统一样,本质上都是在追求计
算力的提升。与集中式系统(大型机和小型机)不同的是,分布式系统还追求计
算成本的降低,资源的共享,方便地使用。因此,分布式系统需要一定的策略把
其中独立的组成部分连接起来,协同工作。
2. 分布式计算的组织类型
分布式系统的体系结构模型涉及系统的各个部分的位置及其关系,包括客户-
服务器(Client/Server,C/S)模型和对等进程(Peer-to-Peer,P2P)模型。C/S 模型是互联网应用的常见模型,人们浏览网页,搜索信息,都是通过网络与服务器相连。早期的 BBS,如水木清华,最早是在一台 386PC 上提供互联网接入服 务的。P2P 模式中,任意的节点都是 Server,因此能有效缓解 C/S 模式中的 Server的 I/O 压力。
3. 传统分布式的优缺点
与集中式系统相比,分布式系统具有快速响应的优点,以及其组织结构所决
定的可扩展性。另外,由于分布式系统的各组成部分分布在不同的地理位置上,
有条件对数据进行冗余备份,因此,分布式系统的容错性较好。进一步分析,分
布式系统的两种组织类型,C/S 模型与 P2P 模型相比,P2P 模型具有较高的性价比和良好的资源共享力。这些优点的反面,则是分布式计算的缺点。与集中式系统相比,分布式系统的安全性与其说较低,不如说是一个挑战。而且,分布式系统中的同步机制也比较难实现。进一步比较分布式系统的两种组织类型,P2P 模式中的多点故障对整个系统的影响较大,而且由于任意一个节点都是 Server,那么对其进行冗余备份,花费比较高。
4.试举例一些分布式计算的例子(如:SETI@home, DPAD,folding@home等),来理解传统分布式计算(项目)的工作模式和特点。
5.对云计算、雾计算、边缘计算等新兴名词的理解
云计算包括 2 个层次的含义:商业层面上,以“云”的方式提供服务,具有按需使用,弹性等特点。技术层面上,各种客户端的“计算”都由网络负责完成。云计算通常指,由分布式计算、集群计算、网格计算、并行计算、效用计算
等传统计算机和网络技术融合而形成的一种商业计算模型。
雾计算是云计算的延伸,介于云计算和个人单机计算之间,更呈分布式,更接近
网络边缘。雾计算将数据、数据处理和应用程序集中在网络边缘的设备中,而不
像云计算那样将它们几乎全部保存在云中。雾计算中,数据的存储及处理更依赖
本地设备,而非云端数据中心。所以,云计算是新一代的集中式计算,而雾计算
是新一代的分布式计算。
雾计算和边缘计算概念相似,都是使计算在网络边缘进行。关键区别在于:
(a)智能和计算发生的位置,雾计算智能决策发生在本地局域网,处理数据在雾 节点或 IOT 网关;边缘计算的决策、处理、通信都在边缘网关或者直接在设备中进行。 (b)雾计算更具有层次性和平坦的架构,边缘计算依赖于不构成网络的单独节点。雾计算在节点之间具有广泛的对等互连能力,边缘计算在孤岛中运行其节点,需要通过云实现对等流量传输。
6.云计算的基本特征和部署模式
云计算的 5 个基本特征:
(1)按需自助服务(按需使用,按使用付费;资源部署方面快速简单)
(2)广泛的网络访问(只要能上网,就可以用云)
(3)共享的资源池(所有资源通过虚拟化的方式进行池化,用户只要付钱,就可以按需取用)
(4)快速弹性能力(需要增多,则扩展;需要减少,则收缩)
(5)可度量的服务(对云资源的使用及运行状况计时,或以小时或以分钟或以秒,用来审计,用来计费)
云计算的部署模式:
私有云,公有云,混合云,社区云 ,云服务使用者和提供者的关系不同
7.试分别从一般用户和专业人员的角度对云计算定义,并注意理解云计算和
效用计算的关系。
对于一般用户而言,云计算是通过网络以按需、易扩展的方式获得所需的服务。
随时随地只要能上网就能使用各种各样的服务,如同钱庄、银行、发电厂等。这
种服务可以使 IT 和软件、互联网相关的,也可以使其他的服务(如娱乐,购物,
等等)。
对于专业人员而言,云计算是分布式计算、并行计算、网格计算和效用计算的发
展,或者说是这些计算机科学概念的商业实现
8. 列举满足 ACID(强一致性模型)的数据库技术,理解 BASE(最终一致
性模型)对 ACID 的折中。
满足 ACID(强一致性模型)的数据库技术,BASE(最终一致性模型)指的是 Basically Available(基本可用)、Soft-State (柔性状态)、Eventual Consistency(最终一致性)3 个特性,它相对于传统的 (单机)关系型数据库时代的 ACID 模型的 Atomicity(原子性)、Consistency (一致性)、Isolation(隔离性)、Durability(持久性)4 个特性。以数据库交 易为例,要实现 ACID 最关键的部分是数据的一致性,通常的做法是通过 locking(加锁)的方式,在一方对某数据读写的时候,其他方只能等待。常见的一种加锁方式是 2PL(2-Phase Locking,二阶锁)。2PL 方法的效率对于高频交易系统并不合适。后来有了多版本并发控制策略(MVCC 或 MCC,Multi-version Concurrency Control),通过为每个读写方提供数据库当前状态的快照,来实现操作隔离和数据一致性。在分布式交易系统中,如 NewSQL 类型的数据库,实现ACID 变得更加困难。一种变通方式就是 BASE 最终一致性。Google Spanner利用2PC(2-Phase Commit,二阶提交)来保证分布式交易(事物)操作的原子性和一致性,进而打破了分布式系统的 CAP 定理。
9.在 GFS 这样的架构下,文件的读写基本过程简化、抽象成如下的过程:
写流程:
a.) client 向 master 发送 create 请求,请求包含文件路径和文件名。master
根据文件路径和文件名,在名字空间里创建一个对象代表这个文件。
b.) client 向 3 个 chunkserver 发送要写入到文件中的数据,每个 chunkserver
收到数据后,将数据写入到本地的文件系统中,写入成功后,发请求给 master
告知 master 一个 chunk 写入成功,与此同时告知 client 写入成功。
c.).master 收到 chunkserver 写入成功后,记录这个 chunk 与机器之间的对
应关系,也就是 chunk 的位置。
d.).client 确认 3 个 chunkserver 都写成功后,本次写入成功。
这个写流程是一个高度简化抽象的流程,实际的写流程是一个非常复杂的流程,
要考虑到写入类型(即,是随机写还是尾部追加),还要考虑并发写入
10.知识点复习:
(1). GFS
Google 文件系统(GFS)是一个分布式的文件系统,与 MapReduce 和BigTable 一起构成了 Google 公司的核心计算技术。GFS 作用于底层,在整个Google 公司的分布式系统平台中处于基础地位,是实现云计算服务的基础。
虽然与以前的分布式文件系统有许多相同的目标,但目前 GFS 是针对庞大的数据密集型应用的文件系统,当运行于廉价的硬件环境时,它有一定的容错能力,并且可以向大量用户传递高集成度的执行结果。首先,文件系统有成百上千廉价产品构成的存储设备组成,并被相当数量的客户机器连接访问。无法保证在任何特定时间不会出现故障或者能从故障中恢复。因此,连续监测、错误探测、容错和自动恢复是该系统不可分割的一部分。其次,对传统标准来说,系统的文件如果是 GB 就难以处理。但是,当前Google 公司需要经常处理不断增长、由数亿计的对象组成的 TB 级文件。不再适用于KB 的文件管理。最后,大多数文件的更新是附加新的信息,而不是覆盖现有的数据,几乎
不会发生文件内的随机写操作。目前,Google 部署的多重 GFS 集群,最大的系统有 1000 多个存储节点,超过 300TB 的硬盘存储,被不同区域的客户端机器上的数百名客户频繁访问。
(2). BigTable
BigTable 是一种用于管理大规模结构化数据的分布式存储系统。理论上,
BigTable 数据可以扩展到 PB 级,分布存储在上千台商用机中。Google 公司的很多应用,包括搜索引擎、Google 地球、Google 金融,都使用 BigTable 进行数据存储。这些应用程序在 BigTable 存储的数据类型从 URL 到网页到卫星图像不同,反应速度也不同。BigTable 在很多方面与常用数据库相似:它运用了很多数据库的实现策略,具有并行数据库和主存数据库的可扩展性和高性能。BigTable 不完全支持关系数据模型,只为用户提供简单的数据模型,动态控制数据部署和数据格式,同时允许用户推断底层存储数据的局部属性。用户通过行和列的名称来检索数据,用户可以定义结构化或半结构化的数据。BigTable 本质上是一个稀疏的、分布式、常驻外存的多维排列映射表。这个映射表依靠行关键字、列关键字和时间戳来检索数据。BigTable 用分布式 GFS 来存放日志和数据文件。一个 BigTable 集群通常在一个共享机器池中工作,池中还运行着其他分布式的应用。BigTable 数据的内部存储格式是 Google 公司的 SSTABLE 文件格式。在数据安全方面,BigTable 采用高度可靠的永久存储的分布式 Chubby服务。该服务由 5 个活跃的备份构成。
(3). MapReduce
MapReduce 是一种抽象模型,用户只需编写将要执行的简单计算,无须用户关注并行化、容错、数据分布、负载均衡等繁杂细节。MapReduce 的主要贡献是通过简单而强大的编程接口来实现自动的并行化和大规模分布式计算。
11.多指令流多数据流(Multiple Instruction Streams, Multiple Data Streams,
MIMD)计算模型的分类。
按照处理器是否共享内存,多指令流多数据流(Multiple Instruction Streams,
Multiple Data Streams, MIMD)又分为多处理器共享内存机器和多计算机独立内
存体系两大类。其中,多处理器共享内存的机器,多个处理器以单地址空间的形式共享存储器,又分为 UMA(Uniform Memory Access,一致性存储访问结构)和NUMA(Non-uniform Memory Access,非一致性存储访问结构)。UMA 以中央存储器的形式共享内存,NUMA 以分布式存储器的形式共享内存。UMA,指在一个母板上有多个处理器共享中央存储器,具有统一的内存地址空间。NUMA,把上百个 CPU 组合成多个模块,每个模块由多个 CPU 组成。每个模块内的 CPU 可以访问整个系统的内存,使用统一的访问地址空间。当然,CPU 访问本地模块内存的速度远远高于访问其他模块(系统内其他节点)的内存。因此,NUMA 系统上的应用程序开发,应尽量减少不同模块间的信息交互。UMA 包括 PVP(并行向量机)、SMP(对称向量机)等系统,每个共享的资源都可能造成整个系统服务扩展时的性能瓶颈,最受限的是内存空间。由于每个 CPU必须通过相同的内存总线访问相同的物理内存,导致随着 CPU 数量的增加,内存访问冲突将迅速增加。在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能,反而造成 CPU 资源的浪费。实验证明,SMP 服务器 CPU 利用率
最好的情况是 2~4 个 CPU。NUMA 技术可以较好地解决 UMA 架构的扩展问题,在 1 台物理服务器上可以支持上百个 CPU。但是,由于访问其他模块(系统内其他节点)的内存的时延远远超过本地内存,当 CPU 数量超过一定值时,其系统性能无法线形增加。HP 公司发布 Superdome 服务器时,曾公布了与其它 UNIX 服务器的相对性能值的比较,64 路 CPU 的 Superdome(NUMA 架构)的性能值为 20,而 8 路 N4000(SMP架构)的性能值为 6.3。可见,8 倍的 CPU 数量只得到了 3 被的性能提升。另一类 MIMD 体系的计算机架构是多计算机独立内存体系,多地址空间,非共享存储器,不支持远程节点访问内存,称为 NORMA(No-remote Memory Access)。NORMA 基于同一总线(Interconnect Network),把所有独立的计算节点连接起来,是一种分布式内存架构。共享内存的 UMA 和 NUMA,数据一致性由硬件专门管理;分布式内存的 NORMA,节点之间的数据一致性由系统软件,甚至是应用程序来管理。因此,基UMA/NUMA 和基于 NORMA 的编程模型完全不一样。MPP(大规模并行计算)和 Cluster(集群),都属于 NORMA 架构,也叫完全无共享(Share Nothing)结构。
12.试述 MIMID 的 NUMA 与 SN 架构的区别。
从架构角度,NUMA 和 MPP 与 Cluster 有许多相似之处:它们都由多个节点
组成,每个节点都有对立的 CPU、内存、I/O,节点之间都可以通过节点互连机
制进行信息交互。主要区别在于:
a.节点间的互连机制:NUMA 的节点连接是在一个物理服务器内部全局实现
的,一个节点内的 CPU 可以访问其它节点的内存。MPP 和 Cluster 的节点连接 是不同的节点间通过 I/O 外部实现的,每个节点的 CPU 只能访问本地内存。
b.远程访问内存:NUMA 服务器内部的任何一个 CPU 都可以访问整个系统的
内存,MPP 和 Cluster 的节点不支持远程内存访问。
13.试描述 MapReduce 过程中的分区(partition),溢写(spill),排序(sort),合并
(combine),归并(merge)。
map 的输出是(key,value)是一些中间状态的键值对,需要通过 map 端的
shuffle 操作将这些中间状态生成正式的输出文件,供 reduce 任务来读取。Map
端的 shuffle 包括分区(partition),溢写(spill),排序(sort),合并(combine),归并(merge) 等子过程。
分区(partition):MapReduce 提供 Partitioner 接口,根据 key 或者 value 以
及 reduce 任务数量,对中间状态的键值对进行划分,并决定由哪个 reduce 任务来处理。默认的方式是对 key 的值进行以 reduce 任务数为模值的哈希,以此平衡 reduce 任务的负载。
溢写(spill):每个 map 任务都有一个环形的内存缓冲区,默认大小 100M,缓
冲区和阈值大小都可以在配置文件中设置。如果缓冲区数据量达到阈值(默认值
80%),spill 线程启动执行溢写过程,将缓冲区数据落盘。
排序(sort):Spill 线程启动后,需要对缓冲区数据做基于 key 值的排序。
合并(combine):如果 client 设置了 combiner,那么相同 key 值的 value 会相加,这样可以减少溢写道磁盘的数据量。
归并(merge):如果 map 输出的中间状态的键值对很大,会有多次 spill 操作,
磁盘上相应地会有多个溢写文件。当 map 任务完成时,需要将全部溢写的文件合并成一个溢写文件,这个过程叫归并。
①目前为分布式系统开发的软件还很少
②网络可能饱和和引起其它的问题
③容易造成对保密数据的访问
a. GFS 数据流和控制流分离
b. GFS 允许并发写。
15.云安全的研究内容包括哪几部分?
云安全研究云中数据的保密性、完整性、真实性和可用性。
16.如何理解漏洞、威胁与风险?
漏洞是系统设计中可能被利用的弱点,被威胁作用者手动或自动地利用,达成
对系统隐私的威胁。根据威胁所涉及漏洞的概率及预期的损失,判定风险的等级。
17.云安全所要应对的威胁类型有哪些?分别是那种威胁作用者发起的?
云安全威胁类型包括流量窃听,恶意媒介,拒绝服务,授权不足云安全威胁类型包括流量窃听,恶意媒介,拒绝服务,授权不足,虚拟化攻击,以及信任边界重叠等类型。
云安全的威胁作用者可能来自内部,也可能来自外部;可能来自于人,也可能来自于软件。包括匿名攻击者,授信的攻击者,恶意服务代理,恶意的内部人员,等类型。匿名攻击者是云中没有权限、不被信任的云用户,通常是一个外部软件程序。通过公网发动网络攻击。恶意服务作用者能截取并转发云内的网络流量。它通常是带有被损害的或恶意逻辑的服务代理(或伪装成服务代理的程序)。也有可能是能远程截取并破坏消息内容的外部程序。授信的攻击者与同一云环境中的云用户共享 IT 资源,试图利用合法的证书把云提供者以及那些与他们共享 IT 资源的云租户作为攻击目标。授信的攻击者又称为恶意的租户,能使用基于云的 IT 资源做很多非法行为,包括非法入侵认证薄弱的进程、破解加密、往电子邮件账号发垃圾邮件,或者发起常见的攻击,如拒绝服务攻击。恶意的内部人员是人为的威胁作用者,他们的行为代表云提供者。他们通常是现任或前任雇员,或者能访问云提供者资源的第三方。恶意的内部人员可能拥有访问云用户 IT 资源的管理特权,因此破坏性极大。流量窃听,恶意媒介通常是由窃取网络流量的恶意服务作用者实施的;DoS 攻击发生时,目标 IT 资源由于请求过多而负载过重,这些请求意在使 IT 资源性能陷于瘫痪或者不可用,因此,DoS 攻击通常由恶意媒介服务作用者实施,它可以是匿名的攻击者,也可以是授信的攻击者,还可以是恶意的内部人员;授权不足指的是错误地授予了攻击者访问权限或授权太宽泛,或使用了弱密码,因此,通常由授信的攻击者实施;虚拟化攻击利用的是虚拟化环境中的漏洞,获得了对底层物理硬件未被授权的访问,通常也是由授信的攻击者实施;重叠信任边界潜藏了一种威胁,攻击者可能利用多个云用户共享的、基于云的 IT 资源,新人边界重叠的威胁,通常由授信的攻击者实施。
此外,恶意的内部人员可能拥有访问云用户 IT 资源的管理特权,因此破坏性
极大。所以,恶意的内部人员有条件实施几乎所有类型的威胁攻击。
Dynamo 是亚马逊的高可用分布式 Key-value 存储架构,具备去中心化,高可
用性,高扩展性,以及最终一致性。与 BigTable 和 Hbase 的中心化(主从)架构不同,Dynamo 是典型的 P2P 分布式组织架构,集群中的每台服务器都是对等的,分别负责协调管理不同 Key 值的备份和同步。
EC2是AWS 最早提供的 IaaS 云计算服务,它具有任何一台个人 PC 所具备的功能。根用户可以完全控制 EC2 实例。与个人 PC 可以部署在局域网中类似,EC2可以被部署在 AWS 的 VPC 中。
S3 是 AWS 继 EC2 之后推出的又一个 IaaS 云计算服务。用户无需自选区域
(AWS region),由 AWS 自动就近分配一个 region。因此,EC2 访问 S3需要通过网络,以及权限认证。这个认证方式,可以是密钥的形式,也可以是通过AWS IAM 角色的分配来实现。
VPC 是 AWS 为用户提供的私有网络配置,通过对外的 Internet 网关和对内
的弹性网络接口实现内网的联通和外网的访问
威胁、漏洞和风险,指的是云安全的一条因果链。一个基于网络的分布式
系统存在不可避免的漏洞,这些漏洞被威胁作用者利用,对 IT 资源、云服务构成威胁,带来风险。安全控制、机制和策略,指的是云安全中的另一条行动链。安全策略确定安全控制的定位,决定使用哪些安全机制进行安全控制。常用的云安全机制有:加密、身份与访问控制、单点登录、基于云的安全组、强化的虚拟服务器映像。其中,加密不仅仅是云安全机制,也是信息安全的一个重要机制。而后两种机制则是云计算生态系统所特有的安全机制。身份与访问控制、单点登录机制,在互联网应用中也早已广泛使用,并不局限于云计算领域。
加密(encryption)机制是一种数字编码系统,专门用来保护数据的保密性和
完整性,用来把明文数据编码成受保护的、不可读的格式。加密技术通常依赖于
称为加密部件的标准化算法,把原始的明文数据转换成加密的数据,称密文。当
对明文进行加密时,数据与一个称为密钥的字符串结成对,其中密钥是由被授权
的各方建立和共享的秘密消息。密钥用来把密文解密回原始的明文格式。加密机
制可以帮助对抗流量窃听、恶意媒介、授权不足和信任边界重叠等安全威胁。例
如,试图进行流量窃听的恶意服务代理如果没有密钥,就不能对传输的消息解密。
哈希机制对消息进行哈希(加密)时,消息就被锁住了,并且不提供密钥。
哈希机制常见的应用是密码的存储。哈希技术可以用来获得消息的哈希代码或消
息摘要,通常是固定的长度,小于原始的消息大小。于是,消息发送者可以用哈
希机制把消息摘要附加到消息后面。接收者对收到的消息使用同样的哈希函数,
验证生成的消息摘要和与消息一同收到的消息摘要是否一致。对原始数据的任何
修改都会导致消息摘要的变化,消息摘要不同就明确表明发生了篡改。
数字签名机制是一种通过身份验证和不可否认性来提供数据真实性和完整性
的手段。在发送之前,赋予消息一个数字签名,如果之后消息发生了未被授权的
修改,那么这个数字签名就会变得非法。数字签名提供了一种证据,证明收到的
消息与合法的发送者创建的那个消息是否一致。数字签名机制,涉及哈希机制和
非对称加密机制:对原始信息应用哈希机制,得到消息摘要;由私钥加密消息摘
要,并附加到原始消息中;接收者用公钥解密这个数字签名,得到消息摘要,来
验证消息的真实性和完整性。
身份与访问管理(Identity and Access Management),用于控制和追踪用户身份、IT 资源、环境、系统访问特权的组件和策略。IAM 机制包括四个主要组
成部分:认证、授权、用户管理和证书管理。对于一般用户而言,认证和授权并
没有什么使用感受中的区别,都是对于某些资源的使用权限。但是对于云管理员
来说,认证,指的是认证证书的形式,包括用户名/密码组合、数字签名、数字证书、生物特征识别硬件、特殊软件等,以及用户帐号邦定的 IP 或者 MAC 地址;而授权则是用于定义正确的访问控制粒度。
单点登录机制(Single sign-on,SSO),在一个集中的 IAM 系统上,登陆一
次即可访问多个系统。通常公司内部会有非常多的平台供大家使用,比如人力资
源,代码管理,日志监控,预算申请等等。如果每一个平台都实现自己的用户体
系的话无疑是巨大的浪费,所以公司内部会有一套公用的用户体系,用户只要登
陆之后,就能够访问所有的系统。这就是单点登录。SSO 是一类解决方案的统称,而在具体的实施方面,主要有两种策略:SAML 2.0 和 OAuth 2.0。
基于云的安全组机制,能够在 IT 资源之间设置隔离,增加对数据的保护。这
里需要注意,在 AWS IaaS 服务中,基于云的安全组机制的具体实现是 VPC 服务。基于云的安全组,为不同的用户和组创建各自的物理和虚拟 IT 环境。
强化的虚拟服务器映像机制,是已经经过强化处理的虚拟服务器实例模板。
强化的过程,就是把不需要的软件从系统中剥离出来,限制可能被攻击利用的潜
在漏洞。
21.如何理解对称加密与非对称加密?
对称加密,在加密和解密过程中,使用相同的密钥。所以说,对称加密中,密钥是公有的,不是文件所有者所私有的。这里可以与非对称加密相比较。非对称加密中,分私钥和公钥,私钥只用作私用,而用来传播的,叫做公钥。
22.AWS 的 IAM role 和策略
AWS Identity and Access Management (IAM) 是一种 Web 服务,可以帮助
AWS 客户安全地控制对 AWS 资源的访问。AWS 客户可以使用 IAM 控制对
哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。
当 AWS 客户首次创建 AWS 账户时,最初使用的是一个对账户中所有
AWS 服务和资源有完全访问权限的单点登录身份。此身份称为 AWS 账户的根
用户,可使用 AWS 客户创建账户时所用的电子邮件地址和密码登录来获得此身份。强烈建议不使用根用户执行日常任务,即使是管理任务。然后请妥善保存根用户凭证,仅用它们执行少数账户和服务管理任务。因此,AWS 客户也要为自己创建一个 IAM 用户,并授予该 IAM 用户管理权限,以使用该 IAM 用户执行您的所有工作。在为访问本账户的人员创建单独的 IAM 用户时,AWS 客户可授予每个 IAM 用户一组独特的安全凭证。AWS 客户还可向每个 IAM 用户授予不同的权限。如有必要,AWS 客户可随时更改或撤消 IAM 用户的权限。
IAM 角色是可在账户中创建的一种具有特定权限的 IAM 身份。IAM 角色类
似于 IAM 用户,因为它是一个 AWS 身份,该身份具有确定其在 AWS 中可执行和不可执行的操作的权限策略。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。此外,角色没有关联的标准长期凭证(如密码或访问密钥)。相反,当用户代入角色时,它会为用户提供角色会话的临时安全凭证。
23.如何理解 PaaS 与 SaaS 和 CaaS?
考察知识点“PaaS 交付模型”,上层知识点是云计算交付三大模 型 IaaS/PaaS/SaaS。
PaaS 实际上是指,将软件研发的平台作为一种服务,以 SaaS 的模式交给用
户。因此,PaaS 是 SaaS 模式的一种应用。PaaS 能为应用程序的执行,弹性地提供所需的资源。PaaS 能为 SaaS 运营商进行定制化研发提供中间平台,因此,PaaS 能推进 SaaS 的发展。当 PaaS 平台采用容器而不是虚拟机作为计算单元,这样的云服务供应模式, 就称为 CaaS。因此,CaaS 是 PaaS 的一种特殊形式。CaaS 兼具 IaaS 的灵活和 PaaS 的便利。IaaS 是将 IT 基础设施能力(包括服务器、存储、计算能力、网络设施等)通过网络提供给用户。IaaS 起源于底层硬件虚拟化,而 CaaS 则是起源于操作系统之上的虚拟化,因此,CaaS 具备 IaaS 一样对底层虚拟化的掌控。 CaaS 的目的,则是和 PaaS 一样,提供一个开发环境。因此,说 CaaS 兼具IaaS的灵活和 PaaS 的便利。
24..PaaS 交付云服务的基本云架构包括哪些组成部分?
考察知识点“PaaS 已就绪环境”,即 PaaS 交付模型交付的是什
么资源。
一个软件程序的实例,能服务于不同的用户(租户),租户之间是相互隔离
的,使得软件程序具有这种能力的特性,称为多租户(Multi-tenancy)。云提供
者把它的 IT 资源放到一个资源池里,使用多租户模型来服务多个云用户,这些模 型通常依赖于虚拟化技术的使用。 资源池允许云提供者把大量 IT 资源放到一起为多个云用户服务。不同的物理和虚拟 IT 资源是根据云用户的需求动态分配和再分配的。资源池,常常是通过多租户技术来实现的,因此具有多租户的特性。作为 PaaS 交付的已就绪环境,还应该包括负载均衡架构和动态可扩展架构,以此来保证云计算的弹性。负载均衡架构包括一个负载均衡器机制。负载均衡器机制是一个运行时代理,其逻辑基本上是把负载在 2 个或者更多的 IT 资源上做负载均衡。依据负载均衡器在整个云服务资源部署中的位置,负载均衡架构分为工作负载分布架构、服务负载均衡架构、云负载均衡架构、负载均衡的虚拟服务器实例架构,等不同的形式。动态可扩展架构包括一个自动伸缩监听器机制。自动伸缩监听器也是一个服务代理,它监控和追踪云服务用户和云服务之间的通信,以动态自动伸缩。常见的动态扩展类型有动态水平扩展,动态垂直扩展,以及动态重定位。依据动态扩展的资源类型,动态可扩展架构分为弹性资源容量架构、云爆发架构、不中断服务重定位架构、零宕机架构、动态故障检测与恢复架构、弹性网络容量架构、虚拟服务器的冗余物理连接结构,等不同的形式。
25.列举四大虚拟化技术厂商。
IBM,VMware,XenSource,Microsoft
. IBM 在 60 年代提出了 Hypervisor 的概念,并在 70 年代推出了 VM 的概
念。IBM 的关注点在于服务器级别的虚拟化技术。1998 年 VMware 公司成立,
聚焦于 X86 架构的个人 PC 的虚拟化技术,其商业定位为“虚拟化的数据中心”,搭乘云计算发展的东风,在各大云服务供应商的数据中心大肆应用了 VMware 的虚拟化产品。Xen 是 2003 年剑桥大学提出的半虚拟化技术,同时注册成立了XenSource公司,它起初只支持Linux操作系统。被Citrix收购后,兼容了Windows系统为其提供虚拟化产品。2008 年,Microsoft 进军虚拟化市场,以其在 OS 软件市场的占有率快速抢占了云计算市场中的虚拟化份额。33
随着虚拟化技术的发展,虚拟化产品细分为服务器级别的虚拟化(全虚拟化)、PC 级别的虚拟化(半虚拟化)、操作系统级别的虚拟化(其中发展出了
容器技术)、桌面级别的虚拟化、应用级别的虚拟化等。
27.试阐述云计算的未来发展方向
企业对公有云的预期已经成熟。没有人真的想冒被锁定在单一 IT 提供商
的产品和服务中的风险。企业越来越希望为企业应用程序提供混合和多云部署选
项,以避免锁定和降低其 IT 基础设施的风险。在最近的 AWSRe:Invent 大会上,一些代表表示,AWS 避免提及任何多云,这使其业务合作伙伴不愿提及竞争对手的云产品。在一个公有云平台上满足所有的企业 IT 需求,AWS 的这一策略是合乎逻辑的。但事实是,企业 IT 越来越多地运行在一个复杂、异构的环境中。即使对于一个愿意在 AWS 上部署大多数企业应用程序的 CIO 来说,开源软件公司也提供了一种降低被锁定在单一供应商风险的方法。
Forrester 公司的首席分析师 PaulMiller 说:“有些公司试图利用所选择的云
的最基本特性来最大限度地提高灵活性和选择能力。他们将从云提供商那里租用
存储、计算和网络,然后自己安装和管理其他一切。他们将选择一个数据库并将
其安装在租用的云上;他们将选择一个防火墙并将其安装在租用的云上。这种方
法使得他们从一个云转移到另一个云,或者从云返回到自己的数据中心,相对来
说没有什么痛苦。但这需要一支知识渊博的团队,会减慢应用程序的开发速度,
意味着他们无法从所有云提供商投入数十亿美元的大部分研发中获益。最快的新
应用程序上市时间意味着接受首选云提供商的一些专有功能。实现最大程度的灵
活性意味着接受你的应用程序需要更长的时间来开发,你的云管理团队将需要更
大。如果做出明智的决定,这两个都是完全可以实现的
28.Hadoop 生态系统包括哪些部分?
Hadoop 是对 Google 分布式技术的实现。对云计算来说,Hadoop 具有重要
的意义。Hadoop 以开源的方式提供了 PaaS 服务所需要的大多数分布式技术,
降低了 PaaS 的门槛。AWS,IBM 等在 IaaS 领域成功运营的企业,因 Hadoop
的实现,也能够快速在各自的云平台上提供基于 Hadoop 的 PaaS 服务。Hadoop部署在由大规模廉价 PC 服务器组成的集群上,具有高度可靠性和可扩展性。为了方便用户开发调试测试程序,也支持在单机或者多虚拟机环境中的部署。作为完整的分布式软件架构,Hadoop 下面的 MapReduce 是对 Google 分布式计算模型的开源实现,用于对海量数据做分布式处理;HDFS 是对 Google 分布式文件系统 GFS 的开源实现,用于存储海量非结构化数据;HBase 是对 Google 分布式数据库 BigTable 的开源实现,用于存储海量结构化数据;Zookeeper 是对Google 分布式锁机制 Chubby 的开源实现。
部署在各自相对独立的大规模集群计算节点上的 Hadoop 系统是一个典型的
分布式计算系统。分布式系统带来的一个显著好处是计算任务的并行处理和不同
计算节点资源共享,这将大大提高计算处理速度、系统吞吐率和系统可用性。但
对于多节点、多任务、并行计算的分布式系统而言,其工作机制必须解决以下问
题:(1)不同节点、不同计算任务之间的协同管理;
(2)分布式作业的调度和执行机制;
(3)分布式系统中的资源或数据共享协调方法。
在Hadoop生态系统中,上述功能和机制是通过几个独立的组件(都是Apache
开源项目)来实现的:ZooKeeper 提供分布式协同服务;Oozie 提供作业调度和工作流执行;YARN 提供集群资源管理服务。
Oozie 是大数据四大协作框架之一——任务调度框架(另外三个分别为数据
转换工具 Sqoop,文件收集库框架 Flume,大数据 WEB 工具 Hue)。它能够提供对 Hadoop MapReduce 和 Pig Jobs 的任务调度与协调。Oozie 需要部署到 Java Servlet 容器中运行。功能相似的任务调度框架还有 Azkaban 和 Zeus。
由于 MRv1 在扩展性、可靠性、资源利用率和多框架等方面存在明显不足,Apache 开始尝试对 MapReduce 进行升级改造,于是诞生了更加先进的下一代MapReduce 计算框架 MRv2。由于 MRv2 将资源管理模块构建成了一个独立的通用系统 YARN,这直接使得 MRv2 的核心从计算框架 MapReduce 转移为资源管理系统 YARN。
29.试简述 HDFS 的第二命名节点的工作机制?
Hadoop 分别从三个角度将主机划分为两种角色:作为集群,划分为 master
和 slave;作为 HDFS,划分为 NameNode 和 DataNode;作为 MapReduce,划分为 JobTracker 和 TaskTracker。为了缓解 GFS 主从结构的单点瓶颈所带来的问题,HDFS 的 NameNode 设计了 Secondary NameNode 机制。第二命名节点一直不断进行下面一系列操作,以保证 NameNode 的可用性。
(1) roll edits
命名节点使用 FsImage 和 EditLog 管理命名空间。因此,第二命名节
点也是对命名节点的 FsImage 和 EditLog 进行不断的备份和更新。从
某个 checkpoint(校验点)开始,命名空间的所有更新都记录在临时的
edits 日志文件中。
(2) 从命名节点分别复制 FsImage 和 edits 到第二命名节点。
(3) 对 FsImage 运行 edits 中的更新,以保持 FsImage 的更新。
(4) 把校验点转移给命名节点,自校验点之后记录的 edits 代替 EditLog。
(5) 再次 roll edits,从(1)开始重复。
如果没有第二命名节点,一旦命名节点故障,需要新的节点接替命名节点的
工作。而 EditLog 记录的是自命名节点启动以来的所有更新,那么,新的节
点启动之后,需要非常长的时间来执行 EditLog 记录的所有更新步骤。有了
第二命名节点,只需要将第二命名节点中随时更新的 FsImage 复制到新的命
名节点即可。因此,减少了命名节点重启的时间。
30.试简述 Paxos 算法对于 Zookeeper 的意义。
CAP 定理,在云计算的最初 10 年,往往舍弃了 C,保留了对 A 的支持。Chubby便是通过 Paxos 通信协议实现了消息传输的一致性,从而保证了整个分布式系统的可用性。Zookeeper,正是 Chubby 开源实现。在正常工作期间,Zookeeper 的任务有统一命名、应用配置等管理任务,实现 Zookeeper 小集群内部节点之间关于各种状态的统一。在非正常工作情况下,即 master 节点不可用,需要重新启动新节点接替 master 任务时,行使选举,选举出新的 master。因此,Paxos 实现的一致性,本质上是共识一致性,确保了系统的可用性。
31.为什么说 HBase 是一种列式存储?
以拥有不同的数据项(列),因此,许多列合称为“列簇”。与 BigTable 一样,
HBase 的数据表文件的存储格式为
实践思考 1:
2020 年全国春运将于 1 月 10 日启动,预计发送旅客 30 亿人次。30 亿人次旅客中,道路客 运 24.3 亿人次,铁路 4.4 亿人次,民航 7900 万人次,水运 4500 万人次。高铁、民航、私家车等出行方式在春运中的占比持续上升。网购火车票遭遇 12306 网站“崩溃”怎么办?
(1)首先我们在选择源主机的时候就要考虑这个问题。可以让云服务器的服务商进行多次备份,且保留多个还原点。这样可以保证云服务器恢复的时间存在于备份时间内,从而找到一个还原点进行恢复。
(2)在近段时间内,供应商提供同步式还原备份。供应商为您的云服务器创建一个镜像云服务器,每隔一段时间就会将您的主机数据同步到镜像云服务器上,如果您的云服务器出现故障,完全可以使用这个镜像云服务器来恢复您的云服务器,保证正常运行。
(3)实时同步备份。当您的网站更新频率极高的情况下,可以考虑实时同步备份。供应商提供最大的备份密度是每20分钟进行一次备份。当您的云服务器出现系统问题,您可以及时低联系供应商的客服人员,在最短时间内对云服务器进行恢复。