17 云计算和分布式计算

第17章 云计算和分布式计算

分布式系统是这样一种系统:在其中,一台你甚至都不知道其存在的计算机出现故障,就可能会使你自己的计算机无法使用。

——莱斯利·兰波特(Leslie Lamport)

“云计算” 是指按需提供资源。这个术语被用于指代多种计算能力。例如,你可能会说:“我所有的照片都备份到云端了。” 但这意味着什么呢?这意味着:

  • 我的照片存储在别人的计算机上。他们负责资金投入、维护、保养以及备份工作。

  • 我可以通过互联网访问我的照片。

  • 我只需为我使用或申请的空间付费。

  • 存储服务是弹性的,这意味着它可以根据我的需求变化而扩展或收缩。

  • 我对云服务的使用是自行配置的:我创建一个账户后就可以立即开始使用它来存储我的资料。

从云端提供的计算能力包括从照片(或其他类型的数字制品)存储等应用程序,到通过 API(应用程序接口)暴露的细粒度服务(例如,文本翻译或货币转换),再到低层级的基础设施服务,如处理器、网络和存储虚拟化。

在本章中,我们将重点关注软件架构师如何使用来自云端的基础设施服务来交付其正在设计和开发的服务。在此过程中,我们将深入探讨分布式计算的一些最重要的原理和技术。这意味着使用多台(真实的或虚拟的)计算机协同工作,从而产生比单台计算机完成所有工作更快的性能和更健壮的系统。我们将这一主题包含在本章中,是因为分布式计算在基于云的系统中体现得最为深入。我们在此给出的内容是对与架构最相关的原理的简要概述。

我们首先讨论云如何提供和管理虚拟机。

17.1 云基础

公有云由云服务提供商拥有和提供。这些机构向任何同意服务条款并且能够为使用服务付费的人提供基础设施服务。一般来说,使用这种基础设施构建的服务可通过公共互联网访问,不过你可以设置防火墙等机制来限制可见性和访问权限。

一些组织运营私有云。私有云由一个组织拥有并运营,仅供该组织的成员使用。一个组织可能出于控制、安全和成本等方面的考虑而选择运营私有云。在这种情况下,云基础设施及其上开发的服务仅在组织内部网络中可见和可访问。

混合云方法是一种混合模式,其中一些工作负载在私有云中运行,其他工作负载在公有云中运行。在从私有云向公有云(反之亦然)迁移期间可能会使用混合云,或者也可能因为某些数据在法律上需要受到比公有云所能提供的更强的控制和审查而使用混合云。

对于使用云服务设计软件的架构师来说,从技术角度看,私有云和公有云之间没有太大差异。因此,我们在这里将讨论重点放在基础设施即服务(IaaS)公有云上。

一个典型的公有云数据中心拥有数以万计的物理设备 —— 接近 10 万而不是 5 万。数据中心规模的限制因素是其消耗的电力以及设备产生的热量:将电力引入建筑物、分配给设备以及消除设备产生的热量都存在实际限制。图 17.1 展示了一个典型的云数据中心。每个机架包含 25 台以上的计算机(每台计算机有多个 CPU),确切数量取决于可用的电力和冷却能力。数据中心由一排排这样的机架组成,高速网络交换机连接着这些机架。云数据中心是能源效率(在 第 6 章 讨论的主题)在某些应用中成为关键质量属性的原因之一。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 17.1 云数据中心

当你通过公有云提供商访问云时,实际上你正在访问分布在全球各地的数据中心。云提供商将其数据中心划分为 “区域”。云区域既是一种逻辑结构,也是一种物理结构。由于你开发并部署到云中的服务是通过互联网访问的,云区域可以帮助你确保服务在物理上靠近其用户,从而减少访问服务的网络延迟。此外,一些监管限制,如《通用数据保护条例》(GDPR),可能会限制某些类型的数据跨境传输,所以云区域有助于云提供商遵守这些法规。

一个云区域有许多物理上分布的、具有不同电力来源和互联网连接的的数据中心。一个区域内的数据中心被分组为 “可用区”,这样,两个不同可用区中的所有数据中心同时发生故障的概率极低。

选择你的服务将运行的云区域是一个重要的设计决策。当你请求提供一个在云中运行的新虚拟机(VM)时,你可以指定该虚拟机将在哪个区域运行。有时可用区可能会被自动选择,但出于可用性和业务连续性的原因,你通常会希望自己选择可用区。

对公有云的所有访问都通过互联网进行。进入云有两个主要网关:管理网关和消息网关([图 17.2][ch15fig02])。在这里,我们将重点关注管理网关;我们在 第 15 章 中讨论过消息网关。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 17.2 公有云入口网关

假设你希望在云中为自己分配一个虚拟机(VM)。你向管理网关发送一个请求,要求创建一个新的虚拟机实例。这个请求有许多参数,但三个基本参数是新实例将运行的云区域、实例类型(例如,CPU 和内存大小)以及一个虚拟机映像的标识(ID)。管理网关负责管理数以万计的物理计算机,每台物理计算机都有一个虚拟机管理程序(hypervisor)来管理其上的虚拟机。所以,管理网关将通过询问来确定一个能够管理你所选类型的额外虚拟机的虚拟机管理程序:那台物理机上是否有足够未分配的 CPU 和内存容量来满足你的需求?如果有,它将要求该虚拟机管理程序创建一个额外的虚拟机;虚拟机管理程序将执行此任务并将新虚拟机的 IP 地址返回给管理网关。然后管理网关将该 IP 地址发送给你。云提供商确保其数据中心有足够的物理硬件资源可用,这样你的请求就永远不会因为资源不足而失败。

管理网关不仅返回新分配的虚拟机的 IP 地址,还返回一个主机名。分配虚拟机后返回的主机名反映了该 IP 地址已被添加到云域名系统(DNS)这一事实。任何虚拟机镜像都可用于创建新的虚拟机实例;也就是说,虚拟机镜像可能包含一个简单的服务,或者只是创建一个复杂系统的部署过程中的一个步骤。

除了分配新虚拟机之外,管理网关还执行其他功能。它支持收集有关虚拟机的计费信息,并且提供监控和销毁虚拟机的能力。

管理网关可通过互联网向其应用程序接口(API)发送消息来访问。这些消息可以来自另一个服务,例如部署服务,或者它们可以由你计算机上的命令行程序生成(允许你编写操作脚本)。管理网关也可以通过云服务提供商运营的基于网络的应用程序来访问,不过这种交互界面对于除最基本操作之外的操作来说效率不高。

17.2 云中的故障

当一个数据中心包含数以万计的物理计算机时,几乎可以肯定每天都会有一台或多台计算机出现故障。亚马逊报告称,在一个拥有约 64,000 台计算机(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值