与经典的基于硬件的设置相比,云计算架构提供了更多的灵活性、设计选择和节省成本的机会。然而,这些好处是有代价的,因为云平台通常比普通的本地物理基础设施更难理解,并且具有更多的移动部件。本文介绍了云计算架构和在云环境中运行的组件。继续阅读以了解不同系统如何协同工作以创建功能性云并为最终用户提供按需 IT 资源(服务器、应用程序、数据库、网络等)。
云计算架构解释
云计算架构是指系统和技术的组合,这些系统和技术在集成时会创建一个 IT 基础架构,该基础架构可以跨网络抽象、汇集和共享按需资源。每个云架构都有两个主要组件:
- 前端(对最终用户可见的元素,例如 Web 应用程序和浏览器、移动设备、用户界面等)。
- 后端(系统的“云”部分,具有数据存储、专用服务器、操作系统、安全措施等)。
云计算架构还需要一个网络,前端和后端通过该网络进行通信。这两个组件通常通过 Internet 共享数据,除非架构师更喜欢使用私有网络(私有云和混合云架构中的首选选项)。
无论是哪种网络,前后端之间的通信层都必须有:
- 高带宽。
- 没有延迟。
- 高可用性
- 顶级网络安全。
云计算架构的设计核心是:
- 事件驱动架构 (EDA):一种软件设计,其中解耦的服务产生、检测和响应系统事件。
- 面向服务的体系结构 (SOA):其中一组组件通过通信协议向其他元素提供服务的系统。
尽管这些系统比本地设置更复杂,但公司有很多理由部署云计算架构。一些主要原因是:
- 更快的上市时间。
- 更快地提供资源。
- 实时可扩展性(向上和向下)。
- 使用云原生解决方案(例如Kubernetes)的能力。
- 由于更好的数据可见性,更可靠的合规性。
- 节省成本(无需本地硬件和对资源使用的严格控制)。
云计算架构前端
前端作为架构中的客户端,可以通过 Internet 或专用网络与后端进行通信。前端组件对最终用户可见,并允许访问云平台。
前端的两个主要元素是:
- 客户端用于访问云平台并与之交互的应用程序或软件(通常是 Web 浏览器或本机应用程序)。应用程序或浏览器有一个专用的 UI,一些云架构师认为这是一个单独的前端组件。
- 用户通过它连接到浏览器或应用程序(手机、平板电脑、PC、笔记本电脑等)并与之交互的客户端设备。
前端的元素负责:
- 使用户能够与云进行交互。
- 通过中间件向后端发送查询。
- 从后端请求服务。
- 呈现所有与云相关的信息(资源利用、安全问题、监控警报、使用模式等)。
云处理比客户端设备更多的处理,这是云计算的另一个显着优势,对于远程优先团队和具有BYOD 策略的公司特别有用。
云计算架构后端
在云计算架构中,后端是指云本身。该组件包含具有多个关键角色的各种系统、服务器和存储单元:
- 运行与云相关的程序和应用程序。
- 为前端提供功能并响应用户发送的任何查询。
- 部署和扩展资源。
- 监控所有操作和活动。
- 保持云数据和流程的安全。
- 连接所有服务和应用程序。
- 运行流量控制机制。
- 管理云协议。
云提供商是管理后端组件的人。但是,一些公司选择开发和维护他们的云,在这种情况下,内部团队负责后端运营。公司还可以在内部团队和提供商团队之间分担后端任务(这是必须遵守HIPAA或PCI的高度监管公司的常见选择)。
前端只是一个带有连接的 UI,而后端是云的主要原则:
- 用户无需服务提供商帮助即可配置的按需资源。
- 客户端连接的能力,无论位置如何。
- 资源池,使提供商能够在动态多租户环境中汇集资源并为多个用户提供服务。
- 快速响应消费者需求的快速弹性。
- 允许最终用户详细监控云使用情况的测量服务。
后端有更多的组件,并且比它的前端大得多。下面是对云计算架构中可能存在的每个后端组件的详细介绍。
应用层
当最终用户与前端交互时,后端的应用层接收查询并处理客户端的请求。这一层有几个重要的作用:
- 为用户提供访问云服务的权限。
- 连接后端和前端。
- 响应前端查询。
- 协调消费者的需求与后端的资源。
服务层
服务层将实用程序添加到云计算架构的后端。该组件通过数据存储、应用程序开发环境、Web 服务等服务处理每个任务和请求。
服务可以在云运行时执行各种任务和功能。客户可以使用的服务类型取决于交付模型。基于云的交付方式主要有以下三种:
- 基础设施即服务 (IaaS): IaaS 提供对云计算架构资源(数据存储、服务器、网络基础设施、VM 等)的访问和控制。
- 软件即服务 (SaaS): SaaS 使客户端能够在云中托管应用软件。在 SaaS 模型中,供应商处理所有升级和开发,供应商维护底层基础设施。
- 平台即服务 (PaaS): PaaS 模型为用户提供了一个按需开发的软件开发平台。提供商托管完整的技术堆栈和工具集,但用户负责软件开发、应用程序管理和更新。
交付模型不是云部署模型(例如混合、社区或多云)。交付模型决定了用户可以访问的服务类型,而部署模型则定义了相关云的类型。
中间件
中间件是指使联网设备和应用程序能够进行通信的软件组件。该组件负责以下之间的连接:
- 应用。
- 服务。
- 运行时云。
- 存储单元。
- 基础设施设备。
- 安全解决方案。
- 前端。
与传统数据中心一样,中间件依赖于数据库和通信应用程序来建立不同系统之间的协调。
云储存
存储是保留所有云数据的后端部分。云存储的类型和容量因云提供商和客户的要求而异。这种云计算服务使用户能够将数据存储在云端而不是现场数据存储,这是一种更安全、更方便的选择。
云基础设施
尽管最终用户从未看到云基础设施或与云基础设施进行交互,但云也需要硬件。云基础设施包括数据中心标准服务器机房的所有功能,包括:
- 服务器。
- 中央处理单元 (CPU)。
- 图形处理单元 (GPU)。
- 主板。
- 存储单元(硬盘驱动器和 SSD)。
- 带有路由器和交换机的网络设备。
- 网络和加速卡。
- 冷却和电力基础设施。
基础设施层还包括运行和管理所有硬件所需的软件。
管理程序
管理程序是一种创建和运行虚拟机的软件。管理程序分配单个设备的资源(CPU、内存、存储等),并使具有不同操作系统的多个虚拟机在同一设备上运行。
管理程序提供的虚拟化提高了多租户云中服务器、存储和网络的效率。但是,如果主机设备有太多 VM,则此组件可能会影响整体性能。
管理软件
云计算架构的管理软件可确保所有操作和程序运行顺畅高效。这些系统执行的一些任务是:
- 安全性和合规性审计。
- 性能和容量监控。
- 使用情况跟踪。
- 部署新应用程序。
- 数据整合。
- 灾难恢复管理。
管理软件还包括自动化程序和工具。自动化是云的核心价值,也是该技术的主要卖点之一。在云计算架构中,自动化工具具有三个重要任务:
- 向上或向下扩展以满足使用或流量需求。
- 确保跨云环境的治理。
- 按照预定义阈值或云策略的指示对事件做出反应。
安全层
安全层是云架构的一个重要方面。由于大多数提供商级云是高风险的多租户环境,供应商通常依赖各种技术来确保云计算安全,例如:
- 不可变的定期数据备份。
- 数据加密(静态、动态和使用中)
- 高端调试工具。
- 虚拟防火墙(用于整个设置和租户之间)。
- 零信任安全原则。
- 多因素身份验证和强密码。
- 入侵检测系统(IDS)。
- 反恶意软件和病毒软件。
- 勒索软件预防。
云计算架构最佳实践
没有单一的方法可以构建高效的云计算架构,但有一些指导原则适用于每个设计。以下是您在设计新架构或调整现有架构时应考虑的最佳实践:
- 采取安全第一的方法:在创建架构时,您的安全或SecOps团队应该从一开始就将保护嵌入到设计中。一开始的安全系统越强大,随着环境的发展,数据泄露和破坏的风险就越小。
- 计划使用高峰:尝试预测并了解设置在常规和高峰工作负载期间的行为方式。确保架构在任何情况下都表现良好,并为扩展准备最佳机制。
- 网络安全不要冒险:除了从一开始就计划安全之外,您还应该使用所有可用的网络安全措施来保护您的架构。寻找提供数据加密、定期补丁管理、端点保护、云灾难恢复和强大策略的提供商。
- 设置持续监控:使用Nagios等工具持续监控环境以解决性能和使用问题,创建有助于优化设置的富有洞察力的模式。
- 优化和削减成本:利用自动化流程和利用率跟踪来消除不必要的开支,并确保您不会在资源上超支。