云计算知识点

2023-11-05

(一)理解云计算

一、云计算的基本概念

1. 定义:云计算是以服务的形式,按需向用户提供计算资源的一种模式。它是分布式计算的一种特殊形式,引入了效用模型来远程供给可扩展和可测量的资源。

2. 基本要点:

  • 提供IT资源,包括计算、存储以及网络资源。
  • 提供动态的数据服务,数据包括原始数据、半结构化数据和经过处理的结构化数据。
  • 提供云计算平台,包括软件开发API、环境和工具。

3. 云计算 = 数据 * (软件 + 平台 + 基础设施) * 服务

4. IT资源是指一个与IT相关的物理的或虚拟的事物,它既可以是基于软件的,比如虚拟服务器或定制软件程序,也可以是基于硬件的,比如物理服务器或网络设备。

5. 云服务是指任何可以通过云远程访问的IT资源。并非云中所有的IT资源都可以被远程访问,其中有公开发布的API的软件程序可以专门部署为允许远程客户访问。

6. “内部的”是指“在一个不基于云的可控的IT环境内部的”,它和“基于云的”是对等的,用来对IT资源进行限制。

 

二、云计算的商业驱动力

1. 容量规划

  • 领先策略(Lead Strategy):根据预期增加IT资源的容量
  • 滞后策略(Lag Strategy):当IT资源达到其最大容量时增加资源容量
  • 匹配策略(Match Strategy):当需求增加时,小幅增加IT资源容量

2. 降低成本

3. 组织灵活性

 

三、云计算的技术创新

1. 集群化:集群是一组互联的独立IT资源,以整体形式工作,具有冗余和容错特性。

2. 网格计算:计算网格为计算资源提供了一个平台,使其能组织成一个或多个逻辑池,这些逻辑池统一协调为一个高性能分布式网格。

3. 虚拟化:虚拟化是一个技术平台,用于创建IT资源的虚拟实例。

 

(二)基本概念与模型

一、可扩展性(

  • 水平扩展(horizontal scaling):内外扩展(数量上)
  • 垂直扩展(vertical scaling):上下扩展(容量上)

 

二、4个角色

1. 云提供者:提供基于云的IT资源的组织机构。IT资源可以是云提供者自身拥有或者租赁的。

2. 云用户:通过与云提供者签订合约协定来使用云的IT资源的人或者组织。云用户使用云服务用户来访问云服务。云服务用户是一个临时的运行时角色,由访问云服务的软件程序担任。

3. 云服务拥有者:拥有云服务的个人或者组织。云服务拥有者可以是云用户或者是云提供者本身。

4. 云资源管理者:负责管理基于云的IT资源(包括云服务)的人或者组织。云资源管理者可以是云用户云提供者或者是受委托的第三方组织

 

三、2种边界

1. 组织边界:是一个物理范围,包括由一家组织拥有和管理的IT资源的集合。

2. 信任边界:是一个逻辑范围,通常会跨越物理边界,表明IT资源受信任的程度。

PS:逻辑网络边界:是一种云计算机制,它指将一个网络环境与通信网络的其他部分隔离开来,形成一个虚拟网络边界,包含并隔离了一组相关的基于云的IT资源。

 

四、6个云特性

1. 按需使用:云用户不需要拥有IT资源,而是以服务的形式,需要的时候可以使用资源,不需要的时候就停止使用。即云用户能够通过自助服务来使用所需的基于云的服务,而无需与云提供者交互

2. 随处访问(泛在接入):一个云服务可以被广泛访问的能力。拥有 IT 基础资源的云服务提供者可以通过网络线路来让大范围云用户访问到云资源,只要云用户与 IT 资源有线路链接

3. 多租户:多租户是指不同的用户(租户)可以共享应用软件, 这些应用部署在云端,租户之间是相互隔离的。通过多租户, 云服务供应商可以通过相同的应用程序为不同的用户提供服务。多租户可以减少软件版本,降低软件开发、维护成本。

4. 弹性:弹性即是能够根据用户的需求自动扩展提供给用户的资源。与上面的按需使用不同,按需使用是体现在用户层面的,而弹性则是体现在云服务提供者层面的

5. 可测量的使用:云平台对云用户使用的 IT 资源使用情况的记录能力,方便对用户进行收费,并且还可用于对 IT 资源的监控。按需使用与可测量的使用密切相关,按需使用的实现需要基于可测量的使用。由于云可以对 IT 资源的使用进行测量,因此就能够记录云用户对云上的 IT 资源的使用情况,云用户根据资源使用情况的反馈才可以更好地调整需求,按需使用云服务。

6. 可恢复性:是一种故障转移的形式。会在多个物理位置提供冗余的IT资源,并存放IT资源的备份。当前使用的 IT 资源出现故障的时候,就可以快速转换到备份资源进行处理,增加云服务的可靠性和可用性。

 

五、3种云交付模型

1. 基础设施作为服务(IaaS):IaaS是一种自我包含的环境,由以基础设施为中心的IT资源组成,这个环境可以包括硬件、网络、连通性、操作系统以及其他一些“原始的”IT资源。IaaS赋予用户完全的管理权限,可用的功能类型包括对虚拟化的基础设施相关的 IT 资源以及可能的底层物理 IT 资源的完全访问。

2. 平台作为服务(PaaS):PaaS是预先定义好的已就绪环境,一般由已经部署好配置好的IT资源组成,典型的已就绪环境包括预安装的IT资源,如数据库、中间件、开发工具和管理工具。PaaS赋予云用户有限的管理权限,可用的典型功能有对于云用户使用平台相关的 IT 资源的中等级别的管理控制。

3. 软件作为服务(SaaS):SaaS通常是把软件程序定位成共享的云服务,作为“产品”或通用的工具进行提供。赋予云用户的控制等级为使用和与使用相关的配置,云用户可以使用前端用户接口访问。

 

六、4种云部署模型

1. 公有云:公有云是第三方所有的,通常向云用户组织提供商业化的云服务和IT资源。主要目的是提供用户自身无法实现的资源规模或者功能,实现商业运营。与公有云相关的技术流派是互联网云,通过分布式并行计算实现IT资源的聚合,实现海量数据处理。

2. 私有云:私有云是仅被一家组织所拥有的,并且位于该组织的范围之内。主要目的是实现机构IT资源的弹性使用,提供资源利用效率。与私有云相关的技术流派是IT云,通过虚拟化架构实现资源弹性管理。

3. 社区云:社区云一般只能被一组共享拥有权和责任的云用户访问,具有区域性成员的高度参与性。如深圳大学城云计算公共服务平台。

4. 混合云:混合云是两种或多种云部署模型的组合。例如,云用户可能会选择把处理敏感数据的云服务部署在私有云上,而将其他不那么敏感的云服务部署到公有云上。

 

(三)云使能技术

一、6种云使能技术

1. 宽带网络和Internet架构:云用户和云提供者通常利用Internet进行通信。

2. 数据中心技术:数据中心是专门的IT基础设施,用于集中存放IT资源,如服务器、数据库和软件系统。

3. 虚拟化技术:虚拟化是将物理IT资源转换为虚拟IT资源的过程。

4. Web技术:Web技术经常被用于云服务的实现,并在前端用于远程管理云IT资源。

5. 多租户技术:多个用户(租户)在逻辑上同时访问同一个应用。

6. 服务技术:“作为服务”的云交付模型的基础。

 

二、宽带网络和Internet架构

1. Internet以无中心的供给和管理模型为基础,不受任何集中式实体的控制。Internet最大的主干网由ISP(Internet服务提供者)建立并部署。

2. 网络互联架构的2个主要组件:

(1)使用网络路由器和交换机的无连接分组交换:端到端数据流的传递

(2)基于路由器的互联:数据包的转发

3. 网络带宽和延迟是影响QoS(服务质量)的因素,而网络拥塞对其有巨大影响。

 

三、数据中心技术

1. 数据中心基本技术

  • 网络互连技术
  • 虚拟化技术
  • 标准化与模块化(具备可扩展性、可增长性和快速硬件更改的特点)
  • 自动化(自配置和自恢复)
  • 远程操作与管理
  • 高可用性(采用高冗余度)

2. 数据中心网络架构

  • 改进型胖树网络架构(FatTree)
  • 微软网络架构(VL2)
  • 递归层次结构之Dcell
  • 递归层次结构之FiConn
  • 递归层次结构之BCube
  • 软件定义网络(SDN)

 

四、虚拟化技术

1. 可被虚拟化的IT资源

  • 服务器(server):虚拟服务器
  • 存储设备(storage):虚拟存储设备或虚拟磁盘
  • 网络(network):VLAN
  • 电源(power):虚拟UPS

2. 虚拟化技术的优势

(1)硬件无关性:虚拟化将硬件转换为基于软件的标准化版本,运行在虚拟化环境的操作系统基本不受底层硬件的影响。

(2)服务器整合:虚拟化技术允许在一台物理服务器上创建多台虚拟服务器,可提高资源利用率,它是按需使用、资源池、可扩展性、可恢复性等云特性的基础。

(3)资源复制:虚拟机的状态最终保存为文件的形式,通过简单操作文件可实现虚拟机的复制、迁移、快照。

3. 2个关键术语

(1)VMM(虚拟机监视器):用来创建虚拟服务器,可以访问物理主机的底层硬件。

(2)VIM(虚拟化基础设施管理):用来管理一系列跨多个服务器的IT资源。

  • 自动伸缩:VIM可以根据自动伸缩监控器的命令对IT资源进行增大或缩小来实现动态自动伸缩
  • 虚拟机迁移:VIM可以把虚拟服务器在线迁移到另一台物理服务器上。
  • 负载均衡的虚拟服务器实例架构:容量看门狗监控器向VIM报告过度使用的情况,VIM给负载均衡器发信号,让它根据预先定义的阈值重新分配工作负载
  • 虚拟机监控器机制:VIM提供了一组特性来管理跨物理服务器的多虚拟机监控器。当虚拟服务器底层的物理服务器正在被其他虚拟服务器使用,VIM决定无法进行扩展。VIM命令繁忙的物理服务器上的虚拟机监控器挂起该服务器的执行。然后VIM命令在空闲的物理服务器上实例化该虚拟服务器。VIM命令新物理服务器上的虚拟机监控器继续执行虚拟服务器的处理。

4. 虚拟机架构(

(1)基于操作系统的虚拟化——寄生架构(Hosted):硬件→宿主OS→VMM→VM

  • 宿主操作系统:管理所有硬件资源。
  • 虚拟机监控器(VMM):作为宿主操作系统上的一个应用程序,模拟硬件的一些行为。
  • 客户操作系统:运行用户的应用。

(2)基于硬件的虚拟化——裸金属架构(Bare-metal):硬件→VMM(hypervisor)→VM

  • 虚拟机监控器(VMM):一般是指虚拟机管理程序hypervisor(一个实现核心功能的轻量级操作系统),接管客户操作系统的一些特殊指令,如操作硬件的指令。
  • 客户操作系统:运行用户的应用。

(3)对比分析

Hosted 使用方便,功能丰富,适用于桌面系统。
Bare-metal 效率高(不受宿主OS影响,I/O优化),安全性高,适用于服务器系统。

5. 主机虚拟机技术

(1)硬件仿真(Emulation):可以在宿主系统上创建一个硬件VM来仿真所想要的硬件。使用硬件仿真的主要问题是速度会非常慢,因为每条指令都必须在底层硬件上进行仿真

(2)全虚拟化(Full Virtualization):"协调"在这里是一个关键,因为VMM在客户操作系统和裸硬件之间提供协调。特定受保护的指令(特权指令)必须被捕获下来并在hypervisor中进行处理,因为这些底层硬件并不由操作系统所拥有,而是由操作系统通过hypervisor共享。虽然完全虚拟化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因为中间经过了hypervisor的协调过程。

(3)半虚拟化(Paravirtualization):使用了一个hypervisor来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了客户操作系统本身中。半虚拟化无需重新编译或捕获特权指令,性能非常接近物理机。

(4)硬件辅助虚拟化(Hardware Assisted Virtualization):对于传统的完全虚拟化,VM运行在Host OS之上,hypervisor运行在cpu的Ring 0,Guest OS则运行在Ring 1(为了避免Guest OS破坏Host OS,Guest OS必须运行在低于Ring 0的权限)。但是这样一来Guest的兼容性会受到影响,并且原来Guest OS要在Ring 0上执行的指令都必须经过hypervisor翻译才能运行,速度会有所下降。而硬件辅助虚拟化把hypervisor本身放到比Ring 0还低的模式运行(比如Ring -1),而把Guest OS放到Ring 0,这样兼容性得到了提高。硬件辅助虚拟化不是独立的虚拟化技术,需要结合到全/半虚拟化技术中。

(5)操作系统级别虚拟化(Operating System Level Virtualization):对服务器操作系统进行隔离实现虚拟化(只有一份操作系统)。主要的优点是执行效率高

(6)对比分析

  硬件仿真虚拟化 全虚拟化 半虚拟化 硬件辅助虚拟化 操作系统级虚拟化
速度 <30% 30%~80%+ 80%+ 80%+ 90%
模式 Hosted Hosted/Bare metal Bare metal Hosted/Bare metal 类Bare metal
优点 Guest OS无需修改非常适合硬件、固件及OS的开发 Guest OS无需修改,速度和功能都不错,使用非常简单 比全虚拟化架构更精简,速度上有优势 速度快 成本低、效率高
缺点 速度非常慢(有时速度比物理情况慢100倍以上) 基于Hosted模式时性能较差,特别是I/O方面 需要对Guest OS进行修改,用户体验较差 硬件实现不够优化 OS支持
趋势 颓势但仍存 主流(最常见、最成熟) 一定份额 普遍采用 越来越多

(9)虚拟化技术的特点:

  • 分区:大型的、扩展能力强的硬件能够被用来作为多台独立的服务器使用; 在一个单独的物理系统上,可以运行多个操作系统和应用; 计算资源可以被放置在资源池中,并能够被有效地控制。
  • 隔离:虚拟化能够提供理想化的物理机,每个虚拟机互相隔离; 数据不会在虚拟机之间泄露;应用只能在配置好的网络连接上进行通讯。
  • 封装:虚拟单元的所有环境被存放在一个单独文件中; 为应用展现的是标准化的虚拟硬件,确保兼容性; 整个磁盘分区被存储为一个文件,易于备份、转移和拷贝。
  • 硬件独立:可以在其他服务器上不加修改的运行虚拟机。虚拟技术支持高可用性、动态资源调整,极大地提高系统的可持续运行能力。

6. CPU虚拟化

(1)核心问题:特权/敏感指令的执行

  • 特权指令: 系统中有一些操作和管理关键系统资源的指令,只有在最高特权级上能够正确运行。如果在非最高特权级上运行,特权指令会引发一个异常,处理器会陷入到最高特权级,交由系统软件处理了。
  • 敏感指令: 操作特权资源的指令,包括修改虚拟机的运行模式或者下面物理机的状态;读写时钟、中断等寄存器;访问存储保护系统、地址重定位系统及所有的I/O指令。

(2)X86架构的4个特权等级: Ring0~3

  • 操作系统内核需要直接访问硬件,运行在最高等级Ring0,这样内核可以使用特权指令控制中断、修改页表、访问设备。
  • Ring1与Ring2也用于操作系统服务,被保留。
  • 应用程序运行在最低特权级别的Ring3,但访问磁盘、发送消息等操作需要通过系统调用进入内核执行,执行权限由Ring3转到Ring0,任务完成后,系统调用返回,执行权限回归Ring3。以上过程称为用户态和内核态的切换。
  • CPU虚拟化的挑战:虚拟机作为一个应用程序运行在宿主机操作系统中,应该运行在Ring3。但是,虚拟机操作系统的内核指令又需要运行在Ring0。

(3)全虚拟化(模拟执行)

  • 优先级压缩技术(Ring Compression):使Guest OS和VMM分别运行在Ring 1和Ring 0特权下,当Guest OS调用特权指令时,就自动陷入到VMM中,由VMM模拟执行。
  • 二进制翻译技术(Binary Translation):通过扫描并修改Guest的二进制代码来将那些难以虚拟化的指令(e.g. 一些非特权敏感指令)转化为支持虚拟化的指令。

e.g. 以 x86 架构的敏感指令 POPF 和全虚拟化技术为例。采用优先级压缩技术使 Guest OS 和VMM 分别运行在 Ring 1 和 Ring 0 特权下,当 Guest OS 调用特权指令时,就自动陷入到VMM 中,由 VMM 模拟执行。但 POPF 作为 x86 架构中的非特权敏感指令,在执行时无法自动被 VMM 捕获,因此需要利用二进制代码翻译技术将其转化为支持虚拟化的指令,再由VMM 实现从栈顶弹出一个字到模拟 CPU 的 EFLAGS 中的操作。可以看出,在虚拟化技术中VMM 通过控制 Guest OS 的敏感指令实现了对物理硬件的全面接管,但同时又保证了虚拟机的执行与物理机执行的等效性。

(4)半虚拟化(操作系统辅助)

通过修改Guest OS的代码,使其将那些和特权指令相关的操作都转换会发给VMM的Hypercall(超级调用)。Hypercall支持Batch(批处理)和异步这两种优化方式,使Hypercall能得到接近物理机的速度。

(5)硬件辅助虚拟化

  • Root模式:VMM运行于此模式,用于处理特殊指令。
  • Non-Root模式:Guest OS运行于此模式。
  • 当在Non-Root模式下Guest执行到特殊指令时,系统会切换到Root模式VMM,让VMM来处理特殊指令。

7. 内存虚拟化

(1)目标:做好虚拟机内存空间之间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,并且效率也能接近物理机。

(2)全虚拟化:影子页表 (Shadow Page Table)

为每个Guest维护一个影子页表,写入虚拟化之后的内存地址映射关系,Guest OS的页表无需变动。VMM将影子页表交给MMU进行地址转换,将三次地址转换(GVA→GPA→HVA→HPA)简化为一步(GVA\overset{SPT}{\rightarrow}HPA)。

(3)半虚拟化:页表写入法

当Guest OS创建一个新的页表时,其会向VMM注册该页表,之后在Guest运行的时候,VMM将不断地管理和维护这个表,使Guest上面的程序能直接访问到合适的地址。

(4)硬件辅助虚拟化:扩展页表 EPT(Extended Page Table)

虚拟机内部维护自己的GVA→GPA页表结构,硬件辅助维护EPT来进行GPA→HPA的映射。

8. I/O虚拟化

(1)目标:不仅让虚拟机访问到它们所需要的I/O资源,而且要做好它们之间的隔离工作,更重要的是,减轻由于虚拟化所带来的开销。

(2)I/O全虚拟化:通过模拟I/O设备(磁盘和网卡等)来实现虚拟化。Guest OS每次I/O操作都会陷入到VMM,让VMM来执行。

(3)I/O半虚拟化:通过前端(Front-End)/后端(Back-End)架构,将Guest的I/O请求传递到特权域(Privileged Domain,也被称为Domain-0)。

(4)软件模拟虚拟化:用软件模拟I/O设备。Guest OS的操作被VMM捕获并交给Host OS的用户态进程,由其进行系统调用

(5)硬件辅助虚拟化:其核心思想就是让虚拟机能直接使用物理设备。通过采用DMA重映射和I/O页表来解决I/O地址访问和DMA的问题。

9. 存储虚拟化

(1)目标:实现与应用/网络无关的数据存储和管理。(抽象隔离)

(2)存储系统的基本结构

  • 文件/记录层:为上层应用提供存储访问接口。
  • 块聚合层:将底层存储设备聚合为统一存储资源。
  • 存储设备层:识别数据块存储的物理位置,执行物理设备的数据读写。

(3)存储设备层虚拟化:不同类型的物理磁盘实现统一的寻址。

(4)块聚合层虚拟化:整合不同的物理存储设备。基本策略是先将多个物理存储器虚聚合成一个单一的虚拟存储器,提高容量、可靠性等;再将虚拟存储器划分成多个小存储器分配给用户。块聚合层虚拟化可分为带内虚拟化(In-band)带外虚拟化(Out-of-band)

  • 带内虚拟技术是在数据读写的过程中,在主机到存储设备的路径上实现存储虚拟化;
  • 带外虚拟技术是在数据读写之前,就已经做好了虚拟工作,而且实现虚拟的部分并不在主机到存储设备的访问路径上。
  • 所以带内虚拟技术可以基于主机、设备和存储网络实现,而带外虚拟技术则只能是基于存储网络实现。

(5)文件/记录层虚拟化:整合不同的文件系统,是上层用户能够透明、高效地访问存储在远程的文件。

10. 网络设备虚拟化

(1)适应云计算环境的需求:增加容量、应对横向流量、大缓存底延迟等。

(2)技术要点:网络交换设备层面实施虚拟化。

(3)2种形式:

  • 横向整合:多个变一个
  • 纵向分割:VLAN等

 

五、Web技术

1. Web应用的3层模型

  • 表示层:用于表现用户界面。分为客户端和服务器端。
  • 应用层:用于实现应用逻辑。
  • 数据层:有持久性数据存储构成。

2. 基于插件的Web呈现技术

  • Flash
  • Silverlight
  • JavaFX

3. 基于浏览器的Web呈现技术

  • HTML5:实现网页结构与内容描述的扩展,满足功能需求,满足离线使用需求
  • CSS3:页面显示特效,更接近客户端效果
  • Ajax:部分、异步交互数据,避免页面重载导致的不连贯

4. 云计算呈现技术并不等同于Web技术,也不是实现云服务交付的必需手段,而只是针对SaaS这种交付模型的。

 

六、多租户技术(

1. 目标:使多个用户(租户)在逻辑上同时访问同一个应用。

2. 基本思想:多用户的环境下共用相同的系统或者程序组件,并且确保各个用户数据和操作的隔离性。

3. 多租户技术的7个特点(要求)

(1)使用隔离(usage isolation):一个租户的使用行为不会影响到该应用对其他租户的可用性和性能。
(2)数据安全(data security):租户不能访问其他租户的数据。
(3)可恢复性(recovery):每个租户的数据备份和恢复过程都是分别执行的。
(4)应用升级(application upgrade):共享软件构件的同步升级不会对租户造成负面影响。
(5)可扩展性(scalability):根据现有租户增长的使用需求或租户数量的增加来扩展应用。
(6)使用计费(metered usage):根据租户实际使用的应用处理和功能来收费。
(7)数据层隔离(data tier isolation):租户拥有独立的且与其他租户隔离的数据库、表格和模式。

 

七、服务技术(

1. SOA模型

(1)SOA不太关注如何对应用程序进行模块化构建,更多的是关注如何通过分布式、单独维护和部署的软件组件的集成来组成应用程序。这些通过技术和标准来实现,通过技术和标准使得组件能够更容易地通过网络(尤其是IP网络)进行通信和协作。

(2)3种角色:

  • 服务提供者(Service Provider)
  • 服务请求者(Service Requester/Consumer)
  • 服务代理(Service Registry/Broker/Repository)

(3)1种媒介:服务总线(Service Bus)

(4)3种操作:

  • 发布(Publish)
  • 查找(Discover)
  • 绑定(Bind)

2. 微服务架构(Microservices Architecture)

(1)是一种软件架构风格,通过将传统的单块架构(Monolithic Architecture)的应用拆分成一组细粒度的微服务。

(2)每个微服务运行在独立的进程中,可以单独部署,采用不同的编程语言, 通过语言无关的轻量级的通信机制进行相互调用,实现软件系统的松耦合

(3)基础框架和组件:

  • 注册中心
  • 服务网关
  • 断路器(容错的保护,服务失效的应急措施)

(4)特性:资源复制、弹性扩展(很好地扩展、组合了各种功能)

(5)微服务技术对云计算的弹性、高可用性等特性的支撑作用:

  • 微服务技术对云计算的弹性的支撑作用:云计算的弹性是一种能力,是指云根据运行时条件或云用户或云提供者事先确定的要求,自动透明地拓展 IT 资源。使用微服务架构,可以将每种服务对应的各个小逻辑和其所需的数据封装起来,这样封装之后每个小的服务模块都可以独立部署和运行,因此可以弹性地扩展每一个小模块,同时还可以弹性组合各个模块的功能,由此说明了微服务技术对云计算的弹性的支撑作用。
  • 微服务技术对云计算的高可用性的支撑作用:高可用性通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。在微服务技术中,每一个微服务都会部署多个服务实例来为客户端提供服务,保证了服务高可用,说明了微服务技术对云计算的高可用性的支撑作用。

3. SOA与微服务架构的对比

SOA 微服务架构
应用程序服务的可重用性的最大化 专注于解耦
系统性的改变需要修改整体 系统性的改变是创建一个新的服务
DevOps和持续交付正在变得流行,但还不是主流 强烈关注DevOps和持续交付
专注于业务功能重用 更重视“上下文边界”的概念
通信使用企业服务总线ESB 对于通信而言,使用较少精细和简单的消息系统
支持多种消息协议 使用轻量级协议,例如HTTP,REST或Thrift API
对部署到它的所有服务使用通用平台 应用程序服务器不是真的被使用,通常使用云平台
容器(如Docker)的使用不太受欢迎 容器在微服务方面效果很好
SOA服务共享数据存储 每个微服务可以有一个独立的数据存储
共同的治理和标准 轻松的治理,更加关注团队协作和选择自由

 

八、云数据处理关键技术(

1. 分布式协同管理

(1)通过同步机制控制并发操作,避免数据不一致

(2)常用的并发控制方法

  • 基于锁的并发控制:两阶段锁协议、多副本的锁机制
  • 基于时间戳的并发控制:基于全局唯一的时间戳
  • 乐观并发控制机制:尽管可能有多个写操作同时试图写同一个日志位置,但只会有1个成功
  • 基于版本的并发控制

2. Google Chubby并发控制

(1)分布式锁服务,通过文件操作实现锁操作:文件代表锁

(2)主要目标

  • 高可用性、高可靠性
  • 性能、吞吐和空间占用不关心

(3)基本架构:客户端和服务器端,两者通过远程过程调用(RPC)来连接。

  • 客户端每个客户应用程序都有一个Chubby程序库,所有应用都是通过调用这个库中的相关函数来完成。
  • 服务器端又称Chubby单元,一般由五个称为副本(Replica)服务器组成,它们配置上完全一致,且系统开始时处于对等地位。

3. 集群和平台管理

(1)集群的自动化部署:安装配置OS、DFS、分布式计算程序、作业管理软件、系统管理软件等。

(2)集群作业调度:

  • 基于资源管理器调度作业的运行节点和时间
  • Google Work Queue:调度管理MapReduce任务

4. 分布式文件系统

(1)基本特征:容量大高可靠高可扩展适于顺序读

(2)基本需求:数据冗余、异构性、一致性、高效性、安全性

(3)基本架构:

  • 多层次容错
  • 原子操作保证一致性
  • 自动复制
  • 按块存储,并行读取,效率高

(4)HDFS(Hadoop Distributed File System)

  • 容量大
  • 高可靠性、快速访问、高扩展性
  • 针对MapReduce设计:数据尽可能根据其本地局部性进行访问和计算
  • 采用主-从结构(Master/Slave)。NameNode维护集群内的元数据,对外提供创建、打开、删除和重命名文件或目录的功能。DataNode存储数据,并提负责处理数据的读写请求。DataNode定期向NameNode 上报心跳,NameNode通过响应心跳来控制DataNode。

5. 去中心化存储

(1)应用于文件、对象等数据类型

(2)基于一致性哈希的原数据管理:数据ID哈希→节点ID

(3)特点:扩展性好,访问效率高,但路由成本高。

6. 分布式数据库(NoSQL)

(1)NoSQL类型

  • Key-value(K-V数据库):使用键值(key-value)存储的数据库,其数据按照键值对的形式进行组织、索引和存储。
  • Document-based(文档数据库):旨在将半结构化数据存储为文档的一种数据库,通常以JSON或XML格式存储数据。
  • Column-based(列式数据库):以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。
  • Graph-based(图形数据库):应用图像理论存储实体之间的关系信息,解决关系型数据库存储和处理复杂关系型数据功能较弱的问题。

(2)优点

  • 非关系型,不需要表
  • 数据被复制到多个节点,可以进行分区
  • 可水平扩展
  • 成本低,易于实施
  • 适于海量数据写入
  • 快速键值访问

(3)缺点

  • 不完全支持关系型特征,e.g. join, group by
  • 没有声明式查询语言,e.g. SQL
  • 事务库事务功能的缺失,e.g. ACID
  • 不易于与其他支持SQL的应用软件集成

(4)NoSQL数据库与传统的关系数据库之间的关系

  • 关系数据库读写慢,处理海量数据效率低下。而NoSQL处理数据快,适合于云计算中处理大量数据,支持海量数据的分布式存储。
  • 关系数据库支持SQL而NoSQL不支持。
  • NoSQL不是关系型数据库管理系统,它支持处理非结构化的数据,主要用于云计算上。而传统的关系数据库则很难处理大量的非结构化数据。
  • 关系数据库成本高,NoSQL数据库成本低廉。
  • 关系数据库很难实现扩展,通常是纵向扩展,但到达一定程度时只能横向扩展。而NoSQL很容易实现可伸缩性,包括向上扩展与水平扩展。

7. MapReduce技术

(1)基本思想:“分而治之、映射和归约",即将一个需要处理海量数据的大任务分解成若干个处理数量级更低的数据的小任务,并通过分配到不同的计算设备上,高性能地并行解析、计算,最后再归并汇总计算,得到结果。

(2)用于大数据处理的合理性:对比起普通的数据串行处理,海量的数据处理会花费大量的时间,效率低下;而MapReduce技术通过将大数据划分为很多个数据块,自动调度计算节点来并行处理相应的数据块,使得一个大任务可以分配到多个节点运行;而中间结果数据会进行合并,使得数据通信开销减少,最后再归并汇总成所要的结果,提升了整个任务处理的效率和设备的利用率,降低了运行时间和传输开销,使得计算性能得到优化。同时,MapReduce还支持出错检测和恢复,通过监控一个节点的运行状态和时间来判断其是否正常,提高了技术的可靠性。

(3)程序组成

  • Mapper用于将文件中的大数据筛选并以键值对的形式输入到系统中。
  • Combiner用于将Mapper读取的数据按照键进行简单的汇总。
  • Partitioner用于按照给定的划分规则划分分区,将数据分别传输到不同的Reducer中。
  • Reducer分成多个,每个Reducer将接收到的数据进行统计和求值,以键值对的方式输出需要的数据。
  • Driver接收从多个Reducer中得到的数据并汇总,生成文件。

(4)MapReduce 计算模式与一般的分布式计算、并行计算的异同:

  • 同:把一个大问题分解成许多子问题,利用多个计算节点/CPU 核心分别进行处理,以缩短解决整个问题的时间。
  • 异:并行计算是相对于串行计算而言的,它通常关注单个节点上的多个 CPU 核心之间的并行协作,而不是节点间的通信。 MapReduce 和分布式计算通常将任务分发到网络中的多个节点,分别处理后再汇总结果。 MapReduce 对一次计算过程的 Map 和 Reduce 阶段做了明显的定义和区分,而一般的分布式计算根据任务的不同有可能具有其他形式的阶段性特征。

 

(四)基本云安全

一、云安全概念

1. 保密性完整性真实性可用性是可以与衡量安全性相关联的特性(云安全属性)(

(1)保密性(Confidentiality):只有被授权方才能访问的特性
(2)完整性(Integrity):未被未授权方篡改的特性
(3)真实性(Authenticity):事物是由经过授权的源提供的特性
(4)可用性(Availability):在特定的时间段内可以访问和可以使用的特性

2. 威胁漏洞风险是与衡量和评估不安全性或者安全性缺乏相关联的。(

(1)威胁(Threat):潜在的安全性违反,可能试图破坏隐私并导致危险。
(2)漏洞(Vulnerability):可能是因为安全控制保护不够或者是因为攻击,击败了现有的安全控制而被利用的一种弱点。
(3)风险(Risk):执行一个行为带来损失或危害的可能性。确定IT资源的风险的2个标准:

  • 威胁利用IT资源中漏洞的概率
  • 如果IT资源被损害,预期会造成的损失

3. 安全控制、安全机制和安全策略是与建立支持改进安全性的对策和保护措施相关联的。

(1)安全控制(Security Controls):用来预防或响应安全威胁以及降低或者避免风险的对策
(2)安全机制(Security Mechanisms):构成保护IT资源、信息和服务的防御框架的组成部分。(对策常以安全机制的形式来描述)
(3)安全策略(Security Policy):建立了一套安全规则和规章。(安全策略会确定安全控制和安全机制的定位和使用)

4. 4种威胁作用者(

(1)匿名攻击者(Anonymous Attacker):云中没有权限的不被信任的云服务用户。
(2)恶意服务作用者(Malicious Service Agent):能截取转发云内的网络流量。
(3)授信的攻击者(Trusted Attacker):与同一云环境中的云用户共享IT资源, 试图利用合法的证书来把云提供者以及与他们共享IT资源的云租户作为攻击目标。
(4)恶意的内部人员(Malicious Insider):人为的威胁作用者,他们的行为代表云提供者或者与之有关。

5. 6种云安全威胁(

(1)流量窃听(Traffic Eavesdropping):当数据在传输到云中或在云内部传输时被恶意的服务作用者被动地截获,用于非法的信息收集的目的。这种攻击的目的就是直接破坏数据的保密性,可能也破坏了云用户和云提供者之间关系的保密性
(2)恶意媒介(Malicious Intermediary)威胁:消息被恶意服务作用者截获并且篡改,因此可能会破坏消息的保密性和完整性。它还可能在把消息转发到目的地之前注入有害的数据。
(3)拒绝服务(Denial of Service)攻击:目标是使IT资源过载至无法正确运行。成功的 DoS 攻击使得服务器性能恶化或失效。DoS通常是以下方式之一发起的:

  • 云服务上的负载由于伪造的消息或重复的通信请求不正常地增加。
  • 网络流量过载,降低了响应性,性能下降。
  • 发出多个云服务请求,每个请求都设计成消耗过量的内存和处理资源。

(4)授权不足(Insufficient Authorization)攻击:错误地授予了攻击者访问权限或是授权太宽泛,导致攻击者能够访问到本应该受保护的IT资源。授权不足的结果通常是攻击者获得了对某些 IT 资源的直接访问的权利,这些IT资源实现的时候是假设只能是授信的用户程序才能访问的。
(5)虚拟化攻击(Virtualization Attack):利用虚拟化平台中的漏洞来危害虚拟化平台的攻击类型。云提供者给予用户的虚拟化IT资源的管理权限,用户滥用权限攻击底层的物理资源。目的是危害虚拟化平台的保密性、完整性和可用性。
(6)信任边界重叠(Overlapping Trust Boundaries):如果云中的物理IT资源是由不同的云服务用户共享的,那么这些云服务用户的信任边界是重叠的。信任边界重叠使得恶意用户可以通过威胁共享资源实现对其他用户的攻击。

 

二、云安全机制

1. 加密(encryption)(

(1)加密是一种数字编码系统,专门用来保护数据的保密性完整性,用于对抗流量窃听恶意媒介授权不足信任边界重叠这样一些安全威胁。

(2)加密部件(cipher):加密用的标准化算法,把原始的明文数据(plaintext)转换成加密的密文数据(ciphertext)。

(3)2种加密类型

  • 对称加密:维护并验证了数据的保密性,但不具备不可否认性(因为如果有多于一方拥有密钥,就无法确定到底是哪一方执行的消息加密或解密)。
  • 非对称加密:私钥加密提供真实性、不可否认性和完整性保护(证明是私钥拥有者加密),但不提供保密性保护(任何拥有相应公钥的一方都能正确解密);公钥加密提供保密性保护(只能被私钥拥有者解密),但不能提供数据的完整性和真实性保护(公钥共有的本质)。

2. 哈希(Hashing)(

(1)哈希是一种单向的不可逆转的数据保护,用来获得消息的哈希代码或消息摘要(message digest),通常是固定的长度,小于原始的消息大小。

(2)消息发送者可以用哈希机制把消息摘要附加到信息后面,接受者对收到的信息使用同样的哈希函数,验证生成的消息摘要和与消息一同收到的消息摘要是否一致。

(3)用于减轻恶意媒介授权不足

3. 数字签名(digital signature)(

(1)方法:将消息进行哈希,然后用私钥进行加密。

(2)作用:提供不可否认性数据真实性数据完整性

(3)用于缓解恶意媒介授权不足信任边界重叠

(4)数字证书:带数字签名的数据结构,验证证书拥有者身份以及相关信息。通常是由第三方证书颁发机构(CA)签发的。

4. 身份与访问管理(identity and access management, IAM)

(1)身份与访问管理机制包括控制和追踪用户身份以及IT资源、环境、系统访问特权的必要组件和策略。

(2)4个组成部分

  • 认证(Authentication)
  • 授权 (Authorization)
  • 用户管理(User Management)
  • 证书管理(Credential Management)

(3)用于对抗授权不足拒绝服务攻击信任边界重叠

5. 单一登录(single sign-on, SSO)

(1)单一登录机制使得一个云服务用户能够被一个安全代理认证并建立起一个安全上下文,当云用户要访问其他云服务或资源的时候,这个上下文会被持久化。

(2)实现跨云服务的用户认证和授权。

6. 基于云的安全组(cloud-based security group)

(1)基于云的资源分割,网络被分成逻辑的基于云的安全组,形成逻辑网络边界。

(2)云资源分割为不同用户和组创建各自的物理和虚拟IT环境的过程。云资源分割是虚拟化的基础。

(3)对抗拒绝服务授权不足信任边界重叠

7. 强化的虚拟服务器影响

(1)强化(Hardening):把不必要的软件从系统中剥离出来,限制可能被攻击者利用的潜在漏洞的过程。包括去除冗余的程序,关闭不必要的服务器端口,关闭不使用的服务,内部root用户和guest访问等。

(2)对抗拒绝服务授权不足信任边界重叠

 

(五)云基础设施机制

一、6种云基础设施机制

1. 逻辑网络边界

(1)定义:将一个网络环境与通信网络的其他部分隔离开来,形成了一个虚拟网络边界.

(2)作用:将云中的IT资源与用户或非用户隔离。

(3)虚拟网络边界包括:

  • 虚拟防火墙(virtual firewall):一种IT资源,可以主动过滤被隔离网络的网络流量,并控制其与Internet的交互。
  • 虚拟网络(virtual network):一般通过VLAN形成,这种IT资源用来隔离数据中心基础设施内的网络环境。

2. 虚拟服务器

(1)虚拟服务器是一种模拟物理服务器的虚拟化软件。

(2)虚拟服务器是最基本的云环境构建块

(3)从映像文件进行虚拟服务器的实例化是一个可以快速且按需完成的资源分配过程。

(4)通过安装或释放虚拟服务器,云用户可以定制自己的环境。这个环境独立于其他正在使用由同一底层物理服务器控制的虚拟服务器的云用户。

3. 云存储设备

(1)云存储设备是指专门为基于云配置所设计的存储设备。

(2)在支持按使用计费的机制时,云存储设备通常可以提供固定增幅的容量分配

(3)每个云存储等级对应的云存储设备和相关联的技术接口:

  • 文件(file):存放于文件夹中
  • (block):存储的最低等级,最接近硬件,可被独立访问的最小数据单位
  • 数据集(dataset):基于表格的以分隔符分隔的以记录形式组织的数据集合
  • 对象(object):将数据及其相关的元数据组织为基于Web的资源
  • 网络存储接口:使用文件存储块存储
  • 对象存储接口:各种类型的数据都可以作为Web资源被引用和存储
  • 数据库存储接口:分为关系数据存储和非关系数据存储(NoSQL)

4. 云使用监控

(1)云使用监控机制是一种轻量级的自治软件程序,用于收集和处理IT资源的使用数据

(2)使用数据发送到日志数据库,以便进行后续处理和报告。

(3)3种常见的基于代理的实现形式:

  • 监控代理(monitoring agent):监控代理是一个中间的事件驱动程序,对数据流进行透明的监控和分析。(e.g. 网络流量和信息指标)

云服务用户向云服务发送请求消息(1),监控代理拦截此消息,收集相关使用数据(2),然后将其继续发往云服务(3a)。监控代理将收集到的使用数据存入日志数据库(3b)。云服务产生应答消息(4),并将其发送回云服务用户,此时监控代理不会进行拦截(5)。

  • 资源代理(resource agent):资源代理是一种处理模块,在资源软件级别监控预定义的且可观测事件的使用指标。(e.g. 启动、暂停、恢复和垂直扩展)

资源代理主动监控虚拟服务器,并检测到使用的增加(1)。资源代理从底层资源管理程序收到通知,虚拟服务器正在进行扩展,按照其监控指标,资源代理将收集的使用数据存入日志数据库(2)。

  • 轮询代理(polling agent):轮询代理是一种处理模块,通过轮询IT资源来周期性地监控IT资源状态。(e.g. 正常运行时间与停机时间)

轮询代理监控虚拟服务器上的云服务状态,它周期性地发送轮询消息,并在数个轮询周期后接收到使用状态为“A”的轮询响应消息。当代理接收到使用状态为“B”时(1),轮询代理就将新的使用状态记录到日志数据库中(2)。

5. 资源复制

(1)定义:对同一个IT资源创建多个实例,通常在需要加强IT资源的可用性和性能时执行。

(2)资源复制机制使用虚拟化技术来复制基于云的IT资源。

6. 已就绪环境

(1)已就绪环境机制是PaaS云交付模型的定义组件,代表的是预定义的基于云的平台,该平台由一组已安装的IT资源组成,可以被云用户使用和定制。

(2)典型的已就绪环境包括预安装的IT资源,如数据库、中间件、开发工具和管理工具。

 

(六)特殊云机制

一、自动伸缩监听器(automated scaling listener)(

1. 自动伸缩监听器机制

(1)是一个服务代理,监控和追踪云服务用户和云服务之间的通讯,用以动态自动伸缩

(2)自动伸缩监听器通常部署在靠近防火墙的位置,来自动追踪负载状态信息。

2. 自动伸缩的判定条件:负载量,具体大致是两种——

(1)云用户发送的请求的数量

(2)某种类型的请求引发的后端处理需求量(虚拟机节点的资源占用率)

3. 自动伸缩的机制应对:

(1)根据云用户事先定义的参数,自动伸缩IT资源(auto-scaling);

(2)当负载超过当前阈值或低于已分配资源时,自动通知云用户(auto-notification)。

三个云用户视图同时访问一个云服务(1)。自动伸缩监听器扩展启动创建该服务的三个冗余实例。第四个云服务用户试图使用该云服务(3)。预先设定只允许云服务有三个实例,自动伸缩监听器拒绝了第四个请求,并通知云用户超出了请求负载限度(4)。云服务的云资源管理员访问远程管理环境,调整供给设置并增加冗余的实例限制。

 

二、负载均衡器(load balancer)

1. 负载均衡器机制

(1)是一个运行时代理,主要用于把负载在两个或更多的IT资源上做负载均衡

(2)负载均衡器通常位于产生负载的IT资源和执行负载处理的IT资源之间的通讯路径上。

2. 负载均衡器可以执行不同的运行时负载分配功能:

(1)非对称分配:较大的工作负载被送到具有较强处理能力的IT资源。

(2)负载优先级:负载根据其优先等级进行调度、排队、丢弃和分配。

(3)上下文感知的分配:根据请求内容的指示把请求分配到不同的IT资源。

3. 负载均衡机制的载体

(1)多层网络交换机

(2)专门的硬件设备

(3)专门的基于软件的系统(在服务器操作系统中比较常见)

(4)服务代理(通常由云管理软件控制)

 

三、SLA监控器(SLA monitor)(

1. SLA监控器机制

(1)用来专门观察云服务的运行时性能,确保它们履行了SLA中报告的约定的QoS需求

(2)SLA监控器收集的数据由SLA管理系统处理并集成到SLA报告的标准中。

 

四、按使用付费监控器(pay-per-use monitor)(

1. 按使用付费监控器机制

(1)按照预先定义好的定价参数测量云资源使用,并生成使用日志用于计算费用

(2)按使用付费监控器收集的数据由计费管理系统进行处理。

(3)典型的监控变量包括:

  • 请求/响应消息数量
  • 传送的数据量
  • 带宽消耗
  • 服务实例的状态

2. 按使用付费监控器的实现方式:

(1)监控代理:通过在整个服务端的入口监控用户的请求来间接地判断用户使用云服务的情况。

  • 优点: 只需在云集群的入口部署, 使用维护方便。
  • 缺点: 因为不是直接对实际情况检测,所以监测的值可能不够准确。

云服务用户向云服务发送请求消息(1)。按使用付费监控器截获该消息(2),将它转发给云服务(3a),按照监控指标把使用信息存储起来(3b)云服务将响应消息转发回云服务用户,提供所请求的服务(4)。

(2)资源代理:需要在部署在各个资源前,实时地轮询每一个资源的使用情况。

  • 优点: 针对每一种资源进行实时的监测, 能够及时正确的反映资源的使用情况。
  • 缺点: 因为需要对每一个资源进行监测, 所以需要的监控代理数量会比较多, 维护麻烦。

云用户请求创建一个新的云服务实例(1)。IT资源被实例化了,按使用付费监控器从资源软件处收到“启动”事件通知(2)。按使用付费监控器在日志数据库中存储时间戳的值。云用户稍后请求停止该云服务实例(4)。按使用付费监控器收到来自资源软件的“停止”事件通知(5),将时间戳值存储到日志数据库中。

 

五、审计监控器(audit monitor)(

1. 审计监控器机制用来收集网络和IT资源的审计记录数据用以满足管理需要或者合同义务。

2. 监控代理实现示例:它截获“登录”请求,在日志数据库中存储请求者的安全证书,以及成功和失败的登录尝试,以供今后审计报告之用。

云服务用户请求访问云服务,发送一个带有安全证书的登录请求信息(1)。审计监控器截获该信息(2),将它转发给认证服务(3)。认证服务处理安全证书。除了登录尝试的结果之外,还为该云服务用户生成一个响应信息(4)。审计监控器截获响应信息,按照该组织的审计策略要求,将收集到的整个登录事件都存储到日志数据库中(5)。访问已被授权,响应被发回给云服务用户。

 

六、故障转移系统(failover system)(

1. 故障转移系统机制

(1)通过使用现有的集群技术提供冗余的实现来增加IT资源的可靠性可用性

(2)只要当前活跃的IT资源变得不可用时,便会自动切换到冗余的或待机IT资源实例上。

2. 故障转移系统的2种基本配置

(1)主动-主动:IT资源的冗余实现会主动地同步服务工作负载,在活跃的实例之间需要进行负载均衡。当发现故障时,会把失效的实例从负载均衡调度器中移除,仍然保持可运行的IT资源会接管处理工作。

(2)主动-被动:当发现故障时,待机或非活跃的实现会被激活,从变得不可用的IT资源处接管处理工作,相应的工作负载会被重定向到接管操作的这个实例上。

 

七、虚拟机监控器hypervisor)(

1. 虚拟机监控器机制是虚拟化基础设施的最基本部分,主要用来在物理服务器上生成虚拟服务器实例。

2. 虚拟机监控器通常受限于一台物理服务器,因此只能创建那台服务器的虚拟映像。

3. VIM提供了一组特性来管理跨物理服务器的多虚拟机监控器。

具有自动伸缩能力的虚拟服务器正在经历工作负载的增加(1)。由于虚拟服务器底层的物理服务器正在被其他虚拟服务器使用,VIM决定无法进行扩展(2)。

VIM命令繁忙的物理服务器上的虚拟机监控器挂起该服务器的执行(3)。然后VIM命令在空闲的物理服务器上实例化该虚拟服务器。状态信息(e.g. 脏的内存页和处理器寄存器)通过共享云存储设备进行同步(4)。VIM命令新物理服务器上的虚拟机监控器继续执行虚拟服务器的处理(5)。

 

八、资源集群(resource cluster)

1. 资源集群机制

(1)定义:把多个IT资源实例分为一组,使得他们能像一个IT资源那样进行操作。

(2)通过高速专用网络连接或者集群结点实现工作负载、任务调度、数据共享和系统同步等通讯要求。

2. 资源集群的3种常见类型

(1)服务器集群:提高性能和可用性。

(2)数据库集群:提高数据可用性和维持数据的一致性。

(3)大数据集集群:实现数据的分区和分布。

3. 资源集群的2种基本类型

(1)负载均衡的集群:保持集中管理的特性下实现了在集群结点中的分布式工作负载。

(2)高可用集群:在多节点失效的情况下保持系统的可用性,需要冗余实现和故障转移机制。

 

九、多设备代理(multiple-device broker)

1. 多设备代理机制

(1)用于运行时的数据转换,克服云服务和多样性的云服务用户之间的不兼容性使得云服务能够被更广泛的云服务用户程序和设备所使用。

(2)需要创建映射逻辑来改变运行时交换的信息。

2. 多设备代理通常是作为网关存在的:

  • XML 网关:传输和验证XML数据。
  • 云存储网关:转换云存储协议并对云存储设备进行编码,以帮助数据传输和存储。
  • 移动设备网关:把移动设备使用的通信协议转换为与云服务兼容的协议。

 

十、状态管理数据库

1. 是一种存储设备,用来暂时地持久化软件程序的状态数据,软件程序可以把状态数据卸载到数据库中。

2. 替代状态数据缓存在内存中的一种方法,用以降低程序占用的运行时的内存量

3. 状态管理数据库使得软件程序和周边的基础设施都具有更大的可扩展性。

 

(七)云管理机制

一、4种云管理机制

1. 远程管理系统

(1)远程管理系统机制向外部云资源管理者提供工具和用户界面来配置并管理基于云的IT资源。

(2)远程管理系统能够建立一个入口以便访问各种底层系统的控制与管理功能,包括资源管理、SLA管理和计费管理。

(3)远程管理系统创建的2种类型入口:

  • 使用与管理入口:一种通用入口,集中管理不同的基于云的IT资源,并提供IT资源使用报告。
  • 自助服务入口:本质上是一个购买门户,允许云用户搜索云提供者提供的最新云服务和IT资源列表。

云资源管理者通过使用与管理入口对一个已被租用的虚拟服务器(图中未显示)进行配置,以便托管(1)。云资源管理者通过自助服务入口选择并请求供给一个新的云服务(2)。云资源管理者再次访问使用与管理入口,完成对新供给云服务的配置,该云服务托管于(1)中所提的虚拟服务器上(3)。通过以上步骤,远程管理系统与必要的管理系统进行交互,实现对请求的处理(4)。

2. 资源管理系统

(1)资源管理系统机制帮助协调IT资源,以便相应云用户和云提供者执行的管理操作。

(2)资源管理系统的核心是虚拟基础设施管理器VIM),用于协调服务器硬件,这样就可以从最合适的底层物理服务器创建虚拟服务器实例。

(3)云资源管理者可以访问资源管理系统的功能,其中2种访问形式:

  • 外部访问使用与管理入口:云用户的云资源管理者
  • 直接访问本地VIM控制台:云提供者的云资源管理者
资源管理系统访问方式 优点 缺点
外部访问 不受物理位置限制,可远程访问 受网络质量影响
本地 VIM 控制台 不受网络质量影响 受地理位置限制

3. SLA管理系统

(1)SLA管理系统机制代表的是一系列商品化的可用云管理产品,这些产品提供的功能包括:SLA数据的管理、收集、存储、报告以及运行时通知。

(2)部署SLA管理系统时,常常会包含一个QoS测量库,用于存储和检索被手机的基于预定义指标和报告参数的SLA数据。收集SLA数据需要依靠一个或多个SLA监控器

云服务用户与云服务交互(1)。SLA监控器截获交换消息,评估此次交互,收集相关运行时数据,这些数据与定义在云服务SLA中的服务质量保证有关(2A)。收集到的数据存储在服务质量测量库中(2B),它是SLA管理系统的一部分(3)。通过使用与管理入口,外部云资源管理者可以发出查询和生成报告(4);或者通过SLA管理系统的本地用户界面,内部云资源管理者可以发出查询和生成报告(5)。

4. 计费管理系统

(1)计费管理系统机制专门用于收集和处理使用数据,它涉及云提供者的结算和云用户的计费。

(2)计费管理系统依靠按使用付费监控器来收集运行时使用数据,这些数据存储在按使用付费测量库中,用于计费、报告和开发票等目的。

(3)3种定价模型:

  • 按使用付费模型
  • 固定费率模型
  • 按分配付费模型
  • 还可以使用上述模型的组合。

(4)2种支付类型:

  • 使用前支付
  • 使用后支付:分为预定义限值和无限制使用

云服务用户与云服务交互(1)。按使用付费监控器跟踪使用情况,并收集与计费相关的数据(2A),然后将数据发送到计费管理系统中的按使用付费测量库(2B)。系统定期计算综合云服务使用费用,并为云用户生成发票(3)。发票可以通过使用与管理入口提供给云用户(4)。

 

二、SLA管理系统与计费管理系统在操作步骤上的主要不同之处

  SLA 管理系统 计费管理系统
使用的监控器不同 SLA 监控器 按使用付费监控器
存放的库不同 服务质量测量库 按使用付费计量库
使用的管理器不同 SLA 管理器 定价与合同管理器
生成内容不同 报告 发票

 

三、IT资源管理方式的优缺点

IT 资源管理方式 优点 缺点
远程管理系统 向外部云资源管理者提供工具和用户界面 受网络质量影响
资源管理系统 协调IT资源,响应管理操作;从最合适的底层服务器创建虚拟服务器实例 虚拟资源迁移可能产生性能上的损失
SLA 管理系统 按服务质量收费,保障服务有效性 难以确定服务崩溃原因
计费管理系统 按使用付费,允许指定不同的定价规则 没有考虑服务质量

 

(八)云架构

一、负载均衡相关

1. 负载分布架构(Workload Distribution Architecture)(

(1)通过增加一个或多个相同的IT资源可以进行IT资源水平扩展,而提供运行时逻辑的负载均衡器能够在可用的IT资源上均衡分配工作负载

(2)负载均衡架构的构成部分:

  • IT资源:资源集群、资源复制
  • 服务入口:负载均衡器、逻辑网络边界
  • 监控与审计:云使用监控器、虚拟机监控器、审计监控器

2. 服务负载均衡架构(Service Load Balancing Architecture)(

(1)工作负载分布架构的一个特殊变种,专门针对扩展云服务来实现的。

(2)在动态分布工作负载中增加负载均衡系统,就创建了云服务的冗余部署

(3)云服务实现的副本被组织成一个资源池

(4)负载均衡器的两种形式:

  • 独立于云设备及主机服务器

负载均衡器截获云服务用户发送的消息(1)并将其转发给虚拟服务器,从而使工作负载的处理得到水平扩展(2)。

  • 作为应用程序/服务器环境的内置组件

云服务用户的请求发送给虚拟服务器A上的云服务A(1)。内置负载均衡逻辑包含在云服务实现中,它可以将请求分配给相邻的云服务A,这些云服务A的实现位于虚拟服务器B和C上(2)。

 

二、资源分配与复制相关

1. 资源池架构

(1)以使用一个或多个资源池为基础,其中相同的IT资源由一个系统进行分组和维护,以自动确保它们保持同步。

(2)常见的资源池:物理服务器池、虚拟服务器池、存储池、网络池、CPU池、内存池

(3)层次资源池架构

  • 父子资源池(Parent pools)可以将单个池集合为一个更大的池,在这个更大的资源池中,每个单独的池称为子资源池。
  • 同级资源池(Sibling pools)之间是互相隔离的,云用户只能访问各自的资源池。(大资源池分解得到的IT资源与原资源池不同)
  • 嵌套资源池(Nested pools)可以用于向同一个云用户组织的不同部门或者不同组分配资源池。(IT资源相同,只是数量上有差异)

(4)资源池使能技术(池化机制)

  • 云存储设备虚拟服务器
  • 审计监控器、云使用监控器、虚拟机监控器、按使用付费监控器、逻辑网络边界、远程管理系统、资源管理系统、资源复制

2. 冗余存储架构(Redundant Storage Architecture)

(1)冗余存储架构是存储设备故障容错系统的一部分,要与主云存储设备中的数据保持同步。主设备失效时,存储设备网关把用户请求转向辅设备。

(2)存储设备网关:连接到云存储设备的外部接口。当云用户请求的数据位置发生变化时,它可以自动将云用户请求进行重定位。

(3)主要核心:存储复制系统,用于主云存储设备与辅云存储设备保持同步。

 

三、动态扩展相关

1. 动态可扩展架构(Dynamic Scalability Architecture)(

(1)基于预先定义的扩展条件从资源池中动态分配IT资源,是云资源弹性管理的核心机制。

(2)自动扩展监听器是实现动态扩展的核心部件,监听负载状态以决定何时扩展。

(3)动态扩展的3种类型

  • 动态水平扩展:向内或向外扩展IT资源实例
  • 动态垂直扩展:向上或向下扩展IT资源实例
  • 动态重定位:将IT资源重放置到更大/更小容量的主机上

(4)应用机制

  • 自动扩展监听器资源复制
  • 云使用监控器、虚拟机监控器、按使用付费监控器

(5)负载均衡与动态扩展架构之间的关联性

  • 同:二者都是根据用户需求对IT资源进行分配。
  • 异:负载均衡是静态资源分配(负载均衡不会对IT资源进行扩展,而只是在现有的IT资源上进行均衡分配),并且目的是使服务负载均衡分布;动态扩展则是动态分配资源,根据用户需求的变化而自动扩展回收资源。

2. 弹性资源容量架构(Elastic Resource Capacity Architecture)(

(1)主要与虚拟服务器的动态供给相关,根据负载变化分配和回收CPU与RAM资源,及时响应IT资源的处理请求变化。

(2)扩展逻辑在智能自动化引擎不在监听器):自动扩展监听器发信号给智能自动化引擎,智能自动化引擎运行工作流逻辑触发扩展。

云服务用户增加请求(5),使得自动扩展监听器向智能自动化引擎发送执行脚本的信号(6)。脚本运行工作流逻辑,虚拟机监控器从资源池分配更多IT资源(7)。虚拟机监控器给虚拟服务器分配额外的CPU和RAM,使得增加工作负载得以处理(8)。

(3)变种:智能自动化引擎脚本通过VIM发送其扩展请求,而不是直接发送给虚拟机监控器。

(4)依赖机制:

  • 自动扩展监听器、虚拟机监控器
  • 云使用监控器、按使用付费监控器、资源复制

3. 云爆发架构(Cloud Bursting Architecture)

(1)动态扩展架构的特殊形式,只要达到预先设定的容量阈值,就会从企业内部的IT资源扩展到云中。相应的基于云的IT资源是冗余性预部署,会保持非活跃状态直到发生云爆发。当不再需要这些资源时,基于云的IT资源被释放,回到企业内部环境。

(2)架构基础:自动扩展监听器资源复制机制。自动扩展监听器决定何时重定向到基于云的IT资源,而资源复制机制则维护企业内部和基于云的IT资源之间的状态信息的同步。

4. 弹性磁盘供给架构(Elastic Disk Provisioning Architecture)

(1)建立了一个动态存储供给系统,确保按照云用户实际使用的存储量进行精确计费。

(2)采用自动精简供给技术实现存储空间的自动分配,并进一步支持运行时使用监控来收集准确的使用数据以便计费。

(3)自动精简供给软件安装在虚拟服务器中,通过虚拟机监控器处理动态·存储分配,同时按使用监控器跟踪并报告与磁盘使用数据相关的精确计费。

 

四、虚拟机监控器集群架构(Hypervisor Clustering Architecture)

1. 建立了一个跨多个物理服务器高可用虚拟机监控器集群。

2. 虚拟机监控器集群由中心VIM控制,通过常规心跳消息来监测虚拟机监控器的状态。当物理机或者Hypervisor失效时使用共享云存储设备进行VM在线迁移

3. VM在线迁移是一个具有在运行时将虚拟服务器或虚拟服务器实例重新放置能力的系统。

按照预先定义好的计划,物理服务器之间以及和VIM之间相互交换心跳消息(5)。

物理服务器B失效且变得不可用时,危及到虚拟服务器C(6)。其余物理服务器和VIM停止收到来自物理服务器B的心跳信息。

在评估了集群中其他虚拟机监控器的可用容量之后,VIM 选择物理服务器C作为虚拟服务器C的新主机(8)。虚拟服务器C在线迁移到物理服务器C上运行的虚拟监控器上,在正常操作继续进行前,可能需要重启虚拟服务器(9)。

 

五、粗粒度负载均衡与资源预留(

1. 负载均衡的虚拟服务器实例架构(Load balanced virtual server instances architecture)

(1)建立了一个容量看门狗系统(capacity watchdog system),在把处理任务分配到可用的物理服务器主机之前,会动态地计算虚拟服务器实例及其相关的工作负载。(解决了相互隔离的物理服务器工作负载均衡的问题)

(2)容量看门狗系统的组成部分:

  • 容量看门狗云使用监控器:追踪物理和虚拟服务器的使用,并向容量计划器报告任何明显的波动。
  • VM在线迁移程序
  • 容量计划器:负责动态地计算和比较物理服务器的计算能力和虚拟服务器的容量要求。如果容量计划器决定把一个虚拟服务器迁移到另一台主机上以分散工作负载,那么就会发信号给VM在线迁移程序,让它移动该虚拟服务器。

2. 云负载均衡架构(Cloud balancing architecture)

(1)IT资源可以在多个云之间进行负载均衡。

(2)目的

  • 提高服务能力、可扩展性
  • 提高可用性、可靠性
  • 改进负载均衡和资源优化

(3)基础:自动伸缩监控器故障转移系统

  • 根据当前的扩展性和性能要求,自动伸缩监听器把云服务用户的请求重定向到几个冗余的IT资源实现中的一个。
  • 故障转移系统保证在IT资源内或其底层的承载环境出现故障时,冗余的IT资源能够进行跨云的负载均衡。IT资源的失效会被广播,这样自动伸缩监听器可以避免把云服务的请求路由到不可用或者不稳定的IT资源上。

3. 资源预留架构

(1)资源受限(resource constraint)

  • 太多并发访问可能会导致运行时异常。
  • IT资源没有足够的容量。

(2)资源借用(resource borrowing)

  • 一个资源池可以从其他资源池借用IT资源。
  • 当借用该IT资源的云服务拖延使用时间没有归还,就会引发运行时冲突。

(3)资源预留(resource reservation):专门为给定的云用户保留以下资源来避免资源受限和资源借用的情况。

  • 单个IT资源
  • 一个IT资源的一部分
  • 多个IT资源

(4)保留机制:

  • 云存储设备和虚拟服务器
  • 审计监控器、云使用监控器、虚拟机监控器、逻辑网络边界、资源复制

 

六、云服务容错机制

1. 云服务不可用的原因:

  • 运行时需求超出处理能力
  • 维护更新导致的暂时中断
  • 云服务迁移
  • 物理机失效、宕机

2. 应对机制:

  • 服务迁移(不中断服务重定位)
  • 服务故障检测与恢复
  • 物理机容错

3. 不中断服务重定位架构(Non-disruptive service relocation architecture)(

(1)预先定义事件,触发云服务实现运行时复制或迁移

(2)采用VM在线迁移,移动整个承载该云服务的虚拟服务器实例。自动伸缩监听器和负载均衡器机制可以用来触发一个临时的云服务用户请求的重定向,以满足伸缩和工作负载分配的要求。

4. 动态故障检测与恢复架构(Dynamic failure detection and recovery)(

(1)建立起一个弹性的看门狗系统,以监控范围广泛的预先定义的故障场景,并对之作出响应。

(2)依赖于一个智能看门狗监控器,主动追踪IT资源,对预先定义的事件采取预先定义的措施。

(3)动态看门狗系统的5个核心功能:

  • 监视
  • 选定事件
  • 对事件作出反应
  • 报告
  • 升级处理

(4)在发生故障时,智能看门狗监控器参照预先定义好的策略,一步一步地恢复云服务,如果发现问题比预期的更深,就升级这个处理。

5. 零宕机架构

(1)物理机不中断机制,在物理服务器失效时,动态迁移到其他物理服务器上

(2)物理服务器会聚成一组,由容错系统控制,容错系统具有物理服务器迁移时不引起中断的能力。

(3)虚拟服务器都存储在共享介质

 

七、裸机供给与快速供给架构

1. 裸机供给架构(Bare-metal provisioning architecture)

(1)裸机:没有预装操作系统或其他任何软件的物理服务器。

(2)裸机供给架构:弹性增加裸机。

2.  快速供给架构(Rapid provisioning architecture)

(1)实现大范围的IT资源供给的自动化。

(2)依赖于一个由自由供给程序、快速供给引擎以及按需供给的脚本和模板组成的系统。

 

八、存储相关的负载均衡和动态扩展

1. 存储负载管理架构(Storage workload management architecture)

(1)存储负载管理架构使得LUN可以均匀地分布在可用的云存储设备上,而存储容量系统用来确保运行时工作负载均匀地分布在LUN上。

(2)LUN迁移:把LUN从一个存储设备移动到另一个上而无需中断,同时还对云用户保持透明。

(3)云服务负载均衡和存储负载均衡两种负载均衡需求及对应机制的差别:

  云服务负载均衡 存储负载均衡
目的

(1)提高服务能力、可扩展性

(2)提高可用性、可靠性

(3)改进负载均衡和资源优化

为了云存储设备能够被有效的利用。
机制

通过自动伸缩监听器和故障转移系统机制结合来实现:

(1)自动伸缩监听器把云服务用户的请求根据设定重定向到几个冗余的IT资源实现中的一个

(2)故障转移系统保证在IT资源出现故障时,冗余的IT资源能够进行跨云的负载均衡

(1)存储负载管理架构使得LUN可以均匀地分布在可用的云存储设备上

(2)存储容量系统来确保运行时工作负载均匀地分布在LUN上。

2. 跨存储设备垂直分层架构(Cross-storage device vertical tiering architecture)(

(1)通过在不同的存储设备之间垂直扩展,使得系统能够不受带宽和数据处理能力的限制。

(2)LUN能在这个系统中的多个设备间进行向上向下扩展,因此,通过请求就可以使用合适的存储设备层来执行云用户的任务。

 

九、特殊虚拟交换与连接架构(

1. 带宽瓶颈:

(1)用户访问云服务的网络性能瓶颈(应对:弹性网络容量架构)

(2)运输局中心内部云节点间的网络性能瓶颈(应对:负载均衡的虚拟交换架构)

2. 弹性网络容量架构(Elastic Network Capacity Architecture)

(1)用于给网络动态分配额外带宽,以避出现网络瓶颈。

(2)基本机制:

  • 配备可使用共享网络端口的资源池
  • 不同的云用户使用不同的网络端口实现隔离
  • 自动扩展监听器和智能自动化引擎脚本用于检测流量
  • 到达带宽阈值时动态分配额外带宽和网络端口

3. 负载均衡的虚拟交换机架构(Load balanced virtual switches architecture)

(1)建立一个负载均衡系统,提供多条上行链路来平衡多条上行链路或冗余路径之间的网络流量负载,避免出现传输迟缓和数据丢失。

(2)执行链路聚合平衡流量,使得工作负载同时分布在多个上行链路,不会出现网卡超负荷的情况。

 

(九)使用云

一、成本指标与定价模型(

1. 商业成本指标

(1)前期成本:

  • 获得IT资源的成本
  • 部署及管理资源的开销

(2)持续成本:

  • 运行IT资源的成本
  • 维持IT资源的成本

(3)附加成本:

  • 资本成本
  • 已支付成本
  • 集成成本
  • 锁定成本

2. 云使用成本指标

(1)网络使用:网络连接中传输的总量

(2)服务器使用:根据虚拟服务器和已就绪环境的数量来进行量化。

(3)云存储设备使用:云存储通常按预定义时间内的分配空间总量来收费。

(4)云服务使用

 

二、服务质量指标与SLA(

1. 服务质量指标

(1)SLA管理系统两个任务:

  • 周期性测量QoS指标来验证是否与SLA保证相符合
  • 收集与SLA相关的数据,用于各种类型的统计分析

(2)服务质量指标要具有以下特点:

  • 可量化的(quantifiable)
  • 可重复的(repeatable)
  • 可比较的(comparable)
  • 容易获得的(easily obtainable)

(3)5种服务质量指标

  • 可用性:运行时间,故障时间,服务持续时间
  • 可靠性:故障间最小时间间隔,保证的成功响应率
  • 性能:容量,响应时间和交付时间保证
  • 可扩展性:容量波动和响应性保证
  • 弹性:切换和恢复的平均时间

2. 服务可用性指标:

  描述 测量值 频率 云交付模型 示例
可用性比率指标 运行时间的百分比 全部运行时间 每周、每月、每年 IaaS、PaaS、SaaS 至少99.5%的运行时间
停用时间指标 一次停用的时长 停用结束的日期/时间-停用开始的日期/时间 每次有事件发生
 
IaaS、PaaS、SaaS 最长1小时、平均15分钟

3. 服务可靠性指标:IT资源在预先定义的条件下执行它说所期望的功能而不发生故障的概率

  描述 测量值 频率 云交付模型 示例
平均故障间隔时间(MTBF)指标 两次相继发生的服务故障之间的平均时间 ∑,正常运行持续时间之和/故障次数 每月,每年 IaaS,PaaS 平均90天
 
可靠性比率指标 在预先定义的情况下得到成功服务结果的百分比 成功过响应的总数/请求总数 每周,每月,每年 SaaS
 
至少99.5%

4. 服务性能指标:IT资源在预期的情况下执行其功能的能力

  描述 测量值 频率 云交付模型 示例
网络容量指标 网络容量可测量的特性 每秒以位为单位的带宽或吞吐量 持续的 IaaS、PaaS、SaaS 10MB/s
存储设备容量指标 存储设备容量可测量的特性 以GB为单位的存储大小 同上 同上 80GB的存储空间
服务器容量指标 服务器容量可测量的特性 CPU数量,CPU主频,RAM大小,存储空间 同上 同上 主频为1.7GHz的内核一个,16GB RAM,80GB存储空间
Web容量指标 Web应用容量可测量的特性 每分钟的请求速率 同上 SaaS 最大每分钟100000个请求
实例启动时间指标 初始化一个新的实例所需要的时间长度 实例启动的日期/时间 –开始请求的日期/时间 每次有事件发生时 IaaS、PaaS 最多5分钟,平均3分钟
响应时间指标 执行同步操作需要的时间 (请求的日期/时间-相应的日期/时间)/请求的总数 每周、每月、每年 SaaS 平均5毫秒
完成时间指标 完成同步请求操作需要的时间 (请求的日期-响应的日期)/请求总数 同上 PaaS、SaaS 平均1秒

5. 可扩展性指标:IT资源可以达到的最大容量,反映了它适应工作负载波动的能力

  描述 测量值 频率 云交付模型 示例
存储可扩展性(水平)指标 为响应工作负载的增加而允许的存储设备容量的改变 以GB为单位的存储空间大小 持续的 IaaS、PaaS、SaaS 最大1000GB(自动扩展)
服务器可扩展性(水平)指标 为响应工作负载的增加而允许的服务器数量的改变 资源池中的虚拟服务器的数量 持续的 IaaS、PaaS 最少1个虚拟服务器,最大10个虚拟服务器(自动扩展)
服务器可扩展性(垂直)指标 为响应工作负载的波动而允许的服务器容量的改变 CPU个数、RAM大小等 持续的 同上 最多512核,512GRAM

6. 弹性指标:IT资源从运行问题中恢复的能力,通常是基于在不同物理位置上的冗余和资源复制以及各种灾难恢复系统。

实现弹性指标的3个阶段:

  • 设计阶段(design phase):应对挑战准备程度
  • 运行阶段(operation phase):服务中断前中后的服务水平差异
  • 恢复阶段(recovery phase):IT资源从停机中恢复的速度
  描述 测量值 频率 云交付模型 示例
平均切换时间(MTSO)指标 完成从一个出现严重故障的虚拟服务器切换到位于不用地理区域内的复制实例上所需要的时间 (切换日期/时间 –故障发生日期/时间)/故障总数 每月,每年 IaaS、PaaS、SaaS 平均10分钟
平均系统恢复时间(MTSR)指标 弹性系统完整地执行一次从严重故障中恢复所需要的时间 (恢复日期/时间 –故障发生日期/时间)/故障总数 同上 同上 平均120分钟

 

参考材料:

【1】虚拟化技术--全虚拟化、半虚拟化

【2】剖析系统虚拟化(2)- X86虚拟化技术- 嵌入式系统,linux,存储

【3】存储虚拟化,带外带内区别

【4】微服务架构vs. SOA架构

【5】《云计算(第二版)》教材配套课件3—第二章 Google云计算原理与应用(2)

【6】Hadoop实战-初级部分-第二部分 Hadoop介绍

【7】Hadoop核心-HDFS读写流程

【8】NoSQL 还是 SQL ?这一篇讲清楚

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

云计算知识点 的相关文章

  • JavaWeb(13)超市订单管理系统smbms——登录功能及优化

    一 项目搭建 1 搭建一个maven web项目 2 配置Tomcat 3 测试项目是否能够跑起来 4 导入jar包 jsp servlet mysql驱动 jstl stand 5 创建项目包结构 6 编写实体类 ORM映射 表 类映射
  • [Shell] 常用写法

    iF9PzeAQm9 H7oi r6YdLk6 lxJ d c 常识 ls ls lh time style Y m d H M S awk condition move1 move2 文件名1 文件名2 NR 行数 索引 NF 列数 一般
  • JVM--基础--19.4--垃圾收集器--Parallel Scavenge

    JVM 基础 19 4 垃圾收集器 Parallel Scavenge 1 结构图 2 Parallel Scavenge 并行 收集器 2 1 特征 新生代收集器 使用复制算法 并行的多线程收集器 控制的吞吐量 吞吐量 运行用户代码时间
  • Android Surface解析

    源码截图是Android 5 1 1 r6 一 App和Surface的关系是怎样的 不论是用Skia绘制二维图像 还是用OpenGL绘制三维图像 最终Application都要和Surface交互 Surface 是什么 Handle o
  • Ubuntu企业级初始配置实战

    第1章 Ubuntu安装后初始化配置 1 使用xshell远程连接Ubuntu 此部分见老男孩老师视频演示 2 配置Ubuntu网卡 修改网卡配置注意事项 1 ubuntu从17 10开始 已放弃在 etc network interfac
  • ftp登录报错:530 This server does not allow plain FTP. You have to use FTP over TLS

    filezilla 状态 不安全的服务器 不支持 FTP over TLS 相关的详细问题如下 解决方案1 如果服务器是 FileZilla Server 的话 提示信息是 530 This server does not allow pl
  • 【转】Dr.com 5.20破解教程

    Dr com 5 20破解教程 方法一 1 首先下载相关工具 Process Explorer 大家可以自行百度 一般绿色汉化版就可以 右键选择以管理员权限运行process的主程序 然后运行drcom客户端程序drmain exe 并登录
  • 【计算机网络】OSI参考模型与TCP/IP分层模型对比(体系结构对比)

    笔记整理 协议 简单来说 协议就是计算机与计算机之间通过网络实现通信时事先达成的一种 约定 这种约定使得那些由不同厂商的设备 不同的操作系统组成的计算机之间 只要遵循相同的协议就能够实现通信 就好比两个人使用不同国家的语言就行对话 是无法相
  • Selenium(一)2.第一个自动化测试脚本

    前面我们可以成功启动浏览器啦 接下来我们完成第一个自动化测试的脚本 举例 验证打开的链接是Selenium官网页面 分析问题 我们输入了一个url 然后打开网页 那么怎么确定这个页面是我们想要的页面呢 获取页面的url是不是与输入的一致 获
  • QT调用linux echo命令无效的解决方法

    问题 Qt中使用 QProcess execute echo 1 gt myFile 写文件 执行成功后 不生效 但是把打印出的命令放在终端里执行可以生效 原因 网上说 因为echo 是shell内建命令 必须使用如下形式 QProcess
  • 利用Excel数组公式统计各班优秀人数

    期末考试期间 教导处的阿明忙得不亦乐乎 不时地发出感叹 现在各班编在一起考试 统计优秀 及格 低分人数 真让人头疼 我知道他在操什么心 却心不在焉地说 countif函数你不是会用吗 会啊 但是 你看看 全年级各科成绩都在同一个工作表中 比
  • UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might b

    UserWarning This figure includes Axes that are not compatible with tight layout so results might be incorrect self figur
  • 虚拟机实现远程桌面连接

    目录 一 操作方法 二 连接成功 一 操作方法 首先点击控制面板 点击系统 点击改变设置 点击远程 选择允许连接 就可以 启用远程桌面 然后再命令提示符窗口输入 netstat a 查看启用远程桌面后打开的端口3389 表明其他计算机可以连
  • DetNet: A Backbone network for Object Detection 笔记

    Face 的lizeming大神注意到了现有Detection Network的两大通病 借用原本为了class而设计的network 牵强地附加上其他辅助结构来实现Detection 下采样能带来大感受野 从而提升class任务精度 但下
  • 华夏相机开发/臻识相机开发/车牌识别器开发对接使用总结

    最近做了款自助洗车小程序项目 需要用到车牌识别 华夏 臻识这两家相机均有使用 特此记录开发中的问题 1 初次使用 购买途径 当地购买的华夏相机T83 价格贵 且显示屏语音均无法使用 遂只对接了开闸 开发方式 因为自助洗车项目需要保持双端的及
  • PTA天梯赛的赛场安排

    天梯赛使用 OMS 监考系统 需要将参赛队员安排到系统中的虚拟赛场里 并为每个赛场分配一位监考老师 每位监考老师需要联系自己赛场内队员对应的教练们 以便发放比赛账号 为了尽可能减少教练和监考的沟通负担 我们要求赛场的安排满足以下条件 每位监
  • python爬虫需求分析-序:Python爬虫开发与数据分析简介

    爬虫是获取数据一种方式 能够按照一定规则自动抓取某个网站或者万维网信息的程序 现实环境中很大一部分网络访问都是由爬虫造成的 我们来看一个常见应用场景 当我们使用百度或者其他搜索引擎搜索某个关键字的时候 搜索结果中会包含对应的内容 比如 搜索
  • 游戏笔记本电脑推荐 多功能游戏本你见过吗?

    本来安排了一个国庆假期旅游计划 但是计划往往赶不上变化 被好朋友给 放鸽子 了 想着刚好我新买的游戏本到了 作为一个游戏宅 所以就打算呆在家玩玩游戏算了 结果不玩不知道 一玩上就爱不释手 现在甚至想将这款游戏笔记本电脑推荐给大家 它的名字叫
  • Windows主机信息搜集

    注意 一切内容仅用于信息技术分享 切勿用于其他用途 一切后果与作者无关 前言 通过命令执行使用cs拿到了内网的一台主机 接下来我们进行内网的信息搜集 1 内网环境分析 内网渗透 在拿到webshell的时候 想办法获取系统信息拿到系统权限

随机推荐

  • 四个/24地址块,试进行最大可能的聚合

    由于四个地址块前两个字节都相同 只需将每个地址块的第三个字节转换为二进制 212 56 132 0 24 212 56 10000100 0 212 56 133 0 24 212 56 10000101 0 212 56 134 0 24
  • C#控件命名规范

    类 型 前 缀 示 例 Adrotator adrt adrtTopAd BulletedList blst blstCity Button btn btnSubmit Calendar cal calMettingDates CheckB
  • nginx: [emerg] could not build the server_names_hash

    手头有块板子 上面起了nginx配置了多个域名 启动的时候发现报错 nginx emerg could not build the server names hash you should increase server names has
  • pandas中的时间序列

    一 夯实基础 datetime 模块中的数据类型 date 以公历形式存储日历日期 年月日 time 将时间存储为时分秒毫秒 datetime 存储日期和时间 timedelta 表示两个datetime值之间的差 日 秒 毫秒 1 获取当
  • 无效数据处理攻略: 如何从源头开始预防无效数据带来的风险

    数据处理在现代社会中变得越来越重要 而对于数据的可靠性和准确性 我们始终非常关注 然而 即使在对数据进行了精心管理的情况下 无效数据依然可能存在 并可能对数据分析和决策带来不良影响 因此 处理无效数据变得愈发重要 一 什么是无效数据 在处理
  • app数据分析体系 - 用户粘性 DAU,MAU 和 月人均活跃天数

    用户粘性指标 DAU MAU 月均活跃天数 DAU 和 MAU 日活跃用户占月活跃用户的比例越高 表明用户对App的使用粘性越高 DAU 即 Daily Active User 指日活跃用户数 MAU 即 Monthly Active Us
  • 后端进阶之路——深入理解Spring Security配置(二)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 后端进阶之路 文章
  • A/B测试是什么?面试官把我问懵了!

    什么是A B测试 A B测试是为 web 或 app 界面或流程制作两个 A B 或多个版本 在同一时间维度 分别让组成成分相同 相似 的访客群组 目标人群 随机的访问这些版本 收集各群组的用户体验数据和业务数据 最后分析 评估出最好版本
  • Golang 枚举详解

    什么是枚举 枚举 Enumeration 是一种常见的编程概念 它定义了一组命名常量 我们知道在 Go 语言中定义常量是这样的形式 const A a B b 开发者可以使用枚举创建复杂的 有限的常量集 这些常量集具有有意义的名称和唯一的值
  • 将 Bean 注入 Spring 容器的方法

    这里写目录标题 1 Configuration Bean 2 Componet ComponentScan 3 Import 注解导入 3 1 Import 直接导入类 3 2 Import ImportSelector接口 3 3 Imp
  • Microsoft Visual Studio 2013产品激活密钥

    win7 win8 win10系统下Visual Studio 2013各个版本的密钥 Visual Studio Ultimate 2013 KEY BWG7X J98B3 W34RT 33B3R JVYW9 Visual Studio
  • unity3D 物体跟随移动

    脚本挂载移动的物体上 public class Player MonoBehaviour public float Speed 4 Use this for initialization void Start Update is calle
  • c++打怪小游戏——修仙之路1.5

    这次我们要出示的程序是修仙之路1 5版本的 这个程序在c 打怪小游戏 修仙之路1 0多加了好几个功能 这次我们在这个程序中多加了一些代码 我们为下面的优化多准备一个头文件 include
  • MAVEN在IDEA中的应用

    idea集成maven插件 settings gt 输入maven gt 选择本地maven安装路径 配置文件以及本地仓库的路径 创建非web的maven工程 创建工程 gt 选择maven 下一步之后填写项目的坐标 类似于全类名 下一步之
  • Zotero win10/mac/iPad三台设备同步

    刚入坑Zotero 发现同步功能很强大 刚好手上有三台设备 就试着捣鼓了下 最终结果不错 记录一下 参考来源 https sspai com post 64283 少数派 用 Zotero 坚果云搞定多设备文献管理 https blog c
  • 虚拟机中linux_server搭建

    linux server environment 1 Installation in vmware workstation 1 1 steps 略 普通的虚拟机系统安装模式 2 linux 中存储设备的使用 linux 中所有存储设备都是通
  • 华为云服务器无法ssh连接&&可以公网ip访问

    基本是SSH服务没有打开的原因 在华为的配置里面默认打开了22号端口 但是需要修改ssh配置文件 首先从华为云服务管理界面远程登录进去 然后会看到 然后登陆之后修改ssh的配置文件 sudo vi etc ssh sshd config 将
  • Scrapy 爬虫完整案例—从小白到大神(银行网点信息为例)

    采用selenium界面抓取信息 需要渲染界面 并且也是单线程操作 效率极低 一晚上只爬去了一个工行的数据 突然想到了分布式爬虫 安装 Scrapy pip版本过于老旧不能使用 需要升级pip版本 输入python m pip instal
  • OpenCV学习三十三:pointPolygonTest 检测点是否在轮廓内

    opencv函数 pointPolygonTest C double pointPolygonTest InputArray contour Point2f pt bool measureDist 用于测试一个点是否在多边形中 当measu
  • 云计算知识点

    一 理解云计算 一 云计算的基本概念 1 定义 云计算是以服务的形式 按需向用户提供计算资源的一种模式 它是分布式计算的一种特殊形式 引入了效用模型来远程供给可扩展和可测量的资源 2 基本要点 提供IT资源 包括计算 存储以及网络资源 提供