TranslateProject/published/202307/20220916 A Complete Guide to Cloud Service Architectures.md

143 lines
14 KiB
Markdown
Raw Normal View History

[#]: subject: "A Complete Guide to Cloud Service Architectures"
[#]: via: "https://www.opensourceforu.com/2022/09/a-complete-guide-to-cloud-service-architectures/"
[#]: author: "Mir H.S. Quadri https://www.opensourceforu.com/author/shah-quadri/"
[#]: collector: "lkxed"
[#]: translator: "cool-summer-021"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15979-1.html"
云服务架构完全指南
======
![][0]
> 经过大约 16 年的演变,云计算已经成为一种几乎所有网民都在使用的技术。它可以作为一种服务,用于满足各类企业和消费者的需求。因此,在云计算中正在使用多种服务架构,旨在根据最新的需求来定制所需技术。本文就如今使用的所有服务架构,提供一份完全指南。
尽管在全球范围内建立互相协同的计算机网络的构想在 20 世纪 60 年代初就提出了,但直到 2006 年,谷歌的首席执行官 <ruby>埃里克·施密特<rt>Eric Schmidt</rt></ruby> 在当时的背景下引入了“<ruby>云计算<rt>cloud computing</rt></ruby>”一词,这种构想才成为一种正式的概念。
云计算可以简单理解为遍布于世界各地的远程服务器网络,通过互联网共享数据和协同工作,从而为企业和消费者提供服务。虽然这样的定义比较武断,但它包含了云计算背后的核心思想。促成这项技术发展的主要因素是对“数据粘性”的需求,就是令数据更容易被各种设备访问,同时也要减少数据丢失的风险。如果用户甲只在一台服务器上保存了数据,对于用户甲来说,只要有一台服务器中断,数据就很有可能永久性丢失。这种做法无异于“把所有鸡蛋放在同一个篮子里”,从来都不是一个好办法,特别是当你在处理对公司和消费者具有重要意义的数据时。但如果你在多台服务器上备份了用户甲的数据,将有两个主要好处:其一,即使一台服务器中断,用户甲仍然可以正常获取数据;其二,云服务可以从负荷最小的、离他最近的那台正常运作的服务器获取数据。这使用户甲可以在不同设备上更快、更容易地获取数据。
历经大约 16 年的发展,云计算从起初只是一种用于备份图片的工具,变为了互联网的骨干。如今几乎所有的应用,从 Office 到 Asana 以及 Todolist都利用云计算来实现实时访问和数据共享。几乎任意一款你能想像到的应用都在使用云计算。从 Gmail 和 YouTube到Instagram一切都使用云计算以提供快速、便捷、可靠的数据访问功能。
提供云计算服务的公司称为云服务提供商。亚马逊、谷歌、微软、Salesforce、Cloud9 等都是 B2B 和 B2C 领域的云服务提供商。
在早期,云服务供应商通常指提供三类服务:
* <ruby>软件即服务<rt>Software as a Service</rt></ruby>SaaS
* <ruby>平台即服务<rt>Platform as a Service</rt></ruby>PaaS
* <ruby>基础设施即服务<rt>Infrastructure as a Service</rt></ruby>IaaS
然而,随着行业需求不断发展,区块链和 AI 等新技术的出现,云服务提供商也开发了新的模式,用于更好地满足客户的各种需求。本文将详细论述如今大众普遍使用的那些云计算模式。
### 云端的架构
我们已经了解了什么是云计算,以及它是如何发展成一个高达 4450 亿美元产值的行业,现在我们从技术视角来理解云计算。通常一个云端架构都由两个主要部件组成 —— <ruby>前台<rt>front-end</rt></ruby><ruby>后台<rt>back-end</rt></ruby>
![Figure 1: The architecture of a cloud (Courtesy: TechVidvan)][1]
前台包含客户端基础设施,有终端设备和用于与云端通信的应用程序界面。在现实世界里,你的智能手机和谷歌云端硬盘就是前台,它们用于访问谷歌云。
后台包含云端基础设施,包括运行云计算服务所需的一切设备。服务器、虚拟机、服务和存储都是由云端基础设施提供的。为了对它们有个全局的概念,现在我们来了解一下后台的每个组件。
* <ruby>应用<rt>Application</rt></ruby>:用户或企业使用的、通过互联网与云端互动的任何应用程序的后台。
* <ruby>服务<rt>Service</rt></ruby>:云端提供的服务型基础设施。本文将详细论述各种不同的服务。
* <ruby>运行时<rt>Runtime</rt></ruby>:提供给虚拟机的运行时和执行系统。
* <ruby>存储<rt>Storage</rt></ruby>:具有灵活的伸缩性的用户/企业数据获取和管理系统。
* <ruby>基础设施<rt>Infrastructure</rt></ruby>:运行云端所需的硬件和软件。
* <ruby>安全<rt>Security</rt></ruby><ruby>管理<rt>Management</rt></ruby>:建立安全机制,保护用户/企业数据,管理各个云服务单元,避免过载和服务停机。
### 软件即服务SaaS
“软件即服务”是一种云计算模式通过互联网将软件和应用程序作为一种服务提供。谷歌云端硬盘或谷歌工作空间都是比较典型的例子。谷歌云端硬盘内的所有应用例如文档、工作表、幻灯片、表格等它们都可以通过使用浏览器访问并自动保存于云端。你可以在任意设备上获取文件的最新版本。你唯一需要做的就是登录你的账户。这就是“软件即服务”模式的优点。你不需要在你的设备上安装任何东西也不需要使用你的本地存储空间你可以直接访问云端的应用程序并省略了使用本地软件时的很多繁杂操作。SaaS 一般遵循“按需付费”法则,你只要为你需要的服务支付费用。你总是可以通过支付更多的费用来购买更多的存储和/或功能,或者根据你的要求来降低你的套餐。
#### SaaS 的好处
1. SaaS 具有高度的可伸缩性,这归功于它的“按需付费”思想。你可以根据自身需求增加/减少存储空间或程序功能。
2. 考虑到它提供的特性,如通过任何操作系统的任何设备进行实时访问,它是非常合算的。
3. 它在客户端涉及的工作很少。不需要安装或进行复杂的步骤,就可以完成软件的初始化。你可以从你的浏览器和/或应用程序中舒适地使用它。
4. 不必手动安装,软件会自动更新,而且更新过程中你也不必等待。
### 平台即服务PaaS
并不是每家科技初创公司都有必要的资源来维护自己的基础设施以便在云端运行他们的应用程序。公司尤其是创业型公司通常更倾向于把应用部署于云端这样就不必处理后台基础设施了。这就是“平台即服务”这种模式的用武之地了。Heroku 等公司提供了基于“平台即服务”的云端解决方案,令公司和个人可以在不需要直接与硬件交互的情况下就能部署并运行他们的应用程序。跟“软件即服务”类似,这种模式也提供了灵活性,你只需选择所需的服务,同时也从基础设施的角度提供了可伸缩性和安全性。
#### PaaS 的好处
1. 省去了操作云端基础设施的麻烦。你将其外包给在其云中托管你的应用程序的公司。这令你能专注于应用程序开发工作的各个生命周期。
2. PaaS 是可扩展的。你可以根据需要增加或减少存储需求、附加服务等。
3. 你设置的唯一安全参数是针对你自己的应用程序。云安全是由你的云服务提供商处理的。
4. 对公司和个人来说,把应用程序托管在云端,在时间和成本上都是合算的,特别是那些无法承担基础设施建设成本的创业型公司。
### 基础设施即服务IaaS
IaaS 相对于 PaaS 更进一步,给予用户更多的自主权。在 IaaS 模式中,云服务提供商让你对云端的底层基础设施进行操控。简而言之就是你可以根据公司需要自行设计云端环境,从专用服务器和虚拟机,到运行于服务器的操作系统,你还可以设置带宽,创建自己的安全协议,以及创建云基础设施所需的其他项目。亚马逊 AWS 和谷歌计算引擎GCE都是使用 IaaS 模式的很好的例子。鉴于此模式还可以实现用户对硬件的自主操控它也被称为硬件即服务HaaS
#### IaaS 的好处
1. “按需付费”模式中的细粒度灵活性。你可以自行决定运行多少台虚拟机以及使用多少时间。你还可以按小时付费。
2. 以“按需付费”为核心思想,它具有高度的可伸缩性。
3. 完全的自主权,对基础设施中的一切事项的控制,省去了在公司所在地点驻场维护服务器的麻烦。
4. 大多数公司保证正常运行时间、安全性和 24/7 的现场技术支持,这对企业来说非常重要。
### 存储即服务StaaS
谷歌云端硬盘、OneDrive、Dropbox 和 iCloud 是 <ruby>存储即服务<rt>Storage as a Service</rt></ruby> 行业内大名鼎鼎的产品。StaaS 就像它听起来那么简单。如果你需要的只是通过任意设备可以实时访问的云端存储空间StaaS 就是可用的选项之一。很多公司和个人都使用这样的服务来备份自己的数据。
#### StaaS 的好处
1. 借助内置的版本控制系统,实时访问最新数据。
2. 可以使用安装任意操作系统的任何设备访问数据。
3. 随着你创建、编辑和删除文件,实时备份你的数据。
4. 遵循“按需付费”模式,你可以根据需要自行确定存储空间大小。
### 一切即服务XaaS
IaaS、PaaS、SaaS 和 StaaS 的混合版,就是所谓的“<ruby>一切即服务<rt>Anything/Everything as a Service</rt></ruby>”模式,它在云计算相关社区内快速引发关注。客户可能有多种多样的需求,这些需求可能是各种不同模式的混合。在这种场景下,应当为用户提供自由选择所需服务的功能,让他们从各种不同的层级选择服务,从而创建自定义的“按需付费”模式。这种方式的好处在于,让用户根据自身需求自由选择相应的云服务。
#### XaaS 的好处
1. 可以选择你喜欢的东西和你喜欢的方式。
2. 只需要为你需要的服务支付费用,而且不需要支付任何基于层级系统的基本费用。
3. 选择你的基础设施、平台和功能的粒度水平。
4. 只要使用得当无论在时间、成本、效用上XaaS 都是非常有效的。
### 功能即服务FaaS
在某些情况下,公司或个人需要 PaaS但不是所有的功能都需要。例如基于触发器的系统如定时任务只需要在无服务器系统上运行一段代码或一个函数就可以实现一个特定的目标。例如某客户需要创建一个网站的流量监测系统在页面下载量达到一定数量时发送通知。这样的需求简而言之就是在云端运行一段持续检查要执行的触发器的代码。使用 PaaS 的成本较高。此时就是“<ruby>功能即服务<rt>Function as a Service</rt></ruby>”发挥作用的时候了。许多公司,例如 Heroku向客户提供 FaaS它只存储一段代码或一个方法只会在被触发的情况下运行。
#### FaaS 的好处
1. 你只需要支付代码运行的费用。托管代码通常是不收费的,除非计算成本很高。
2. 它不会有使用 PaaS 的那些麻烦,却让你享受所有好处。
3. 无论如何,你都不必关心底层基础设施。因此,你只需要上传代码,而不必关心任何虚拟机维护相关事宜。
4. FaaS 让你的开发更加敏捷,即编写函数式代码。
### 区块链平台即服务BPaaS
近年来,区块链席卷了科技行业。它是目前最受欢迎的技术之一,比它更受欢迎的只有人工智能和数据科学相关技术。区块链如此吸引人的原因是它提供了安全、可伸缩和透明的开放式账本架构。这些功能对于许多应用程序都是必要的,例如银行、选举系统,甚至社交媒体也需要这些功能。随着如此广泛的应用,有必要能够在云上托管这样的产品,其模式专门满足这种技术的需求。这就是<ruby>区块链平台即服务<rt>Blockchain Platform as a Service</rt></ruby>BPaaS发挥作用的地方。如今包括亚马逊 AWS 和微软 Azure 在内的许多公司都在为专门寻求在云中托管基于区块链的应用程序的客户提供BPaaS解决方案。
#### BPaaS 的好处
1. 它满足了区块链行业的特定需求,例如支持用于编写智能合约的专用语言。
2. 通过提供 API 桥接,支持与区块链(如以太坊)集成。
3. 支持在区块链技术的应用中使用自定义数据库。
4. 云的所有优点它也同样具备,即“按需付费”功能、可扩展性、安全性和访问便捷性。
*题图MJ/db8225c1-e970-4bc4-80db-514368955af2*
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/09/a-complete-guide-to-cloud-service-architectures/
作者:[Mir H.S. Quadri][a]
选题:[lkxed][b]
译者:[cool-summer-021](https://github.com/cool-summer-021)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/shah-quadri/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/08/Figure-1-The-architecture-of-a-cloud-2.jpg
[0]: https://img.linux.net.cn/data/attachment/album/202307/08/203631cnch79wfocbwtwhh.jpg