云计算学习笔记
云计算平台与技术
绪论
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 存算分离 历史迭代
- 第一次存算分离:数据库系统
- 第二次存算分离:海量数据催生的存算一体
- 第三次存算分离:云计算带来的新一代存算分离
- 技术优化手段
- 网络加速
- 本地缓存
- 存储优化
GFS
系统架构
- 使用chunk租约机制保障跨副本的数据写入保持顺序一致性
- chunk租约机制的设计主要是为了减轻Master的负担
GFS将整个系统节点分为3类角色:
- Client:GFS提供给应用程序的访问接口,以库文件的形式提供
- …
- …
MapReduce
- Map函数 对原始数据进行指定的操作,Map之间相互独立,可以充分并行化
- Reduce操作 对每个Map产生的中间结果进行合并操作,每个Reduce处理的Map中间结果互不交叉
Chubby 分布式锁服务
三者无法同时拥有
- Availability 可用性
- Consistency 一致性
- Partition Tolerance 分区容错性 (分布式必要)
paxos算法:
processer分为三类节点:
- proposer:提出决议
- acceptor:批准决议
- learner:获取并使用已经通过的决议
各个processor之间信息的传递可以延迟、丢失,但是在这个算法中假设传达到的信息都是正确的
Raft算法:
分布式共识算法
ZooKeeper
分布式协调服务,提供配置管理、名字服务、分布式锁、集群管理等功能
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PeiFang's Notes!