云基础设施基础知识
理解支撑现代后端部署的基础云基础设施概念。
云基础设施为何存在
云基础设施用通过互联网按需提供的资源,取代了对物理服务器的管理。
- 传统上,公司必须购买并维护自己的硬件。
- 扩展规模需要为峰值容量进行手动配置和规划。
- 云平台按需提供计算、存储和网络资源。
详情
在云计算出现之前,公司必须自己构建和管理基础设施。这意味着要购买物理服务器、搭建数据中心、处理散热和供电,并长期维护硬件。
系统扩展尤其困难。如果流量增加,公司需要提前购买并安装更多服务器。如果需求下降,这些资源就会闲置,造成成本浪费。
云基础设施通过互联网提供资源来解决这个问题。开发者不再管理物理机器,而是通过云平台请求计算能力、存储和网络资源。
这使系统能够根据需求动态扩展,而无需前期硬件投入。基础设施变成了可以立即配置的东西,而不再是必须亲自构建和维护的实体。
这种转变是现代后端系统的重要基础,使开发更快、运维开销更低,并且扩展更加灵活。
计算服务
计算服务提供在云中执行应用程序代码所需的 CPU、内存和运行时。
- 它们使用虚拟机、容器或无服务器函数来运行应用程序代码。
- 计算服务提供执行应用程序所需的核心资源。
- 不同的模型在控制性和抽象程度之间提供不同的权衡。
详情
计算服务是云平台的基础——它们负责真正运行应用程序代码。没有计算资源,存储或数据库等其他服务就没有东西可以交互。
云提供商提供了不同的代码运行方式。虚拟机让你可以完全控制操作系统,容器运行时提供轻量且可移植的环境,而无服务器函数则允许代码在完全不管理基础设施的情况下运行。
所有这些模型都提供了 CPU、内存和执行环境等基本资源。区别在于开发者需要承担多少系统管理责任。
例如,AWS EC2、Google Compute Engine 和 Azure Virtual Machines 等服务允许用户配置和管理虚拟服务器。更抽象的服务,如无服务器平台,会移除其中大部分责任。
选择合适的计算模型取决于所需的控制级别以及正在构建的应用程序的复杂度。
托管数据库
托管数据库负责设置、维护和扩展,因此应用程序可以专注于存储和访问数据。
- 云服务提供商负责数据库的设置、备份和复制。
- 它们会自动处理扩展和高可用性。
- 应用程序与数据库交互,而无需管理基础设施。
详情
数据库对大多数应用程序都至关重要,但手动管理它们既复杂又耗时。传统上,团队必须自己安装数据库软件、配置备份、处理故障并管理扩展。
托管数据库服务将这些责任转移给云服务提供商。像 AWS RDS、Google Cloud SQL 和 Azure SQL Database 这样的服务会自动处理预配、补丁更新和监控等任务。
它们还提供内置功能,例如自动备份、跨多个位置的复制,以及根据需求进行扩展。这提高了可靠性,并确保即使在发生故障时数据也可用。
因此,开发人员可以专注于应用逻辑和数据建模,而不是基础设施管理。这在保持高性能和高可用性的同时,显著降低了运维复杂度。
对象存储
对象存储以高持久性和可扩展性存储文件、媒体等非结构化数据。
- 它用于存储图像、视频、日志和备份等文件。
- 数据以对象形式存储,而不是传统文件系统或数据库。
- 对象存储专为超大规模和高持久性而设计。
详情
对象存储旨在存储大量非结构化数据。与存储结构化记录的数据库不同,对象存储处理的是图像、视频、日志和备份等文件。
每个文件都作为一个对象存储,其中包含数据本身、元数据以及唯一标识符。这种结构使系统能够高效地检索和管理海量数据。
像 AWS S3、Google Cloud Storage 和 Azure Blob Storage 这样的云对象存储服务,都是为持久性和可扩展性而构建的。它们会自动在多个位置复制数据,以防止数据丢失。
由于这种设计,对象存储可以扩展到处理海量数据集,而无需复杂的基础设施管理。它是现代应用中需要可靠且可扩展文件存储的核心组件。
云网络
云网络以安全的方式连接各项服务,并支持云系统中各组件之间的通信。
- 虚拟网络用于隔离和组织云资源。
- 负载均衡器将流量分配到多个服务之间。
- 网关控制内部系统与外部系统之间的访问。
详情
云网络提供了基础设施,使不同的服务能够在云环境中相互通信。没有它,计算实例、数据库和存储系统将无法有效交互。
虚拟网络充当隔离的环境,用于对资源进行分组和控制。它们定义服务如何连接,以及谁可以访问这些服务。
负载均衡器将传入流量分配到多个计算实例上。这可以提升性能,并确保即使某个实例发生故障,系统仍然可用。
网关负责管理内部云资源与外部客户端或网络之间的通信。它们有助于执行安全策略,并控制数据如何进出系统。
这些组件共同实现了分布式云应用之间安全、可靠且可扩展的通信。
区域
区域是云服务提供商在多个数据中心之间部署基础设施的地理位置。
- 区域由特定地理区域内的多个数据中心组成。
- 更靠近用户部署可以降低延迟。
- 使用多个区域可以提升灾难恢复和弹性。
详情
云服务提供商在全球许多地理位置运营基础设施。每个这样的地点都称为一个区域,其中包含托管云服务的多个数据中心。
区域很重要,因为物理距离会影响性能。将应用部署得更靠近用户可以降低网络延迟,从而带来更快的响应时间。
它们在可靠性方面也起着关键作用。如果某个区域发生故障,系统可以设计为故障切换到另一个区域,从而确保持续运行。
通过将系统分布到多个区域,应用可以同时获得更好的全球性能和更强的灾难恢复能力。
可用区
可用区是区域内彼此隔离的数据中心组,可提高可靠性和容错能力。
- 每个区域被划分为多个彼此隔离的可用区。
- 一个可用区中的故障不会影响其他可用区。
- 跨可用区运行可以提高可用性和冗余性。
详情
在云区域内,基础设施会进一步划分为可用区。每个可用区由一个或多个数据中心组成,这些数据中心在物理上与同一区域内的其他可用区分开。
这种隔离是有意设计的。如果某个可用区发生故障,例如停电或硬件问题,它不会影响其他可用区。这就在区域内提供了故障隔离。
应用程序可以部署到多个可用区,以确保高可用性。如果某个可用区不可用,流量可以重定向到在其他可用区运行的系统。
这种设计使云系统即使在部分基础设施发生故障时也能保持正常运行时间,因此可用区是弹性系统架构中的关键组成部分。
主要云服务提供商
主要云服务提供商提供基础设施服务,使应用程序无需拥有物理服务器也能运行。
- 领先的提供商包括 AWS、Google Cloud Platform 和 Microsoft Azure。
- 它们提供计算、存储、数据库、网络和监控等服务。
- 应用程序运行在由这些平台管理的全球分布式基础设施上。
详情
云服务提供商是运营大规模基础设施并通过互联网向用户提供这些资源的公司。组织无需自行建设和维护数据中心,而是依赖这些平台来运行其应用程序。
三大提供商是 Amazon Web Services (AWS)、Google Cloud Platform (GCP) 和 Microsoft Azure。虽然每个平台都有自己的工具和命名约定,但它们都提供类似的核心服务,例如计算、存储、数据库、网络和监控。
这些提供商在全球各地运营数据中心,使应用程序能够运行在全球分布式基础设施上。这使系统能够扩展、提升不同地区用户的性能,并保持可靠性。
通过抽象掉物理硬件,云服务提供商让开发者可以专注于构建和运行应用程序,而不是管理基础设施。
问题部分
1 / 5
此课程属于高级内容
升级到高级版以去除模糊效果并解锁完整内容。