【如何做好应用架构?】

news2025/6/9 18:49:16

一、应用架构定义

应用架构描述了各种用于支持业务架构并对数据架构所定义的各种数据进行出来的应用功能。这些应该功能指的是用来管理在数据架构中定义的数据,并对业务架构中定义的各项业务功能进行支持的能力。

其核心目标是确保应用系统高效、灵活、安全的支撑业务需求,并于技术架构、数据架构、业务架构协同一致。

二、应用架构组成

应用架构包括应用域、应用组、一级应用模块、二级应用模块、功能/子功能。一个完整的应用架构通常包含以下几个部分:

1、应用组件(明确组件的职责、边界、粒度)

定义构成应用架构的基本构建块。这可以是一个大型单体应用、一个微服务、一个功能模块、一个平台服务(如身份认证服务、支付服务)

2、应用功能(功能定义需要清晰、无歧义,并与业务能力映射)

详细描述每个应用组件所提供的具体业务功能或技术能力。例如,“订单管理”、“客户信息管理”、“API网关”。

3、应用交互与集成(实现松耦合、高内聚、可维护性高的集成)

描述应用组件之间如何通信和交换信息

4、应用分层与分区(提供结构化的视图,便于理解和管理复杂度,例如java中的MVC)

将应用组件按照逻辑功能或架构层次进行分类和组织。常见的分层包括:

  • 展现层/用户界面层:

负责用户交互(Web前端、移动App、桌面客户端)。

  • 业务逻辑层/服务层:

实现核心业务规则和流程(微服务、业务API)。

  • 数据访问层/集成层:

负责与数据库或其他系统交互(数据访问对象、API适配器)。

5、应用部署视图(连接应用架构与技术架构)

  • 描述应用组件如何映射到物理或虚拟的基础设施(如服务器、容器、云平台区域/可用区)上运行。

  • 包括负载均衡、高可用性(HA)、灾难恢复(DR)等部署拓扑结构

6、应用目录(应用架构治理的核心管理工具)

  • 一个清单或数据库,记录企业内所有应用系统的详细信息,通常包括:

    • 应用名称、描述、所有者
    • 业务功能支持
    • 技术栈(编程语言、框架、数据库)
    • 供应商(内部自研还是外部采购)
    • 生命周期状态(战略、维护、淘汰)
    • 成本、关键性、风险
    • 与其他架构元素(业务能力、数据实体、技术组件)的关联关系

7、应用标准与原则(确保架构的一致性和质量)

  • 定义应用设计、开发、集成、部署和运维必须遵循的通用规则和最佳实践。例如:

    • 技术选型标准(如首选语言、框架、数据库)
    • 安全标准(如身份认证、授权、数据加密)
    • 集成标准(如首选API规范-RESTful/GraphQL, 消息协议)
    • 非功能性要求标准(性能、可伸缩性、可用性、可维护性)
    • 云原生原则(如12-Factor App)
    • 微服务设计原则(如单一职责、领域驱动设计)

三、如何做好应用架构

做好应用架构是一个持续迭代和治理的过程,需要做好以下几点:

1、以业务为驱动

应用架构存在的根本是为了支撑业务,必须紧密对齐业务,理解核心业务流程、业务能力以及未来发展方向。应用组件的划分、功能的定义、集成的涉及都应服务于业务需求。

2、清晰的目标

应用架构是为了解决问题,需要明确架构要解决什么样的问题,例如消除冗余系统、降低集成复杂度、提升敏捷性、降低成本等。

3、分析现状

结合应用目录,评估现有架构优势、劣势,识别架构问题,哪些技术过时、哪些集成混乱,哪些系统维护成本高昂等。

4、设计新的架构

基于现有的架构与现有架构的现状,设计新的架构,并且指定切实可行的演进路线,规划从现状迁移到目标状态的路径,明确分阶段实施的里程碑和优先级。优先解决通电或支持关键业务计划。

新的架构可以根据业务场景和需求选中当前最合适的架构风格,使用应用成熟的设计模式解决一些常见问题(例如发现、熔断、限流、高并发等场景)。

新的架构应充分考虑到架构的性能、可扩展性、可用性、安全性。

5、强化标准和治理

指定并强制执行架构标准与准则,确保不同团队和应用遵循一致的规范,减少技术碎片化。建立架构评审委员会,评审关键项目的架构设计是否合理,确保其符合企业架构标准和目标。定期进行应用 的健康度评估和治理。

6、持续治理与优化

应用架构是以业务为基础,为业务服务,并不是一成不变的,业务需求在变,技术发展也在变,需要定期审视架构的有效性,根据业务和技术的变化进行调整和优化。

总结:
应用架构是企业的架构的骨架和神经,做好应用架构需要明确核心,理解业务需求和定义,优秀的架构能够显著的提升IT对业务变化的响应速度、降低系统复杂度和维护成本、增强系统的健壮性和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1 Studying《蓝牙核心规范5.3》

目录 [Vol 0][Part B 蓝牙规范要求] 3 定义 3.1 蓝牙产品类型 4 核心配置 4.1 基本速率核心配置 4.2 增强型数据速率核心配置 4.4 低功耗核心配置 4.5 基本速率和低功耗结合的核心配置 4.6 主机控制器接口核心配置 [Vol 1][Part A 架构]1 概述 1.1 BR/EDR操作概述 …

STM32+MPU6050传感器

#创作灵感## 在嵌入式系统开发中,STM32F103C8T6单片机与MPU6050传感器的组合因其高性能、低功耗以及丰富的功能而备受青睐。本文将简单介绍如何在Keil 5开发环境中实现STM32F103C8T6与MPU6050的连接和基本数据采集,带你快速入门智能硬件开发。 一、硬件…

26考研——数据的表示和运算_整数和实数的表示(2)

408答疑 文章目录 二、整数和实数的表示1、整数的表示1.1、无符号整数的表示1.2、有符号整数的表示1.3、C 语言中的整数类型及类型转换1.3.1、C 语言中的整型数据类型1.3.2、有符号数和无符号数的转换1.3.3、不同字长整数之间的转换 2、实数的表示2.1、浮点数的相关概念2.2、浮…

关于智能体API参考接口

关于智能体在Flask的源码:请求体(在payload里的是请求体)、请求头(在headers里的i局势请求头)。 我的例子: 我的疑问:为什么没按Coze官方API文档格式,在Apifox里发POST请求却能收到回复? 1. 你…

直角坐标系和斜角坐标系

前情概要 笛卡尔坐标系是直角坐标系和斜角坐标系的统称。为什么会有这两种坐标系呢,教材中为什么最后只用直角坐标系呢?我们这样解释: 研究一维空间中的向量时,由于一维空间中的向量有无数条,如果我们选定一条作为基…

vmware 设置 dns

vmware 设置 dns 常用的 DNS(Domain Name System)服务器地址可以帮助你更快、更安全地解析域名。以下是一些国内外常用的公共 DNS 服务: 国内常用 DNS 阿里云 DNS IPv4: 223.5.5.5、223.6.6.6IPv6: 2400:3200::1、2400:3200:baba::1特点&am…

基于单片机的病房呼叫系统(源码+仿真)

该系统由以 STM32F4 为平台的监控终端以及以 CC2530 为平台的无线传感网组成。系统上电后自动完成 ZigBee 网络的组建、终端节点的加入,病人可利用便携式的病人终端发出呼叫求助请求信息、节点在线信息以及对护士的服务评价信息等,这些信息通过路由节点发…

基于微信小程序的睡眠宝系统源码数据库文档

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,睡眠宝系统被用户普遍使用,为方便用户能够可以…

VibePlayer

源代码地址: VibePlayer: VibePlayer是一款功能强大的Android音乐播放器应用,专为音乐爱好者设计,提供了丰富的音乐播放和管理功能。 用户需求 VibePlayer是一款功能强大的Android音乐播放器应用,专为音乐爱好者设计&#xff0…

【汇编逆向系列】三、函数调用包含单个参数之float类型-xmm0寄存器,sub,rep,stos,movss,mulss,addss指令

一、汇编代码 single_float_param:0000000000000060: F3 0F 11 44 24 08 movss dword ptr [rsp8],xmm00000000000000066: 57 push rdi0000000000000067: 48 83 EC 10 sub rsp,10h000000000000006B: 48 8B FC mov …

基于fpga的疲劳驾驶检测

基于fpga的疲劳驾驶检测 前言一、系统硬件设计二、系统软件设计系统上板实验测试 前言 代码基于网络大佬代码进行修改的。限制性比较大,不太灵活,当个本科毕业设计还是够的。 基于FPGA的疲劳检测模块硬件设计以FPGA核心控制模块为中心,通过…

感谢阿里云RDS产品及时的“光速服务”

❝ 开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3000人左右…

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十一)

下载buildroot https://buildroot.org/download.html下载交叉工具链 使用ST官方交叉工具链的话,在buildroot配置外部工具会有问题,所以直接使用正点原子的交叉编译工具 buildroot构建根文件系统 - 参考正点原子 配置 buildroot tar -vxf buildroot-20…

Linux68 FTP 测试 上传下载

6.在vi编辑器里,哪个命令能将光标移到第200行?( B ) 7.A、200g B、:200 C、g200 D、G200 假如您需要找出 /etc/my.conf 文件属于哪个包 (package) ,您可以执行( D )C A、 rpm -q /etc/my.co…

山东大学《数据可视化》期末复习宝典

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏:🏀山东大学期末速通专用_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1…

【Elasticsearch】映射:Join 类型、Flattened 类型、多表关联设计

映射:Join 类型、Flattened 类型、多表关联设计 1.Join 类型1.1 主要应用场景1.1.1 一对多关系建模1.1.2 多层级关系建模1.1.3 需要独立更新子文档的场景1.1.4 文档分离但需要关联查询 1.2 使用注意事项1.3 与 Nested 类型的区别 2.Flattened 类型2.1 实际运用场景和…

SpringBoot十二、SpringBoot系列web篇之过滤器Filte详解

一、前言 JavaWeb三大组件Servlet、Filter、Listener,其中之一便是过滤器Filter。 其实,Filter我们平常用的不多,一般多为项目初期搭建web架构的时候使用,后面用的就少了,在日常业务开发中不太可能碰到需要手写Filte…

【RTSP从零实践】1、根据RTSP协议实现一个RTSP服务

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

行为设计模式之Iterator(迭代器)

行为设计模式之Iterator(迭代器) 摘要: 迭代器模式(Iterator)是一种行为设计模式,它提供顺序访问聚合对象元素的方法,同时不暴露内部结构。该模式由迭代器接口(Iterator)、具体迭代器(ConcreteIterator)、聚合接口(Ag…

FPGA点亮ILI9488驱动的SPI+RGB接口LCD显示屏(一)

FPGA点亮ILI9488驱动的SPIRGB接口LCD显示屏 ILI9488 RGB接口初始化 目录 前言 一、ILI9488简介 二、3线SPI接口简介 三、配置寄存器介绍 四、手册和初始化verilog FPGA代码 总结 前言 ILI9488是一款广泛应用于嵌入式系统和电子设备的彩色TFT LCD显示控制器芯片。本文将介…