云计算平台与技术


绪论

Google云计算原理

三大技术:

  • 文件系统GFS
  • 分布式数据处理MapReduce
  • 分布式结构化数据表BigTable

开源替代:

  • Hadoop

CNCF 云原生计算基金会

Cloud Native Computing Foundation

CNCF Cloud Native Interactive Landscape

深色为已成熟项目


云计算简介

云计算定义

短定义:云计算是通过网络按需提供可动态伸缩的廉价计算服务
长定义:云计算是一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力,存储空间和信息服务

云计算的特点

  • 超大规模
  • 虚拟化
  • 高可靠性
  • 通用性
  • 高可伸缩性
  • 按需服务
  • 及其廉价

云计算的三类

  • SaaS(Software-as-a-service) 软件即服务
  • Paas(Platform-as-a-service) 平台即服务
  • IaaS(Infrastructure-as-a-service) 基础设施即服务

云计算环境中软件架构的演化

传统架构 –> 微服务架构 –> 云原生架构

  • 传统架构:单体应用单机部署
  • 微服务架构:将程序拆分为多个服务分开部署
  • 云原生架构:基于微服务和容器技术

服务器虚拟化和容器虚拟化

传统虚拟化以操作系统为单位,承载于Hypervisor之上

容器虚拟化以容器为单位,承载于容器引擎上

Google云计算原理

三大核心技术

  • 文件系统GFS
  • 分布式数据处理MapReduce
  • 分布式结构化数据表BigTable

一般架构与算法

  • Bloom Filter:一种空间效率高、常用于判定元素是否存在一个集合中的数据结构

存算一体 or 存算分离(单机)

  • 存算一体(冯诺依曼结构):指令和数据存储在同一个的存储器中

  • 存算分离(哈佛结构):指令和数据存储在不同的存储器中

存算一体 vs 存算分离 历史迭代

  1. 第一次存算分离:数据库系统
  2. 第二次存算分离:海量数据催生的存算一体
  3. 第三次存算分离:云计算带来的新一代存算分离
    • 技术优化手段
    • 网络加速
    • 本地缓存
    • 存储优化

GFS

系统架构

  • 使用chunk租约机制保障跨副本的数据写入保持顺序一致性
  • chunk租约机制的设计主要是为了减轻Master的负担

GFS将整个系统节点分为3类角色:

  1. Client:GFS提供给应用程序的访问接口,以库文件的形式提供

MapReduce

  • Map函数 对原始数据进行指定的操作,Map之间相互独立,可以充分并行化
  • Reduce操作 对每个Map产生的中间结果进行合并操作,每个Reduce处理的Map中间结果互不交叉

Chubby 分布式锁服务

三者无法同时拥有

  • Availability 可用性
  • Consistency 一致性
  • Partition Tolerance 分区容错性 (分布式必要)

paxos算法:

processer分为三类节点:

  • proposer:提出决议
  • acceptor:批准决议
  • learner:获取并使用已经通过的决议

各个processor之间信息的传递可以延迟、丢失,但是在这个算法中假设传达到的信息都是正确的

Raft算法:

分布式共识算法

Raft Demo1

Raft Demo2

ZooKeeper

分布式协调服务,提供配置管理、名字服务、分布式锁、集群管理等功能