云原生Spring实战
上QQ阅读APP看书,第一时间看更新

1.2 云和云计算模型

在关注我们的主角(云原生应用)之前,我想要先介绍一下我们这个旅程的发生地,也就是云原生应用的运行环境——云(如图1.2所示)。在本节中,我将定义云及其主要特征。毕竟,如果云原生应用按照设计要在云环境中运行,我们应该知道这是一个什么样的环境。

图1.2 云是一种IT基础设施,其主要特征是具有不同的计算模型,供应商会按照消费者所需的控制程度以服务的形式提供

云是一种能够按照云计算模型向消费者提供计算资源的IT基础设施。美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)是这样定义云计算的[5]


[5] NIST, “The NIST Definition of Cloud Computing”, http://mng.bz/rnWy。

云计算是一种模型,能够实现按需在任意位置对可配置的计算资源(如网络、服务器、存储、应用和服务)共享池进行便利的网络访问,这些计算资源可以快速获取和释放,并且要尽可能减少管理成本以及与服务供应商的沟通交流。

就像我们会从供应商那里获取电力,而不是自己发电一样,借助云,我们就能够以商品的形式获取计算资源(例如服务器、存储和网络)。

云供应商管理底层的计算基础设施,所以消费者不需要操心像机器或网络这样的物理资源。迁移到云的公司可以通过网络(通常是互联网)获取需要的所有计算资源,借助一组API,这些公司能够自助式地按需获取和扩展资源。

弹性是该模型的主要特点之一:计算资源可以根据需要动态获取和释放。

弹性指的是一个系统能够在多大程度上自主地获取和减少资源以适应工作负载的变化,确保在每个时间点可用的资源与当前的需求都是相互匹配的[6]


[6] N.R. Herbst, S. Kounev, R. Reussner, “Elasticity in Cloud Computing: What it is, and What it is Not” , http://mng.bz/BZm2。

传统的IT基础设施无法提供弹性。公司必须要计算出所需的最大计算能力,并建立能够支持该能力的基础设施,即便其中大多数的计算能力只是偶尔才会用到。在云计算模型下,计算资源的使用会受到监控,消费者只需要为实际使用的资源付费。

对于云基础设施应该放在哪里,以及由谁来管理,并没有严格的要求。交付云服务的部署模型有多种,主要是私有云、公有云和混合云。

私有云:提供的云基础设施只能由一个组织使用。它可以由组织自身或第三方进行管理,可以托管在企业内部或企业外部。对于处理敏感数据和高度关键系统的组织来说,私有云通常是首选方案。如果要完全控制基础设施的合规性,以符合特定的法律和要求,比如,通用数据保护条例(General Data Protection Regulation,GDPR)或加利福尼亚消费者隐私法案(California Consumer Privacy Act,CCPA),私有云也是一个常见的选择。例如,银行和医疗机构很可能会建立自己的云基础设施。

公有云:提供的云基础设施可公开使用。它通常属于某个组织,并由其进行管理,也就是所谓的云供应商,基础设施由供应商托管。公有云服务提供商如Amazon Web Services(AWS)、Microsoft Azure、Google Cloud、Alibaba Cloud和DigitalOcean。

混合云:由上述任意类型的两个或更多不同的云基础设施组合而成,并且在提供服务的时候,就像是来自一个环境一样。

图1.3描述了5种主要的云计算模型、在每种模型下平台提供了什么内容,以及向消费者提供了哪些抽象。例如,在基础设施即服务(IaaS)模型下,平台提供并管理计算、存储和网络资源,消费者则会设置和管理虚拟机。至于该选择哪种服务模型,取决于消费者需要对基础设施的控制程度以及他们需要管理的计算资源类型。

图1.3 云计算模型的差异在于提供的抽象层级以及由谁(平台或消费者)来管理不同的层级