云构建基块

已完成

借助云计算,可以通过网络以服务的形式使用计算资源。 在讨论云上提供的服务模型之前,我们应该思考一下构建云服务所需的各种硬件和软件层。 当然,并非所有服务要求都是相同的;某些云用户可能只希望访问原始基础结构,在此基础上构建应用程序。 其他人可能根本不希望处理基础结构,而只是要使用易用型的平台来开发和部署应用程序。 为了满足这些不同的要求,云服务提供商将其产品/服务划分为不同的抽象层。

云构建基块

在这里,我们通过演示典型的构建基块来介绍堆叠的云抽象,并讨论它们与云计算中的三个服务模型的关联。 我们演示了云计算中的四个主要构建基块:应用程序软件、开发平台、资源共享和基础结构,如图 7 所示。 基础结构包括数据中心中的物理资源。 资源共享层通常需要硬件和软件技术,这些技术必须可实现物理资源的共享,同时提供某种级别的隔离。 开发平台用于开发云应用程序。

Cloud computing building blocks.

图 7:云计算构建基块

应用程序软件:堆栈中的顶层是应用程序软件,这通常是最终用户使用的系统组件。

开发平台:通过开发平台(下一层),应用程序开发人员能够根据云的应用程序编程接口 (API) 编写应用程序软件。 开发平台通常提供一些规范,开发人员可将这些规范用于例程、数据结构、对象类、库和变量。

资源共享:资源共享机制(第三层)包含一些重要的云理念:

  • 提供软件、计算、网络和存储服务。
  • 允许共享环境,因此多个硬件映像(如虚拟机)和系统映像(如常规用途的操作系统)可在单个基础结构上运行,且与此同时保证安全性、资源和故障隔离。 这些隔离属性是由硬件和软件技术组合提供的(参见后文)。
  • 将物理服务器合并到在更少的物理服务器上运行的虚拟服务器中。
  • 提供灵活性和弹性来快速响应用户的资源和服务需求。

这些理念通常通过虚拟化(在后面的模块中讨论的一项技术)来解决。

基础结构:在云计算中,物理资源(底层)主要部署在云提供商上。 广泛地说,资源类包括:

  • 计算资源(通常是服务器),它们是专为企业计算设计的计算机,而不是用户工作站。 它们通常安装在机架中,以便有效利用空间。
  • 维护云数据的存储资源。 应用程序存储通常按容量使用情况收费(例如每 GB 或 TB)。
  • 实现服务器之间以及服务器与客户端之间通信的网络资源。
  • 管理计算、网络和存储基础结构的软件。

接下来,我们将讨论哪些抽象可以作为租用的服务通过网络提供。 例如,与希望能够访问云中运行的 Web 邮件应用程序的用户相比,软件开发人员所需的服务和资源将有所不同。

云计算服务

从广义上说,云服务因不同用户的需求而有所不同。 本部分回顾了三种常用的云服务类型:

  • 软件即服务 (SaaS)
  • 平台即服务 (PaaS)
  • 基础结构即服务 (IaaS)

SaaS 是指最终用户可以通过网络访问软件应用程序的任何应用程序,它根据各种业务模式(其中一些免费)进行计费。 PaaS 是软件开发的“平台即服务”,可用于开发 SaaS 应用程序。 而 IaaS 是通过网络租赁虚拟化的基础结构。 在最后这种模型中,最终用户可以灵活地在租赁的基础结构上安装和使用任何软件。

以下视频对这些服务进行了回顾:

SaaS 模型

软件即服务 (SaaS)

(定义)软件即服务 (SaaS) 是在云中托管软件和相关数据的软件交付模型。 用户通常使用瘦客户端通过 Web 浏览器访问 SaaS 应用程序。

SaaS 是最常见的云服务模型之一,其中云提供商将软件作为 Internet 服务交付。 以下视频介绍了这种方案。 SaaS 用户只使用浏览器来访问软件,从而无需在计算机上安装、运行和维护(更新、修补、重新配置等)应用程序。 Web 浏览器会动态且透明地加载 SaaS 应用程序服务。

SaaS 已经成为众多商业应用程序的常见软件交付模型,包括会计、协作、客户关系管理 (CRM)、管理信息系统 (MIS)、企业资源规划 (ERP)、开票、人力资源管理 (HRM)、内容管理 (CM) 以及服务台管理。

通过 SaaS,提供商可以维护软件和所需的基础结构来运行它。 提供商定期开发软件,并在用户下次登录到该服务时,自动向他们提供增强功能。 此外,通过使用服务而产生的任何应用程序数据都位于云中,用户可从任何位置访问它们。

SaaS 特征

大多数 SaaS 解决方案都基于所谓的多租户体系结构。 在该体系结构中,具有单个配置的单个应用程序版本适用于每一位客户(称为租户)。 为了使服务能够正常缩放,它可能会安装在提供商的多个服务器上。 使用动态缩放,以便在服务更加热门时让更多用户能使用该服务。

SaaS 的典型特征包括:

  • 基于 Web 来访问软件服务。
  • 软件由云提供商从中心位置进行管理。
  • 软件以一对多模型交付,即一个云提供商,但多位云用户。
  • 软件的升级和修补由云提供商负责。

SaaS 定价模型

传统软件是在软件许可模式下销售的(包含前期许可证成本和可选的持续支持费用),而与此不同的是,SaaS 提供商通常采用包月或包年的订阅费用来设定应用程序的价格。 使用此模型,SaaS 可实现所谓的云计算主要优势之一:降低软件的资本支出或前期成本。 SaaS 提供商通常基于使用参数(例如使用应用程序的用户数)收费。

SaaS 用例

对于某些类型的应用程序来说,SaaS 是不错的模型,例如:

  • 相当地标准化且不需要自定义解决方案的应用程序。 电子邮件是相当标准化的应用程序的一个好示例。
  • 需要远程/Web/移动访问的应用程序,如移动销售管理软件。
  • 具有短期需求的应用程序,如用于特定项目的协作软件。
  • 需求显著激增的应用程序,如每月使用一次的税收或计费软件。

但是,在某些情况下,SaaS 可能不是最佳选项,例如:

  • 需要脱机访问数据的应用程序。
  • 需要进行大量自定义的应用程序。
  • 策略或法规不允许外部托管数据的应用程序。
  • 现有内部解决方案能满足所有组织需求的应用程序。

SaaS 示例

Web 邮件就是早期出现的其中一种 SaaS。 Web 邮件让用户能够使用浏览器和 Internet 连接随时随地访问其电子邮件。 Outlook、Yahoo Mail 和 Gmail 等产品非常受欢迎。 当中的一些服务基于“免费增值”模式,其中基本服务是免费的,并且订阅中提供了更多高级功能。 此外,提供商主要从在用户使用服务时向用户显示的广告赚取收入。

还有一个常见的 SaaS 示例是联机 Office 套件(例如 Microsoft 365),用户可使用它们来联机创建、编辑和共享文档。

PaaS 模型

平台即服务 (PaaS)

(定义)平台即服务 (PaaS) 是一种计算平台,允许以简化的方式创建 Web 应用程序,而无需购买和维护任何底层软件和基础结构。

通过基于 PaaS 的产品/服务,用户可以在云提供商提供的平台上开发、部署和缩放应用程序。 PaaS 与 SaaS 很类似,只不过它不是通过 Web 提供的软件,而是通过 Web 提供的软件创建平台。

PaaS 特征

不同提供商的 PaaS 产品/服务有所不同,但通常都有一些基本功能,其中包括:

  • 用于在同一集成开发环境 (IDE) 中开发、测试、部署、托管和维护应用程序的服务。
  • 基于 Web 的用户界面 (UI) 创建工具,可帮助创建、修改和测试各种 UI 方案。
  • 多个并发用户使用相同开发工具的多租户体系结构。
  • 已部署软件的内置缩放机制,云提供商可通过负载均衡和故障转移机制来自动处理这些机制。

PaaS 定价模型

与 SaaS 定价模型不同(该模型基于订阅或广告),PaaS 通常按平台的使用情况进行定价。 例如,Azure Functions 的定价模型按执行的总次数及执行时间来收费。 因此,通过 PaaS 开发的应用程序被使用的越多,PaaS 开发人员需要支付的费用就越高。

PaaS 用例

对于某些类型的应用程序来说,PaaS 是不错的模型,例如:

  • 应用程序快速开发方案。
  • 需要基于 Web 的基础结构处理来自不同用户的负载的应用程序。
  • 将来可能不需要重新部署或迁移到其他平台的应用程序。

在某些情况下,PaaS 可能不理想,例如:

  • 当应用程序在托管位置方面需要高度可移植时,因为 PaaS API 可能会因 PaaS 提供商的不同而异。
  • 当专用语言或 API 可能会影响开发过程或由于供应商锁定而导致将来出现问题时。
  • 当需要自定义基础硬件和软件来保证应用程序性能时。

PaaS 示例

Azure Functions 是一种 PaaS。 通过 Azure Functions,开发人员可以在 Azure 的基础结构上运行一小段代码,而无需担心如何管理自己的代码。

IaaS 模型

基础结构即服务 (IaaS)

(定义)基础结构即服务 (IaaS) 是一种云计算模型,在该模型中,云提供商(通常以实例或虚拟机的形式)向客户提供计算资源。

在 IaaS 模型中,提供商以实例或虚拟机的形式出租计算资源,这些资源附加了某种形式的可配置的 CPU、内存、磁盘和网络带宽。 预配后,IaaS 用户可以远程连接到这些实例,并配置其选择的平台和应用程序。 借助此模型,IaaS 用户在软件开发和部署方面享受了极大的灵活性。 用户根据需要以完全外包的服务形式租用服务器、软件、数据中心空间或网络设备,而不是购买这些资源。

IaaS 特征

IaaS 具有以下特征:

  • 将计算资源作为服务提供给 IaaS 用户。
  • IaaS 提供商提供了允许 IaaS 用户配置资源的动态缩放的工具。
  • IaaS 提供商通常具有成本各异的不同资源产品/服务,并采用实用工具定价模型(通常按小时计费)。
  • 相同的物理资源在多位用户之间共享。

IaaS 定价模型

SaaS 定价模型基于订阅或广告,PaaS 模型通常按事务数量或所使用的存储或宽带进行定价,而 IaaS 与这两种模型不同,它通常按小时对每个实例定价。 例如,Azure 虚拟机提供了各种计算资源作为虚拟化的操作系统实例,这些实例在计算、内存、存储和带宽方面有所不同。

云提供商还可以选择是否按比例计费。 按比例计费时,每个部分小时按部分计费,而不按比例计费时,每个部分小时按整个小时计费。 当 IaaS 用户在很短的时间内需要大量实例进行突发处理时,这一差异就变得非常明显。

IaaS 用例

IaaS 在许多情况下都有用:

  • 当计算资源的需求不稳定时。 例如,电子商务网站在节日期间的需求最大。
  • 适用于没有资本投资现场基础结构的新组织。
  • 当组织需要快速发展其 IT 资源时(例如 Internet 初创公司)。
  • 适用于临时项目或临时基础结构需求(当组织在有限时间内需要大量计算能力时)。

在以下情况中,IaaS 可能不是最佳选项:

  • 法规符合性不允许数据离岸或外包。
  • 应用程序具有严格的服务质量 (QoS) 要求。
  • 组织当前具有内部自定义基础结构来满足其 IT 需求。

IaaS 示例

所有主要的云提供商都提供 IaaS 产品。 Azure VM 出租遍布世界各地的不同数据中心位置中的实例。 有各种实例类型可供用户选择,从低内存、单 CPU(每小时花费几美分)一直到多核、高性能、GPU 加速实例(每小时花费几美元)应有尽有。

知识检查

1.

关于 SaaS,下列哪一项是正确的?

2.

有一家公司正在创建新算法来实现准确的人脸识别软件。 该公司有兴趣迁移到云来满足它的应用程序开发需求。 软件即服务模型适合这个特定项目吗?

3.

Azure 应用服务就是一种 PaaS。 假设你已阅读 PaaS 部分,下面关于应用服务的表述哪些是错误的?

4.

下面哪一项被视为是 IaaS 的特征?