商业云平台和开源云平台

商业云平台和开源云平台

Google云平台

主要云服务

  • SaaS:Google文件、Google地图、Google日历、Gmail
  • PaaS:Google App Engine

需求和设想

  • 需求:海量用户和海量数据,需要具备较强的可伸缩性
  • 设想:应用向互联网迁移;数据向互联网迁移;计算能力向互联网迁移; 存储空间向互联网迁移

四大法宝

  1. 文件存储:GFS
  2. 并行数据处理:MapReduce
  3. 结构化数据表:BigTable
  4. 分布式锁:Chubby

Chubby介绍

  • 基于松耦合分布式系统的锁服务:采用Paxos算法,解决一致性问题;粗粒度的锁,更长的持续时间,可以减少换锁的系统开销;建议性的锁,非强制性的锁,提供更大的灵活性
  • 功能:
  1. 服务器端:选举主服务器
  2. 客户端:与服务器端通过远程过程调用(RPC)连接,每个应用程序有一个Chubby程序库
  • 分布式、存储大量小文件的文件系统:服务信息的直接存储
  • 客户端和主服务器的通信:KeepAlive握手协议

架构

商业云平台和开源云平台_第1张图片

Amazon云平台(Amazon AWS)

主要云服务

  • 简单存储服务S3(Simple Storage Service)
  • 弹性计算云EC2(Elastic Compute Cloud)
  • 简单数据库服务SimpleDB(Simple Database)
  • 简单队列服务SQS(Simple Queue Service)

目的

  • 将硬件设备等基础资源封装成服务供用户使用(IaaS)
  • 在此基础上,用户构建应用层,并进一步开发应用程序

弹性计算云EC2

  • 目标:向用户提供弹性的计算资源
  • 特性:
  1. 灵活性:允许用户对运行的实例类型、数量自行配置,选择实例运行的地理位置,随时改变实例的使用数量
  2. 低成本:按小时收费,不需要购买硬件设备
  3. 安全性:提供了基于密钥对的SSH方式访问、可配置的防火墙机制等安全措施,允许用户对应用程序进行监控
  4. 易用性:用户可以利用模块自由构建应用程序,EC2会自动对服务请求进行负载平衡
  5. 容错性:提供弹性IP的机制,在故障发生时尽可能保证用户服务的稳定
  • 构成
  1. Amazon Machine Image(AMI):相当于PC中的操作系统(可将用户的应用程序、配置等一起打包) ,类型有公共AMI,私有AMI,付费AMI,共享AMI
  2. 实例:相当于主机,提供计算能力自身携带一个存储模块,临时存放用户数据
  3. Elastic Block Store(EBS):长期保存或者存储比较重要的数据,直至用户删除
  4. 通信机制:公共IP地址负责和外界进行通信;私有IP地址用于实例间通信;弹性IP地址与用户帐号绑定,可在实例出现故障时将弹性IP地址重新映射到一个新的实例

简单队列服务SQS

  • 目标:解决低耦合系统间的通信问题;支持分布式计算机系统之间的工作流
  • 队列:存放消息的容器;数量是任意的,但名称必须唯一
  • 消息:一定格式的文本,不超过8KB,尽可能“先进先出”;被冗余存储,采用基于加权随机分布的消息取样
  • 用户查询消息时,会随机选择部分服务器,并返回这些服务器上所保存的查询队列中消息的副本

微软云平台(Windows Azure)

基本思路

  • “云+端”模式
  • 软件+服务(S+S)战略

体系结构

  • PaaS
    商业云平台和开源云平台_第2张图片

基本介绍

  • 作用:可以在微软数据中心上运行应用程序和存储应用程序数据
  • 组成部分:计算服务,存储服务,Fabric控制器,内容分发网络CDN, Windows Azure Connect
  • 机制:通过Fabric将机器的处理能力整合为一体;Fabric由位于数据中心的大量机器组成 (5-7台一组) ;由“Fabric控制器”软件来管理Fabric;依赖于应用所带的XML格式配置文件

计算服务

  • 目标:支持有大量并行用户的应用程序
  • 运行机制:每个应用程序运行多个实例;每个实例运行自己的虚拟机;每个虚拟机运行一个64位的Windows Server
  • 角色
  1. Web Role,提供Web服务的角色(支持 HTTP/HTTPS协议,提供WCF服务)
  2. Worker Role,是在后台运行的应用程序(可以在后台访问任何网络资源、数据源并进行操作)
  3. VM Role,运行系统提供的Windows Server镜像,并支持将本地应用移动到Windows Azure

SQL Azure

  • 目标:基于SQL Server技术构建,提供关系型数据库存储服务
  • 数据模型:数据中心 Authority -> Container -> Entity
  • 功能:
  1. SQL Azure数据库,使本地应用和云应用可以在微软数据中 心上存储数据
  2. SQL Azure报表服务,在SQL Azure存储的数据中创建标准 的SSRS(SQL Server Reporting Service)报表
  3. SQL Azure数据同步,同步SQL Azure数据库与本地SQL Server数据库中的数据,或在微软数据中心之间同步不同 SQL Azure数据库

Windows Azure AppFabric

  • 作用:为本地应用和云应用提供分布式的基础架构服务,使本地应用于云应用进行安全联接和信息传递
  • 功能:
  1. 互联网服务总线,简化云应用的公开终端的访问
  2. 访问控制上,简化数字身份认证
  3. 采用高速缓存,提升应用对同一数据重复访问的效率

开源云平台

Hadoop

  • Apache支持,Java语言,参照Google
  • 组成:Hadoop Common、Hadoop Distributed File System (HDFS)、Hadoop YARN、Hadoop MapReduce
  • 相关项目:Cassandra、Hbase、Hive、Spark、ZooKeeper

Zookeeper

  • 目的:大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等);缺乏通用的协调程序,需要各自编写
  • 目标:提供通用的分布式协调服务

Zookeeper读写机制

  • 由多个Server组成的集群:一个Leader,多个Follower
  • 每个Server都保存了一份数据副本,全局数据一致
  • 分布式读写
  • 由Leader实施更新请求转发

Zookeeper使用约定

  • 更新请求顺序执行:来自同一个Client的更新请求按其发送顺序依次执行
  • 数据更新原子性:一次数据更新要么成功,要么失败,不存在部分数据写入成功或失败的情况
  • 全局唯一数据视图:Client无论连接哪个Server,数据视图都是一致的
  • 实时性:在一定时间范围内,Client能读到最新数据

Zookeeper的功能

  • Leader的选举:在多个节点中选取Master
  • 锁服务:独占锁,当分布式应用需要对资源独占使用;共享锁,当分布式应用需要对资源非独占使用
  • 小数据存储

Spark

  • Spark是开源的类Hadoop MapReduce的通用的并行计算框架
  • Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点
  • 不同于MapReduce的是Job中间输出和结果可以保存在内存中, 从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法

你可能感兴趣的:(云计算)