什么是云架构?
什么是云架构?
那么,什么是云架构呢?什么又是云计算架构呢?云架构与云计算架构是同一个概念。这两个术语都是指定义云计算环境基础设施组件设计的‘蓝图’。
有几种不同的方法可以将云架构概念化。例如,从云服务提供商的角度来看,云架构包括:
- 硬件层,其中包括裸金属服务器、网络设备和存储设备
- 虚拟化层,其中包括虚拟机监视器(Hypervisor)和软件定义网络(SDN)组件,用于将物理资源进行虚拟化
- 服务层,其中包括服务商向用户交付的云资源
在开发人员和 DevOps 工程师等用户的认知中,云架构的组件包括:
- 前端:例如 Web 控制台、应用程序编程接口(API)、命令行界面(CLI)、移动应用或其他客户端,用于实现对云服务的访问
- 后端:提供运行该服务所需的计算、存储和软件资源
- 网络:提供云资源与诸如 DNS 解析等服务之间的连通性
云环境架构的作用是规定所有组件如何相互配合和通信。在图 1 中,我们可以看到基于云的文档管理系统的架构。
这些组件具体如何进行架构设计、实现以及向用户呈现(或对用户隐藏),取决于云交付模型和云计算类型。例如,在私有云虚拟机中运行的 Web 应用,其架构就与基于 Kubernetes 的分布式应用程序完全不同。
所有云实现方案的共同点在于:云是一个为用户在某种程度上屏蔽了复杂性的平台。例如,像 Amazon Web Services (AWS) EC2 实例这样的 IaaS 产品,就为用户屏蔽了硬件的复杂性。而对于像 Google Docs 这样的 SaaS 应用,其抽象程度更高,从操作系统、中间件到应用程序维护在内的所有底层细节,都对用户进行了屏蔽。”
云基础架构的主要物理组件
在这些抽象层之下,云计算同样具备与本地 IT 基础设施相同的三个核心层。
- 计算资源:CPU、内存(RAM)和 GPU
- 网络资源:例如网络接口
- 存储资源:例如固态硬盘(SSD)和机械硬盘(HDD)
对于 IaaS 等模式,计费通常基于这些类别的资源消耗。
注意:切勿将云架构与网络架构混为一谈。云架构本身就包含了与之相关的网络架构。例如,SD-WAN、SDN 和 DNS 服务都可能包含在企业环境的云架构中。
基本云部署模式:公有云与私有云
您可以使用的两种基本云服务模式是公有云和私有云(表 1)。公有云平台向公众开放,基础架构由云服务提供商管理。私有云平台专用于单个企业。
公有云和私有云之间权衡的是简单性(公有云)和控制力(私有云)。公有云用户只需消费服务,而服务提供商则负责维护以及基础架构调配。不过,这也意味着,公有云用户天然受限于服务提供商提供的功能。此外,公有云数据驻留在服务提供商的数据中心,这对合规性和数据主权会产生影响。
相反,私有云用户可以完全控制他们的基础架构和功能。缺点是用户或代表用户的第三方必须处理复杂的基础架构维护、配置和修补。
表 1:公有云和私有云的利弊
高级云部署模式——混合云和私有云
除了公有云和私有云,还有其他几种云部署模式。例如,美国国家标准与技术研究院将社区社区云云定义为一种"供特定用户群专用的云基础设施,该用户群由拥有共同诉求的组织机构成员组成"。 不过,最常见的两种高级云架构部署模式是:
混合云:企业内多种云部署模式的组合。例如,在公有云和私有云中复制数据库的团队就是在使用混合云模式。
多云:在一个企业内使用多个不同的公有云提供商。例如,在 Azure Kubernetes Service (AKS) 和 Amazon Elastic Kubernetes Service (EKS) 中运行集群的企业就是在使用多云模式。
XaaS:云计算的类型
除了部署模式不同,云计算服务模式也多种多样。这些模式统称为“任意内容即服务”或 XaaS。在 XaaS 模式下,提供商为用户提供云计算服务,通常采用订阅定价。
最常见的三种 XaaS 服务模式是 SaaS、平台即服务 (PaaS) 和 IaaS(图 2)。
图 2:三种最常见的 XaaS 服务模式:SaaS、PaaS 和 IaaS
这三种云计算服务模式的区别在于服务提供商和用户的责任范围。表 2 列出了不同模式下由谁来控制云基础架构的不同方面。
表 2:提供商和用户在三种云计算服务中的责任
IaaS 平台为用户提供的控制最多,管理和维护也最复杂。用户负责一切工作 — 从选择操作系统,到打补丁。与之相反,Google Docs 和 Slack 等 SaaS 平台抽象化了除应用程序层之外的一切组件。
PaaS 平台则比较平衡,让用户可以控制应用程序和数据层。例如,在 PaaS 平台上,您可以直接访问 MySQL 数据库,但不负责为底层 MySQL 版本或操作系统打补丁。
超越 IaaS、PaaS 和 SaaS
说到云服务模式,IaaS、PaaS 和 SaaS 只是一个开始。在过去的十年中,新的云服务产品层出不穷,涵盖了各种各样的应用场景。
以下是您应该了解的其他云服务模式的细分。
- 身份验证即服务(AaaS)平台(如 Okta 和 Duo)可以提供诸如多因素身份验证(MFA)和单点登录(SSO)等服务。
- 桌面即服务(DaaS)平台(如 Amazon WorkSpaces 和 Azure Virtual Desktop)可以在云中提供托管的虚拟桌面。
- 容器即服务(CaaS)产品(如 Google Cloud Run 和 Microsoft Azure 容器实例),能够简化在云平台上部署和管理容器化应用程序的过程。
- 托管式 Kubernetes平台(如 AKS 和 EKS)可以提供云端托管的 Kubernetes 服务,用于实现 Kubernetes 集群的自动化编排。
- 无服务器计算提供了一种“按需”获取计算资源的方式,使用户无需管理任何底层基础架构即可执行函数。
云计算的优势
云计算对消费者和企业都有好处。云计算相对于传统本地计算的主要优势在于:
- 托管式基础设施:安装、配置和维护服务器、交换机、机架、电源以及制冷设备,既昂贵又耗时。云服务为您提供解决方案的业务优势,而无需进行复杂的基础架构管理。
- 弹性资源:在公有云中,扩展或缩减云的使用量是轻而易举的事情。这种弹性使企业能够避免瓶颈,从而可以快速扩张,而不必承担硬件投资过高的风险。
- 全面的可观察性:通常,云平台都包含可观察性工具和仪表板。
- 内置最佳实践:服务商会受到内在激励,从而在性能、安全性和可用性之间取得最佳平衡。它们还能为客户提供规模经济效益。因此,用户只需使用正确的云平台,就能从基础架构最佳做法中获益。
迁移到云架构
在云中启动新项目是一回事,但将现有工作负载迁移到云中又是另一回事。虽然没有放之四海而皆准的方法适用于每种应用场景,但有一套通用的原则和最佳做法可以用来帮助您正确处理。
- 确保上云迁移合乎情理:并非每个工作负载都需要转变为云工作负载。构建一份商业案例,全面权衡上云迁移的成本,与彻底停用该工作负载或将其保留在本地的成本之间的利弊。
- 明智选择云提供商:功能和成本固然重要,但它们并不是唯一需要考量的因素。在做出决策时,请务必综合考量非功能性需求、技术支持服务等级协议(SLA)以及服务商的市场声誉。
- 选择适合您的服务与部署模型:公有云对比私有云,以及 IaaS 对比 PaaS 和 SaaS,各自在控制、功能和供应商锁定方面存在不同的权衡。在锁定一种模式之前,请评估其利弊。例如,尽管将本地 Exchange 服务器迁移到 IaaS 平台上的类似虚拟机似乎是一种合乎逻辑的做法,但 Office 365 电子邮件 (SaaS) 可能是更好的解决方案。
- 合理管控预算开支:云端成本极易快速堆积。大多数大型云服务提供商都提供云成本计算器,可帮助用户估算成本,避免意外开支。此外,请务必尽可能设置预算提醒,并密切关注您的对账单。采用系统的方法跟踪成本,确保不超出预算。
- 时刻准备应急备份、回滚计划和生产前测试可帮助您在向云迁移时降低数据丢失和停机的风险。确保对关键工作负载迁移采取“两次测量,一次切割”的方法。
- 针对复杂的单体应用,可以考虑采用绞杀者软件模式:直接迁移并不适用于所有情况。如果您的团队需要将复杂的单体应用迁移到云端,可以考虑采用‘绞杀者软件模式’,随着时间的推移逐步迁移到云原生微服务架构。
结论
云架构是一个复杂的话题,要了解的东西还有很多。不过,通过我们在这里介绍的内容,您应该能够对云计算的基本概念、原因和实现方式有一个全面的了解。