什么是架构绘图?
架构绘图是创建软件系统组件的可视化表示的过程。在软件系统中,术语架构是指各种功能、它们的实现以及彼此之间的交互。 由于软件在本质上是抽象的,因此架构图直观地展现系统内的各种数据移动。架构图还突出显示软件如何与周围环境交互。
架构绘图有哪些优势?
架构图提供了多种优点,例如协作、风险降低、效率和可扩展性。
协作
架构图显著促进开发人员和设计人员之间的协作,同时形成各种系统功能和潜在问题的统一视图。形成系统、应用程序或网站的共同理解带来以下几点优势。支持设计过程中的高效沟通,帮助团队开发有效的系统软件组件,同时确保项目实现其目标。
风险降低
架构图识别潜在的系统开发风险,例如不正确的假设、错误的逻辑或不充分的测试。通过在软件开发生命周期的早期识别和解决风险,开发团队可以提早执行更改并降低稍后出现严重问题的风险。
效率
架构图提供涵盖系统组件和结构的清晰视图。因此,利益相关者可以准确地识别问题并快速予以解决。借助架构图,还可更轻松地维护和扩展系统,从而更加高效地执行更改。
可扩展性
架构图可让利益相关者确定扩展系统的有效方法。 例如,架构图可能显示系统的架构是集中式还是分布式。分布式组件可更有效地扩展,因此可以及时更新或更换单体组件。同样,图形表示有助于深入了解数据的存储和移动方式。利益相关者可以识别潜在的瓶颈以及避免它们的方法。
可以用架构绘图表示哪些软件架构模式?
软件架构模式是用于开发软件系统的设计原则和最佳实践。这些模式提供了一个框架来构建软件并解决复杂软件体系结构中的特定难点。
以下是一些最常用的软件架构模式。
客户端-服务器架构
客户端-服务器架构是一种分布式应用程序结构,它将服务器和客户端之间的任务和工作负载分离。服务器提供资源或服务,客户端请求这些资源或服务。
客户端和服务器是通过网络进行通信的独立程序。Web 浏览器和 Web 服务器是客户端-服务器架构的示例。它是分布式计算中常用的架构。
面向服务的架构
借助面向服务的架构,分布式应用程序组件之间可通过服务进行交互。服务是抽象的、松散耦合的和独立于语言的对象。应用程序通过接口访问服务。开发人员可以重用现有服务,而不必从头开始重新构建。面向服务的架构广泛用于分布式系统,因为服务可以部署在多台服务器上。
微服务架构
面向服务的架构进一步发展,从而开发人员可使用微服务架构来构建、部署和管理个别服务。应用程序拆分为可独立部署的服务,这些服务通过 API 进行通信。
借助较小的独立服务,开发人员能够更轻松地开发、测试和部署应用程序,同时提供改进的容错和快速扩展。微服务架构的示例之一是由多个独立服务组成的 Web 应用程序,其中每个服务负责执行特定的任务。
以云为中心的架构
以云为中心的架构用于针对云环境设计和构建应用程序。使用容器、微服务、DevOps 和无服务器计算等云特定技术构建和交付以云为中心的架构。该架构优先处理自动化部署和管理,以便根据需要纵向扩展和缩减应用程序。
事件驱动型架构
事件驱动型架构是基于事件的产生、检测和使用的软件架构。用户交互、后台任务和其他来源会触发事件,这些事件又会进一步触发其他功能。事件驱动型架构可让应用程序对软件系统及其环境的变化做出更快速的响应。
分层架构
分层架构是一种软件架构模式,它将应用程序分成多个基于逻辑的层。这种类型的架构旨在简化复杂的应用程序和系统,因为您可以在层之间拆分任务。
从上到下组织各层:
- 表示层(例如,UI)位于顶部
- 业务层位于中间
- 数据层位于底部
层也可以分层构建,这有助于执行维护和实现可扩展性。
架构图中包含哪些类型的信息?
以下是架构图中的一些常见信息类型:
- 正方形和圆形代表组件,例如数据库、网络、应用程序和服务
- 线条和箭头显示系统组件之间的连接和交互
- 标签提供有关组件和连接的附加信息
此外,架构图还可以使用图标或符号来直观地表示不同的组件。底部的小图例类似于地图上的图例,解释了图标的使用。组件和连接的排列方式称为布局。
架构图有哪些类型?
几种类型的架构图直观地表示各种系统和软件架构。以下是一些最常见的架构图示例。
软件架构图
软件架构图直观地表示软件组件、关系和系统交互。这些架构图记录、分析和沟通软件设计,并用于制定实施决策。这些架构图的范围从直观的高级别图到软件组件交互的详细描绘。
系统架构图
系统架构图提供系统各种组件的可视化说明,同时显示它们如何相互通信和交互。这些架构图记录了系统的结构和架构。用户可借此清楚地了解系统如何运作以及如何对其改进。
应用程序架构图
应用程序架构图展示应用程序结构。它们包括各种组件和它们如何相互交互以及彼此之间的数据流。应用程序架构图提供应用程序的完整视图,用于通知应用程序的设计、实现和维护。
集成架构图
集成架构图直观地表示集成解决方案中涉及的组件、数据和技术。这些架构图显示不同组件、系统和服务之间的关系,用于帮助开发人员设计、开发和管理复杂的集成解决方案。这些图表用于记录和解释现有系统以及规划和开发新的集成解决方案。
部署架构图
部署架构图以视觉方式表示不同应用程序组件及其部署环境之间的关系。部署架构图显示了应用程序及其组件的布局 — 例如,包括服务器、存储空间和网络。它们用于规划容量、可扩展性和容错。
DevOps 架构图
DevOps 架构图可视化 DevOps 系统的组件及其交互方式。这些架构图通常包括开发环境、持续集成和持续交付管道、基础设施即代码和云服务等组件。这些图说明组件在更广泛的 DevOps 环境中的交互和位置。
网站架构图
网站架构图以视觉方式表示网站结构。这些架构图以视觉方式映射网站组件(例如网页、数据库和内容管理系统)之间的关系和交互。有权访问网站架构图的 Web 设计人员可以识别潜在的问题区域并制定有效的策略来提升网站的性能。
AWS 如何支持您的架构绘图要求?
在 Amazon Web Services (AWS),我们提供 Workload Discovery on AWS 作为可视化 AWS 云工作负载的工具。可使用该工具构建、自定义,以及分享您的工作负载的详细架构图,这些工作负载基于来自 AWS 的实时数据。Workload Discovery on AWS 通过在统一位置同时提供数据和可视化工具消除大量的文档编制过程开销。
可以通过以下方式受益于使用 Workload Discovery on AWS:
- 构建、自定义和共享详细的架构图
- 保存并导出架构图
- 查询 AWS 成本和使用情况报告
- 搜索和定位基本信息,例如资源名称、标签名称或 IP 地址
- 使用资源目录探索账户资源和 AWS 区域
立即创建免费 AWS 账户,开始在 AWS 上进行架构绘图。