《云计算:原理与范式》一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天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
23 0
|
1月前
|
存储 搜索推荐 数据挖掘
ElasticSearch架构介绍及原理解析
ElasticSearch架构介绍及原理解析
102 0
|
1月前
|
存储 运维 负载均衡
MFS详解(二)——MFS原理和架构
MFS详解(二)——MFS原理和架构
34 0
|
26天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
32 0
|
26天前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性和容错性成为企业技术战略的关键组成部分。本文深入探讨了微服务的核心概念,包括其设计原则、技术栈选择以及与容器化和编排技术的融合。通过实际案例分析,展示了如何利用微服务架构提升系统性能,实现快速迭代部署,并通过服务的解耦来提高整体系统的可靠性。
|
23天前
|
Kubernetes API 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型的浪潮中,微服务架构已成为许多企业追求敏捷开发、持续交付和系统可维护性的关键解决方案。本文将深入探讨微服务架构的设计原则、技术选型以及实践案例,为后端开发者提供一套构建和维护微服务系统的实用指南。
|
26天前
|
存储 Java 应用服务中间件
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
49 0
|
1月前
|
API 持续交付 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型和技术迭代的浪潮中,微服务架构以其灵活性、可扩展性和独立性成为现代后端开发的重要趋势。本文深入探讨了构建高效微服务架构的关键要素,包括服务划分策略、容器化部署、API网关设计以及持续集成与持续部署(CI/CD)的实践。通过分析这些组件和流程,我们旨在为后端开发者提供一套实用的指南,帮助他们构建和维护一个高性能、可靠的微服务系统。
26 5
|
1月前
|
监控 数据管理 持续交付
构建高效微服务架构:后端开发的新范式
【2月更文挑战第30天】在现代软件开发领域,微服务架构已成为设计灵活、可扩展且易于维护系统的关键方案。本文将深入探讨如何通过一系列最佳实践和策略来构建一个高效的微服务后端,涵盖服务划分、通信机制、数据管理以及持续集成与部署等方面。我们的目标是为后端开发者提供一套综合性指南,以帮助他们在不断变化的技术环境中保持竞争力。
|
1月前
|
敏捷开发 API 开发者
构建高效微服务架构:后端开发的新范式
【2月更文挑战第30天】 在当今软件开发的快速演变中,微服务架构以其灵活性、可扩展性和技术异构性的优势,成为企业追求敏捷开发和部署的首选模型。本文将深入探讨如何在后端开发中实现高效的微服务架构,包括关键设计原则、技术选型以及实践案例分析。通过阐述如何利用容器化、服务网格、API网关等现代技术手段,我们旨在为开发者提供一套全面的指导方针,以帮助他们构建出既健壮又易于维护的微服务系统。
12 1