基础架构即服务通常简称为“IaaS”,是一种云计算形式,通过互联网向消费者提供基本的计算、网络和存储资源,按使用量计费。 IaaS 使最终用户能够根据需要扩展和缩减资源,从而减少对高额前期资本支出或不必要的“自有”基础架构的需求,尤其适合应对峰值工作负载的情况。 与 PaaS 和 SaaS(甚至是容器和无服务器等较新的计算模式)相比,IaaS 对云端资源的控制水平最低。
在 2010 年代初期,IaaS 即作为一种流行的计算模式出现,逐渐成为许多类型的工作负载的标准抽象模型。 而随着容器和无服务器等新技术的问世,以及微服务应用模式的崛起,IaaS 虽然仍是一种基础性的技术,但所处的领域比以往任何时候都更加“拥挤”。
在以下视频中,Bradley Knapp 将 IaaS 的基本内容一一道来:
IaaS 由一系列物理资源和虚拟化资源构成,为消费者提供在云端运行应用和工作负载所需的基本构建块:
物理数据中心。 IaaS 提供商负责管理大型数据中心,这些数据中心通常遍布于世界各地,包含支持各个抽象层所需的物理机器,通过网络为最终用户提供服务。 在大多数 IaaS 模型中,最终用户不会直接与物理基础架构互动,基础架构以“即服务”方式提供给用户使用。
计算。 IaaS 通常被理解为虚拟化计算资源,因此,出于本文的目的,我们将 IaaS 计算定义为虚拟机。 提供商负责管理虚拟机管理器,最终用户随后可以通过编程方式,为虚拟“实例”置备所需的计算能力和内存容量(有时是存储容量)。 大多数提供商都为不同类型的工作负载同时提供 CPU 和 GPU。 云计算通常还与自动扩展和负载均衡等支持服务搭配使用,这些服务使云计算具备易于扩展和高性能等特点,从而成为用户的理想之选。
网络。 云端网络是软件定义的网络的一种形式,通常借助 API,以编程方式提供传统的网络硬件,例如路由器和交换机。 更高级的网络用例包括构建多专区区域和虚拟私有云,稍后将会更详细地进行讨论。
存储。 云存储主要有三种类型:块存储、文件存储和对象存储。 块存储和文件存储在传统数据中心内很常见,但它们通常很难驾驭云计算的规模、性能和分布式等特性。 因此,对象存储成为这三者中在云端最常见的存储模式,这主要是因为它具有高度分布的特性(因而具有高度的弹性),并且利用商用硬件,可以通过 HTTP 轻松访问数据,不仅从本质而言在规模上无限制,而且性能也会随着集群的增长而线性扩展。
与传统的 IaaS 相比,BMaaS 提供的控制水平更低。 在 BMaaS 环境中,资源仍是按需置备,通过互联网提供,采用按使用量付费的计费方式(通常按月或按小时递增)。
与传统 IaaS 不同,BMaaS 不会为最终用户提供已经虚拟化的计算、网络和存储资源,而是提供对底层硬件的直接访问。 这种访问级别使最终用户几乎能够完全控制他们的硬件。 由于硬件既不虚拟化也不支持多个虚拟机,因此 BMaaS 还可能为最终用户提供最高水平的性能,这对于 HPC 和 GPU 计算、高性能数据库、分析工作负载等用例具有十分重要的价值。
对于习惯于传统数据中心的最终用户,BMaaS 环境也会让他们感到十分熟悉,并且可能与现有工作负载的架构模式最为契合。
然而,这些优势也是以牺牲传统 IaaS 的优点为代价的,即通过简单地制作实例副本并在它们之间实现负载均衡,真正快速置备和横向扩展资源的能力。
在将 BMaaS 与 IaaS 进行比较时,并不存在孰优孰劣之分,具体的选择完全取决于哪种模型最适合支持特定的用例或工作负载。
为了提高资源的可用性和弹性,目前大多数云提供商都提供一个层次结构,以确定如何将工作负载映射到物理和虚拟基础架构以及地理区域。
例如,IBM Cloud 具有可用性专区和区域。 这两个术语的定义如下:
可在 IBM Cloud 博客上阅读有关区域和专区的更多信息。
对于许多最终用户而言,尤其是具有敏感数据或严格合规要求的企业,在公有云中实施额外的安全和隐私措施非常有必要。 虚拟私有云 (VPC) 既能为云基础架构资源提供额外的隔离,又不会牺牲速度、规模或功能。
VPC 使最终用户能够在公有云中为单个租户创建私有网络。 它们使用户能够控制子网的创建、IP 地址范围的选择、虚拟防火墙、安全组、网络 ACL、站点到站点虚拟专用网络 (VPN) 和负载均衡。
在以下视频中,Ryan Sumner 比较详细地介绍了 VPC:
IaaS 通常按使用量定价,这意味着用户只需为他们使用的资源付费。 随着时间的推移,云基础架构的定价模式已经覆盖了许多不同的粒度度级别:
综合来看,客户将云基础架构视为潜在选择的原因有很多:
IaaS 代表通用计算资源,因此能够支持所有类型的用例。 如今,IaaS 最常用于开发和测试环境、面向客户的网站和 Web 应用、数据存储、分析和数据仓储工作负载以及备份和恢复,尤其是用于本地工作负载。 IaaS 也非常适合部署和运行常见的业务软件和应用,例如 SAP。
虽然 IaaS 能够支持多样化的工作负载(我们将会在后面的部分加以探讨),但一些新兴的计算模型可能更适合支持某些类型的工作负载或应用架构,例如微服务。
要了解 IaaS、PaaS 和 SaaS 这些粗颗粒度的即服务类别之间的区别,最简单也最常见的方法就是了解技术栈中的哪些要素由供应商管理,哪些则由最终用户管理。
在传统 IT 环境中,最终用户负责端到端地管理整个技术栈,覆盖服务器和网络的物理硬件、虚拟化、操作系统、中间件等。
而在传统 IT 环境之后,IaaS、PaaS 和 SaaS 的抽象程度逐级提高。 IaaS 抽象出物理计算、网络、存储资源以及虚拟化这些资源所需的技术。 PaaS 则更进一步,将操作系统、中间件和运行时的管理抽象化。 无服务器计算(见下文)抽象出除应用代码本身之外所有内容的管理,SaaS 则提供完整的最终用户应用即服务,抽象出技术栈的所有剩余部分。
了解有关 IaaS、PaaS 和 SaaS 之间差异的更多信息。
最近,在围绕云工作负载的讨论中,容器和无服务器日益成为主角。 在许多方面,IaaS 都是通往柏拉图式的云理想之旅中的一步。
IaaS 确实使最终用户能够以更细的颗粒度为所使用的资源付费,但很少能够做到只为所使用的资源买单。 即使虚拟服务器通常涉及长时间运行的应用,容量利用率也不尽如人意。
IaaS 抽象出许多低层级组件,因此开发人员可以专注于能够为企业带来差异化优势的业务逻辑,但它仍然需要最终用户来管理操作系统、中间件和运行时。
与传统计算相比,IaaS 通常更节省资源和成本,但建立虚拟机仍然比较耗时,并且每个虚拟机都会以操作系统的形式产生开销。
这种 IT 模型几乎能够支持所有类型的工作负载,但在有关塑造真正的云的某些底层理念和价值观方面,它仍有一定的发展空间。
容器和无服务器是两种较新的云模型,它们正在挑战传统的 IaaS 模型,在某些类别的云原生应用和工作负载方面具有优势。
在某些情况下,容器已经开始取代虚拟机,成为流程或服务部署的标准单位,并通过 Kubernetes 等编排工具管理整个集群生态系统。
在这些模型中,无服务器无疑走得最远,它几乎抽象出除业务逻辑之外的所有内容,既可根据需求完美扩展,也真正兑现了只为所使用的资源付费的承诺。
微服务架构也日益受到青睐,这种模型将应用被分解为若干个较小的部分,单独部署,管理各自的数据,并通过 API 进行通信;按照目前的趋势,容器和无服务器方法只会变得越来越普及。
传统 IaaS 是迄今为止最成熟的云计算模型,在该领域占据着绝大多数的市场份额,而容器和无服务器将作为值得关注的技术,开始被人们择机采用,在市场中一显身手。
IBM 提供了一个全栈式云平台,其中包括虚拟化计算、网络和存储的完整 IaaS 层。 此外,凭借在业内独特的地位,IBM Cloud 还为希望加强底层硬件控制力度的用户提供 BMaaS。
IBM 还致力于为云原生应用和工作负载提供解决方案,除了 IaaS 之外,还包括面向无服务器应用的 IBM Cloud Kubernetes Service 和 IBM Cloud Functions。
要开始使用云 IaaS,须创建一个 IBM Cloud 帐户,然后配置您的第一个虚拟服务器。