当前位置: 首页 > news >正文

软件体系结构——Chapter 26 云架构

目录

  • 1. 基本云定义
    • 1.1 基本特征
  • 2. 服务模型与部署选项
    • 2.1 云服务模型
    • 2.2 部署模型
  • 3. 经济合理性(Economic Justification)
    • 3.1 规模经济
    • 3.2 设备利用
    • 3.3 多租户
  • 4. 基础机制
    • 4.1 虚拟管理程序(Hypervisor)
    • 4.2 虚拟机
    • 4.3 文件系统
    • 4.4 网络
  • 5. 示例技术
    • 5.1 IaaS
    • 5.2 PaaS
    • 5.3 数据库
  • 6. 云环境中的架构
    • 6.1 安全性
    • 6.2 性能
    • 6.3 可用性

1. 基本云定义

1.1 基本特征

  1. 按需自助服务(On-demand self-service)

    • 用户可自主配置资源,无需人工交互
  2. 无处不在的网络访问(Ubiquitous network access)

    • 不限制设备,只需要客户端和互联网
  3. 资源池化(Resource pooling)

    • 云服务提供商的计算资源被整合在一起(pool:集中资源)
  4. 位置独立(Location independence)

    • 用户无需关心资源的物理位置
  5. 快速弹性(Rapid elasticity)

    • 功能能够快速且灵活地进行配置
  6. 计量服务(Measured service)

    • 对资源使用情况进行监测,用户只需为实际使用的内容付费
  7. 多租户(Multi-tenancy)

    • 多个用户共享资源且相互隔离

2. 服务模型与部署选项

2.1 云服务模型

  1. 软件即服务(Software as a Service,SaaS)

    • 消费者是最终用户

    • 消费者直接使用云应用程序

  2. 平台即服务(Platform as a Service,PaaS)

    • 消费者是开发者或系统管理员

    • 开发者在云平台上部署应用

  3. 基础设施即服务(Infrastructure as a Service,IaaS)

    • 消费者是开发者或系统管理员

    • 消费者可以配置基础计算资源并部署任意软件

2.2 部署模型

基本模型:

  1. 私有云:云基础设施完全由一个组织拥有

  2. 公有云:云基础设施向公众或大型行业群体提供,并由销售云服务的组织拥有

变体

  1. 社区云:云基础设施由特定组织共享

  2. 混合云:云基础设施是由两个或多个云(私有云、社区云或公共云) 组成的组合

3. 经济合理性(Economic Justification)

3.1 规模经济

维护数据中心成本的因素:

  1. 电力成本

    • 大型数据中心通过共享设备、议价能力、选址优化降低单服务器能耗成本
  2. 基础设施人工(labor)成本

    • 大型中心管理员可管理>1000台服务器
  3. 安全性和可靠性

    • 高安全性和可靠性成本被更多服务器分摊
  4. 硬件成本

    • 大规模采购有折扣

3.2 设备利用

  1. 虚拟化技术允许在一台物理服务器上同时运行多个不同的应用程序和操作系统

  2. 管理工作负载波动可进一步提升利用率

    1. 随机访问

      • 终端用户随机访问应用,这种随机性有助于使负载趋于均匀
    2. 一天中的时间

      • 将职场相关服务(白天使用率高)与消费相关服务(晚上使用率高)部署在一起,提高利用率

      • 利用全球不同地区的时差,可以让同一套资源为不同地区的用户服务

    3. 一年中的时间

      • 考虑年度性需求波动,如节假日购物季、报税季,可以预测这些日期进行规划部署
    4. 资源使用模式

      • 将具有互补资源使用模式的应用程序放在一起,增加资源整体利用率
    5. 不确定性

      • 考虑突发流量,如新闻事件、促销活动、体育赛事

3.3 多租户

如何降低成本?

  1. 服务台(Help desk)支持

    • 将咨询服务从IT部门转移给供应商
  2. 一次性为所有客户升级

  3. 只需维护软件的单个版本

4. 基础机制

4.1 虚拟管理程序(Hypervisor)

虚拟内存页表

4.2 虚拟机

  1. 虚拟机拥有独立于其他虚拟机的地址空间

  2. 从应用程序角度看,像一台裸露的金属设备(对VM内部的操作系统和应用来说,感觉自己在独占一台完整的物理服务器)

  3. 拥有IP地址和网络功能

  4. 可加载任何操作系统和应用

4.3 文件系统

  1. 每个虚拟机都能访问文件系统

  2. 我们将介绍 HDFS(Hadoop 分布式文件系统)—种被广泛使用的开源云文件系统

  3. 我们描述了 HDFS 如何通过采用冗余机制来保障可用性

4.4 网络

  1. 每个虚拟机都会被分配一个 IP 地址

  2. 使用 TCP/IP 协议发送的每一条消息在报头中都包含 IP 地址

  3. 云网关能够根据不同需求调整 IP 地址

5. 示例技术

5.1 IaaS

  1. 一组管理基础技术的服务器配置

    • 服务器是按照集群的形式进行排列的。

    • 一个集群中可能有数千台服务器

    • 有些服务器被用作laaS的基础设施

    • 每台服务器底层都运行着虚拟化管理程序

  • IaaS架构组件

    • 集群管理器:负责管理每个集群

    • 持久对象管理器:管理持久化存储

    • 虚拟资源管理器:管理其他(外部)资源。它充当消息的网关

    • 文件系统管理器:类似于HDFS。它管理网络范围内的文件系统

  • IaaS提供的服务

    • 当底层虚拟机实例发生故障时,自动重新分配IP地址

    • 自动扩缩容。根据负载创建或删除新的虚拟机

5.2 PaaS

  1. 为开发者提供一个集成的技术栈

  2. 开发者用Python编写代码,PaaS平台负责管理代码向栈的底层各层的部署

5.3 数据库

  1. 关系型数据库的问题

    • 从网络系统收集到海量数据,关系型数据库处理这些数据会带来开销

    • CAP定理表明,不可能同时实现一致性(C)、可用性(A)和分区容错性§

    • 关系模型并非所有应用的最佳模型

  2. 因此需要新型数据库,统称为NoSQL(Not only SQL),非关系型数据库

  3. 键值型数据库:HBase

    • 指定一列作为键,其他所有列都是值

    • 无模式,因此数据可以包含键 + 任何其他值。值通过其变量名来识别

    • 数据值也带有时间戳

      • HBase不支持事务。时间戳用于在事后检测冲突
  4. 文档型数据库:MongoDB

    • 存储对象而非数据

    • 通过包含它的对象来访问数据

    • 对象也可以包含指向其他对象的链接

    • 没有主键或次键索引的概念。一个字段要么被索引,要么不被索引

  5. 新的数据库省略了什么?

    • 事务:不执行锁定。应用程序必须检测与其他用户的冲突

    • 模式:没有预定义的模式。应用程序必须使用正确的字段名

    • 一致性:CAP定理表明必须有所牺牲。通常一致性被“最终一致性”所取代

    • 规范化和连接:执行连接操作要求连接字段必须被索引。由于不能保证索引字段的存在,连接操作无法执行。这意味着不支持表的规范化

6. 云环境中的架构

云平台的特有模式使得安全性、性能和可用性这三个质量属性的设计考量与传统的本地部署环境有显著不同。

6.1 安全性

多租户的攻击形式

  1. 意外的信息共享

  2. 虚拟机“逃逸”

    • 攻击者可能攻破Hypervisor的隔离防线
  3. 侧信道攻击

    • 攻击者可能通过检测缓存来获取信息
  4. 拒绝服务攻击

    • 恶意租户可以通过耗尽共享资源来影响其他租户的服务可用性

6.2 性能

  1. 云的自动扩展(Auto-scaling)功能可提供更高的性能。

  2. 但是新资源的响应时间可能不够充足

  3. 架构师需要了解应用程序所需的资源情况

    • 将这些知识融入到应用程序中

    • 让这些应用程序具备自我意识,以便它们能够主动应对资源需求问题。

6.3 可用性

  1. 在云环境中,失败是常见现象

    • 拥有数千台服务器的情况下,出现故障是意料之中的事
  2. 云服务提供商会确保云系统本身能够保持可用状态,但也会有一些明显的例外情况

  3. 应用程序开发者必须考虑到实例运行可能会出现故障,因此要预先设置故障检测及修复机制,以防出现故障情况。


http://www.jsqmd.com/news/191992/

相关文章:

  • 郑州装饰公司哪家好?小户型装饰公司推荐及求推荐装饰公司全解析 - 工业品网
  • MP3转数字人视频?HeyGem完美支持常见音频格式转换
  • Nano Banana Generative Fill 2.0.0 PS插件全攻略免费API解锁AI图像编辑新体验
  • B. Tape
  • GitHub Issues模拟:虽未开源但仍收集用户反馈建议
  • AI视频生成成本下降:HeyGem推动GPU算力需求增长
  • 2025年重庆茶馆行业口碑排名:苗品记适合第一次来重庆的人吗? - mypinpai
  • 从入门到精通:C# Lambda多参数编程的6个必知场景与最佳实践
  • 【光伏风电功率预测】风电短期算法:机组传播图 GNN + 阵风风险预警的落地框架
  • FastStone Capture注册码不需要:与截图工具无关联
  • 微信312088415加好友验证:请备注‘HeyGem合作’通过率更高
  • Markdown编辑器用途不大:HeyGem输出非文本内容
  • 【光伏风电功率预测】为什么模型越复杂越不稳?从数据、状态、气象三层拆解误差来源(深度工程解析)
  • MATLAB高效算法实战
  • 毕业设计项目 深度学习行人口罩佩戴检测
  • 批量删除选中项:提高HeyGem历史记录管理效率
  • 模型加载耗时多久?首次启动约需2-5分钟视硬件而定
  • Windows用户如何使用HeyGem?可通过WSL2或虚拟机尝试
  • 能隔离能摆渡的网闸是什么?一文解锁新型网闸全面介绍
  • 5.9 Elasticsearch-多租户资源隔离:queue_size、search indexing thread_pool
  • 揭秘C#跨平台开发中的权限继承难题:5个你必须知道的解决方案
  • 教育优惠计划推出:高校实验室可申请半价GPU资源
  • HeyGem数字人系统预览功能详解:实时查看视频与结果回放
  • LUT调色包下载不影响:HeyGem输出色彩未强调后期
  • 公元前3000年至公元2100年全球1KM农田数据集(全球/中国/各省/各市)
  • 左侧列表显示已添加视频:HeyGem批量模式核心操作区
  • 探索HeyGem底层架构:基于深度学习的语音驱动面部动画模型
  • 人工智能之数字生命-特征类说明及架构20260104
  • 避免资源冲突!HeyGem系统采用任务队列机制按序处理请求
  • 揭秘C# Span内存溢出隐患:5个你必须避免的编程陷阱