《云计算:原理与范式》一1.3 云计算的架构与类型

简介: 本节书摘来自华章出版社《云计算:原理与范式》一书中的第1章,第1.3节,作者 (澳)Rajkumar Buyya James Broberg Andrzej Goscinski,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.3 云计算的架构与类型

根据提供的能力和供应商的服务模型抽象级别,可以将云计算服务分为三类:①基础设施即服务(Infrastructure as a Service,IaaS);②平台即服务(Platform as a Service,PaaS);③软件即服务(Software as a Service,SaaS)[6]。图1.3描述了从物理基础设施到应用的云堆栈分层组织结构。

image

这些抽象层也可以视为一个更高层次的架构,可以由底层服务组成一个更高层的服务[37]。Buyya等[38]的参考模型阐述了集成式架构中每一层的作用。一个核心中间件管理物理资源,虚拟机部署在它们上面。此外,它提供了必需的功能(如核算和计费)供多租户按需付费。云开发环境以提供应用开发和部署能力的基础设施服务为基础,在这个层面上,各种编程模型、库、API和混搭编辑器(mashup editor)建立了业务、Web和科学应用的范围。一旦部署在云中,这些应用便由最终用户使用。

1.3.1 基础设施即服务

按需提供的虚拟化资源(计算、存储和通信)称为基础设施即服务(IaaS)[7]。云基础设施使运行操作系统有多种选择,在定制软件堆栈的服务器上按需配置。基础设施服务可以认为是最底层的云计算系统[39]。
Amazon Web服务主要提供IaaS。对于Amazon EC2服务,这意味着它可以提供可定制的虚拟机软件堆栈,这与定制一个普通的物理服务器有点类似。授予用户权限用于执行许多服务器活动,例如,服务器的启动和停止、自定义安装软件包、附加虚拟磁盘、配置访问权限和防火墙规则。

1.3.2 平台即服务

除了提供原始计算(raw computing)和存储服务的基础设施为导向的云外,另一种方法是提供一个更高层次的抽象使云易于编程,该方法称为平台即服务(PaaS)。云平台提供了一个环境,开发者在上面创建和部署应用,而不必知道应用将使用多少处理器或内存。此外,多个编程模型和专门服务(如数据访问、认证和付款)提供了新的应用结构块[40]。
Google AppEngine是PaaS的一个案例,它提供了可扩展的开发环境并托管Web应用,这应该在特定的编程语言(如Python或Java)中编写,并使用服务的自身专有结构化对象数据来存储。结构块包括内存对象缓存(memcache)、邮件服务、即时通信服务(XMPP)、图像处理服务与Google账户认证服务的整合。

1.3.3 软件即服务

应用驻留在云堆栈的顶部。最终用户通过Web门户访问这一层提供的服务。因此,越来越多的消费者从本地计算机上安装程序转向提供相同功能的在线软件服务。现在传统的桌面应用(如字处理和电子表格)可以在Web中作为一个服务访问。这一交付应用模型称为软件即服务(SaaS),它减轻了客户软件维护的负担,并简化了开发和供应商的测试 [ 37,41]。
Salesforce.com依靠SaaS模型,提供完全驻留在自己服务器上的商业生产应用(CRM),让客户定制和按需访问这些应用。

1.3.4 部署模型

虽然云计算主要出现在公共计算效用模型中,但也采用了与物理位置和分布变化相关的其他部署模型。从这个意义上说,以部署模型为基础,无论什么服务类型,云都可以分为公共云、私有云、社区云或混合云[6],如图1.4所示。
Armbrust等[5]将公共云定义为公众以按需付费的方式来使用云;私有云则定义为商业或者其他组织的内部数据中心,而公众无法直接使用。
在大多数情况下,建立一个私有云是通过添加虚拟化和类似云(cloud-like)的接口对现有的基础设施进行重组实现的。这允许用户与本地数据中心进行交互,同时具备公共云的相同优势。最显著的是自助服务接口、访问虚拟服务器的特权和按使用计量和计费。

image

社区云是“由一些组织共享基础设施,并为有共同关注点(如任务、安全要求、策略和准则)的社区服务[6]”。
公共云与私有云的计算能力结合便形成了混合云[7]。暂时租用空间处理负载高峰的方法称为“云爆发(cloud bursting)”[42]。

相关文章
|
17天前
|
存储 Serverless 数据库
科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明
本文介绍了云计算服务的几种主要类型,包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、BaaS(后端即服务)和FaaS(函数即服务)。每种服务模式提供了不同的服务层次和功能,从基础设施的提供到应用的开发和运行,再到软件的交付使用,满足了企业和个人用户在不同场景下的需求。文章详细阐述了每种服务模式的特点、优势和缺点,并列举了相应的示例。云计算服务的发展始于21世纪初,随着互联网技术的普及,这些服务模式不断演进,为企业和个人带来了高效、灵活的解决方案。然而,使用这些服务时也需要注意服务的稳定性、数据安全性和成本等问题。
399 3
|
16天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第18天】Serverless架构,即无服务器架构,是一种新兴的云计算模式,让开发者无需管理服务器即可构建和运行应用。本文探讨了其核心概念、优势、挑战及最佳实践,强调了按需付费、自动扩展和开发效率等优点,同时也指出了冷启动、状态管理和调试监控等挑战。
|
6天前
|
前端开发 JavaScript API
探索JAMstack架构:现代Web开发的新范式
【10月更文挑战第28天】JAMstack架构是一种现代Web开发方法,以其高性能、高安全性和易于维护的特点受到开发者青睐。本文深入探讨了JAMstack的核心概念、优势、工具链及其如何改变Web开发方式,包括静态网站生成、API驱动和预渲染等关键技术。
|
10天前
|
开发者 容器
Flutter&鸿蒙next 布局架构原理详解
本文详细介绍了 Flutter 中的主要布局方式,包括 Row、Column、Stack、Container、ListView 和 GridView 等布局组件的架构原理及使用场景。通过了解这些布局 Widget 的基本概念、关键属性和布局原理,开发者可以更高效地构建复杂的用户界面。此外,文章还提供了布局优化技巧,帮助提升应用性能。
72 4
|
8天前
|
机器学习/深度学习 监控 Serverless
探索Serverless架构:云计算的新前沿
【10月更文挑战第26天】本文探讨了Serverless架构作为新兴的云计算范式,如何改变应用的构建和部署方式。文章介绍了Serverless的核心概念、优势和挑战,并提供了开发技巧和实用工具,帮助开发者更好地理解和利用这一技术。
|
10天前
|
存储 Dart 前端开发
flutter鸿蒙版本mvvm架构思想原理
在Flutter中实现MVVM架构,旨在将UI与业务逻辑分离,提升代码可维护性和可读性。本文介绍了MVVM的整体架构,包括Model、View和ViewModel的职责,以及各文件的详细实现。通过`main.dart`、`CounterViewModel.dart`、`MyHomePage.dart`和`Model.dart`的具体代码,展示了如何使用Provider进行状态管理,实现数据绑定和响应式设计。MVVM架构的分离关注点、数据绑定和可维护性特点,使得开发更加高效和整洁。
145 3
|
11天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第23天】Serverless 架构是一种新兴的云计算范式,允许开发者构建和运行应用程序而无需管理服务器。本文深入探讨了 Serverless 的核心概念、优势、挑战及最佳实践,帮助开发者更好地理解和应用这一技术。
|
14天前
|
前端开发 JavaScript 安全
探索 JAMstack 架构:现代Web开发的新范式
【10月更文挑战第20天】JAMstack(JavaScript、APIs、Markup)架构是一种现代Web开发方法,通过预构建静态页面、动态功能通过APIs实现和依赖JavaScript,提供高性能、安全和可扩展的Web开发新范式。本文深入探讨其核心理念、优势、工具和最佳实践,帮助开发者理解和应用JAMstack。
|
22天前
|
容器
Flutter&鸿蒙next 布局架构原理详解
Flutter&鸿蒙next 布局架构原理详解
|
23天前
|
测试技术 uml
#如何画好架构图:7种常用类型与示例
【10月更文挑战第12天】 架构图是展示系统结构和组件之间关系的图形表示,它对于理解系统的组织和设计至关重要。在不同的上下文中,架构图的类型和细节会有所不同。以下是7种常用的架构图类型及其示例:
75 2