云服务复习提纲
第1章 云计算概述
-
定义
Cloud computing is an information technology(IT) paradigm that enables ubiquitous access to
shared pools of system resources and higherlevel services that can be rapidly provisioned with minimal management effort, often over the Internet.云计算是一种信息技术(IT)范例,可以无处不在地访问共享的系统资源池和更高级别的服务,这些服务可以通过互联网以最少的管理工作进行快速配置
-
基本属性
- On-demand(按需)
- Resource pooling(资源池)
- Ubiquitous network access(任意网络可以访问)
- Location independence(位置独立)
- Rapid elasticity(快速弹性)
- Pay-as-you-go
- Multi-tenancy(多租户)
-
概念和术语
-
可扩展性:指IT资源可以处理增加或减少的使用需求的能力。
-
水平扩展:改变IT资源的数量(物理机cpu不变,改变分配虚拟机数量)
水平分配资源也称为向外扩展(scaling out)。
水平释放资源也成为向内扩展(scaling in)。 -
垂直扩展:改变IT资源容量(增加或减少cpu)
向上扩展(scaling up):分配更大容量的资源。
向下扩展(scaling down):分配更小容量的资源。
对比:
-
-
云服务(cloud service):指任何可以通过云远程访问的IT资源 。
并非云中所有的IT资源都可以被远程访问,其中有公开发布
的API的软件程序可以专门部署为允许远程客户访问 -
云服务用户(cloud service consumer):一个临时的运行时角色,由访问云服务的软件程序担任。
- 云服务用户常见类型:
-
能够通过已发布的服务合同远程访问云服务的软件程序和服务
-
运行某些软件的工作站、便携电脑和移动设备
-
- 云服务用户常见类型:
-
-
交付模式 Service Model
- Software as a Service(SaaS)
- The consumer in this case is an end user
- The consumer uses applications that happen to be running on a cloud
- E.g. e-mail services
- Platform as a Service(PaaS)
- To provide the programming languages and tools for the users to develop and deploy applications on the cloud
- The consumer in this case is a developer.
- E.g., Google App Engine, Microsoft Azure
- Infrastructure as a Service(IaaS).
- To provision processing, storage, networks, and other fundamental computing resources
- The consumer is able to deploy and run arbitrary software, which can include operating systems and applications
- The consumer in this case is a developer or system administrator
- E.g., Amazon EC2
- Software as a Service(SaaS)
-
经济合理性 Economic Justification
- Economies of scale
- Large data centers are cheaper to operate (per unit measure) than small data centers
- Utilization of equipment(设备利用率)
- The key technology is to analyze the load variance pattern, and leverage the pattern to
allocate the load on the resources.(关键技术是分析负载变化模式,并利用模式分配资源负载)
- The key technology is to analyze the load variance pattern, and leverage the pattern to
- Multi-tenancy(多租户)
- Economies of scale
-
基本机制(虚拟机,监控器,文件系统)
- Virtual Machine
- 虚拟机具有与任何其他虚拟机隔离的地址空间
- 从应用程序的角度看,它看起来像一台裸机
- 分配了IP地址并具有网络功能
- 可以加载任何可以在主机的处理器上执行的操作系统或应用程序。
- 虚拟的技术:
- 虚拟机整合:如何把虚拟机放在物理机上
- 虚拟机迁移:当机器故障时;节省能量;用于物理机的负载均衡
- Hypervisor
- 监控器用于创建和管理虚拟机的操作系统
- E.g., VMWare, Xen, KVM
- File system
- 每个虚拟机都可以访问文件系统
- HDFS(Hadoop Distributed File System)
- Virtual Machine
-
云架构(安全,性能,可得性)
- Security
- 多租户引入了对非云环境的额外关注
- 无意的信息共享。由于共享资源的使用,可能会共享该信息。例如。如果重新分配磁盘,则磁盘上的信息可能仍然存在
- 虚拟机逃脱是断开虚拟机(管理程序)并与主机操作系统交互的过程
- 拒绝服务攻击。一个用户可以使用主机服务器的资源并将其拒绝给其他用户
- 多租户引入了对非云环境的额外关注
- Performance
两种方法保证性能:- 负载均衡是在多个计算资源之间分配工作负载,以避免单个资源的过载
- 自动缩放是一种计算资源量的方法,通常根据活动服务器的数量来衡量,根据负载自动缩放
- Availability
- 失败在云中很常见
- 云提供商确保云本身可用,但有一些特殊的例外。
- 应用程序开发人员必须假设实例将失败并在发生故障时构建检测和更正机制
- Security
第2章 云计算与大数据处理
-
并发控制(锁、基于时间戳协议)
- 基于锁的并发控制
- 两阶段锁协议
- 基于时间戳的并发控制
- 基于全局唯一的时间戳
- 基于锁的并发控制
-
分布式文件系统(HDFS)
- 基本架构:
- 多层次容错
- 自动复制
- 按块存储,并行读取,效率高
- HDFS
- GFS的开源实现
- 容量大
- 高可靠性、快速访问、高可扩
- HDFS是针对MapReduce设计
- HDFS的设计
- 基于块的文件存储
- 块进行复制的形式放置,按照块的方式随 机选择存储节点
- 副本的默认数目是3
- 默认的块的大小是64MB
- HDFS体系结构
- HDFS可靠性
- 磁盘数据错误:1.心跳 2. 重新分布
- 数据完整性:校验和
- 元数据磁盘故障:检查点
- 快照:用于回滚,尚未实现
- 基本架构:
-
NoSQL系统
什么是NoSQL系统?- 主要优点
- 非关系型,不需要架构
- 数据被复制到多个节点并可以进行分区
- 下节点很容易被替换
- 没有单一的失败点
- 水平可伸缩
- 便宜,易于实施
- 写入性能好
- 快速键值访问
- 缺点
- 不完全支持关系功能
- 没有声明性查询语言(如SQL)
- 不容易与支持SQL的其他应用程序集成
- NoSQL的类型
- 键值对
- 基于文档
- 基于列
- 基于图
- 主要优点
-
MapReduce
- 对比
- 分布式计算单词数:
- 用MapReduce
- 分布式计算单词数:
- 模型中的功能
- Map:处理键/值对以生成中间键/值对
- Reduce:合并与同一个键关联的所有中间值
- Partition: 默认用hash(key) mod R,平衡性很好
- Remain…
- 对比
第3章 特殊云机制
- 云使用监控(三种实现方式)
- 云使用监控机制是一种轻量级的自治软件程序
- 用于收集和处理IT资源的使用数据
- 使用数据发送到日志数据库,以便进行后续处理和报告
- 三种常见的实现形式:
- 监控代理(monitoring agent)
- 资源代理(resource agent)
- 轮询代理(polling agent)
- 监控代理(monitoring agent)
- 自动伸缩监听器(automated scaling listener mechanism)
- 一个服务代理,监控和追踪云服务用户和云服务之间 的通讯,用以动态自动伸缩
- 常部署在靠近防火墙的位置,来自动追踪负载 状态信息
- 对应负载波动的条件,可以提供不同类型的响应:
- 自动伸缩IT资源(auto-scaling):根据事先定义的参数
- 自动通知云用户(auto-notification): 负载过高或过低时
- 负载均衡器(load balancer)
- 负载均衡器机制是一个运行时代理
- 主要用于把负载在两个或更多的IT资源上做均衡
- 负载均衡器可以执行不同的运行时负载分 配功能
- 非对称分配(Asymmetric distribution)
- 负载优先级(Workload prioritization)
- 内容感知的分配(Content-aware distribution)
- 负载均衡器的实体和部署
- 负载均衡器通常位于产生负载的IT资源和执 行负载处理的IT资源之间的通讯路径上
- 负载均衡器可以被设计成一个透明的代理
- 按使用付费监控器(pay-per-use monitor)
- 按照预先定义好的定价参数测量云资源使用,并生成使用日志用于计算费用
- 使用数据由计费管理系统(billing management system)进行处理
- 一些典型的监控变量:
- 请求/响应消息数量
- 传送的数据量
- 带宽消耗
- 实现方式
- 资源代理
- 监控代理
- 资源代理
- 故障转移系统(failover system)
- 通过使用现有的集群技术提供冗余的实现 来增加IT资源的可靠性和可用性
- 只要当前活跃的IT资源变得不可用时,便会 自动切换到冗余的或待机IT资源实例上
- 类型
- 主动-主动
- 多个实例都处于活动状态,同时提供服务
- IT 资源的冗余实现和负载均衡器是必须要的
- 主动-被动
- 一个处于活动状态,一个待机或闲置
- 当IT资源变得不可用的时候,就会激活待机实 例来接管工作
- 相应的工作负载就会被重定向到接管操作的这 个实例上
- 图例
- 主动-主动
- 虚拟机监控器(hypervisor)
- 是虚拟化基础设施的最基本部分,主要用来在物理服务器上生成虚拟服务器实例
- 虚拟机监控器通常受限于一台物理服务器
- VIM提供了一组特性来管理跨物理服务器的多虚拟机监控器
- 图例
- 资源集群(resource cluster)
- 把多个IT资源实例分为一组,使得他们能像 一个IT资源那样进行操作。
- 通过高速专用网络链接或者集群结点实现工作 负载、任务调度、数据共享和系统同步等通讯 要求。
- 常见的资源集群类型包括
- 服务器集群——提高性能和可用性
- 数据库集群——提高数据可用性,维持数据的一致 性
- 大数据集集群——数据的分区和分布
- 负载均衡的集群——保持集中管理的特性下实 现了在集群结点中的分布式工作负载
- 高可用集群——在多节点失效的情况下保持系 统的可用性,需要冗余实现和故障转移机制
- 多设备代理(multiple-device broker)
- 用于运行时的数据转换
- 克服云服务和多样性的云服务用户之间的不兼容性
- 使得云服务能够被更广泛的云服务用户程序和设备 所使用
- 需要创建映射逻辑(mapping logic)来改变运行时交 换的信息。
- 图例
- 状态管理数据库(state management database)
- 是一种存储设备,用来暂时地持久化软件 程序的状态数据,软件程序可以把状态数据 卸载到数据库中
- 替代状态数据缓存在内存中的一种方法, 用以降低程序占用的运行时的内存量
- 状态管理数据库使得软件程序和周边的基 础设施都具有更大的可扩展性
- 图例
- 课后题
- 讨论分析可以用于自动伸缩的判定条件和机制
- 分析讨论按使用付费监控器的两种实现方式的优缺点
第4章
- 常见调度问题
- 单处理器上的任务包调度
- 多处理器上的任务包调度
- DAG在异构处理器上的调度
- 工作车间安排
- 定期任务调度
- 调度方法
- 以机器为中心的方法
- 当机器空闲时触发调度
- 对于每个空闲机器,根据某些策略选择任务
- 以任务为中心的方法
- 在新任务到达时触发调度
- 对于每个计划任务,根据某些策略选择机器
- 以机器为中心的方法
- 列调度算法(List Scheduling)
- 第1步:任务选择
- 通过为每个任务分配优先级来构建有序的任务列表,并按优先级顺序选择任务
- 第2步:处理器选择
- 每个所选任务被安排到处理器,该处理器最小化预定义的成本函数
- 重复步骤1和步骤2,直到计划完所有任务
- 例子(to do)
- 第1步:任务选择
第5章 数据中心网络
- 设计目标与需求、成本、数据中心拓扑结构(分类)
- 目标
- 敏捷
- 将服务器转换为单个大型可互换池
- 好处
- 提高服务开发人员的工作效率
- 低成本
- 实现高性能和可靠性
- 需求
- 统一的高容量
- 性能隔离
- 易于管理:“即插即用”
- 成本
- 服务器成本
- 网络成本
- 数据中心拓扑结构
- 目标
- 常见拓扑结构,重点掌握FatTree架构及属性
- 全网状网络
- 基于树的拓扑结构
- 基本树拓扑
- Clos Network
- Fat Tree拓扑结构
- 图例
- 属性
- 在任何二分处有相同的带宽
- 每个层具有相同的聚合带宽
- 可以使用具有统一容量的廉价设备构建
- 出色的可扩展性:k个口的交换机支持k^2/4个服务器
- 图例
第6章 云架构
- 负载均衡架构
- 基于云服务的冗余部署
- 部署在虚拟机上或容器中的应用程序或软件
- 多实例构成资源池
- 两种形式
- 独立于云设备及主机服务器,或 (外置方式)
- 作为应用程序/服务器环境的内置组件 (内置方式)
- 独立于云设备及主机服务器,或 (外置方式)
- 基于云服务的冗余部署
- 动态可扩展架构(水平、垂直、重定位)
- 定义
- 基于预先定义的扩展条件从资源池中动态分配IT资源
- 云资源弹性管理的核心机制
- 自动扩展监听器
- 实现动态扩展的核心部件
- 监听负载状态以决定何时扩展
- 动态扩展类型
- 动态水平扩展(Dynamic Horizontal Scaling)
- 向内或向外扩展IT资源实例
- 自动扩展监听器请求资源复制,并发信号启动IT资源复 制
- 图示
- 动态垂直扩展(Dynamic Vertical Scaling)
- 调整单个IT资源的处理容量
- 向上或向下扩展IT资源实例
- 动态重定位(Dynamic Relocation)
- 将IT资源重新放置到更大/更小容量的主机上
- 动态水平扩展(Dynamic Horizontal Scaling)
- 定义
- 云爆发架构
- 动态扩展架构的特殊形式
- 基于云的IT资源是冗余性预部署
- 保持非活跃状态,直到发生云爆发
- 图示
- 弹性磁盘供给架构
- 动态存储供给系统
- 确保按照云用户实际使用的存储量进行精确计费
- 基于自动精简供给技术
- 辅助机制:
- 云使用监控器
- 资源复制
- 虚拟机(架构,在线迁移机制,性能指标及函数)
- 云服务容错架构以及容错机制(to do)
- 云服务不可用的原因很多
- 运行时需求超出处理能力
- 维护更新导致的暂时中断
- 云服务迁移
- 物理机失效、宕机
- 应对机制
- 服务迁移
- 服务故障检测与恢复
- 物理机容错
- 云服务不可用的原因很多
第7章 移动云计算
- 定义
- 三个视角
- 性能建模与优化
- 性能建模方法
- 系统分析
- 通过系统架构和模型,分析和推导影响性能各因素与性能指标之间的直接关系
- 数据挖掘
- 测量系统在不同因素下性能,基于测 量数据 , 采用数据挖掘方法建立性能模型
- 系统分析
- 优化
- 数据存放和负载分配
- 计算划分
- 图例
- 性能建模方法
- 计算切分
- 数据流应用计算切分
- 动态环境(例如网络断线)计算切分
- 多用户计算切分