news 2026/5/30 23:55:07

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
软件体系结构——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. 应用程序开发者必须考虑到实例运行可能会出现故障,因此要预先设置故障检测及修复机制,以防出现故障情况。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 22:04:20

新手入门指南:手把手教你启动HeyGem并生成第一个视频

新手入门指南:手把手教你启动HeyGem并生成第一个视频 在教育、客服、媒体播报等领域,内容生产正面临效率与成本的双重挑战。传统真人出镜录制不仅耗时耗力,还难以实现规模化复制;而专业动画制作又门槛高、周期长。有没有一种方式&…

作者头像 李华
网站建设 2026/5/30 22:04:38

人工智能之数字生命-特征类说明及架构20260104

可以把特征类想成一个“裁判台”,它不生产球员(特征值节点不由它创建),只负责判定两件事:是不是同一个人、是不是换了动作 🧠⚖️ 目标1:区分存在 = 找到“身份锚点”并让它抗抖 前面的设计正好对应三条硬规则: 只用稳态进入身份对比:瞬态噪声不进入“身份证库” 原…

作者头像 李华
网站建设 2026/5/30 22:04:53

AI 未来展望:2026 年值得关注的七大趋势(基于微软视角)

首先向所有读者致以新年问候!人工智能正由“实验性工具”向“强大合作伙伴”演进。当 AI 正从"实验工具"转变为"强大合作伙伴",这些关键趋势将塑造 2026 年工作、健康和科学领域的未来走向。人工智能(AI)正步…

作者头像 李华
网站建设 2026/5/29 2:25:01

HuggingFace镜像网站搜索不到?模型权重未对外发布

HuggingFace镜像网站搜索不到?模型权重未对外发布 在当前生成式AI迅猛发展的背景下,越来越多的企业和开发者开始尝试将大语言模型(LLM)与多模态技术应用于数字内容生产。尤其是在虚拟数字人、智能客服、自动播报等场景中&#xff…

作者头像 李华
网站建设 2026/5/30 20:22:06

C#权限系统设计十大陷阱:你踩过几个?

第一章:C#权限系统设计十大陷阱:你踩过几个?在构建企业级应用时,权限系统是保障数据安全的核心模块。然而,许多开发者在使用 C# 设计权限系统时,常常因忽视细节而埋下隐患。以下是常见的设计陷阱及应对策略…

作者头像 李华
网站建设 2026/5/30 16:40:21

Windows用户如何使用HeyGem?可通过WSL2或虚拟机尝试

Windows用户如何使用HeyGem?可通过WSL2或虚拟机尝试 在企业宣传视频批量生成、在线课程讲师口型同步、虚拟主播内容制作等场景中,AI驱动的数字人技术正迅速从“炫技”走向“实用”。越来越多团队希望将音频快速转化为自然逼真的数字人视频,但…

作者头像 李华