应用架构图

简介: 在业务架构基础上,技术架构将需求转化为技术实现。它涵盖分层设计、技术选型与关键技术关系,形成完整架构图。单体架构通常分为表现、业务、数据和基础四层,分别支撑用户交互、业务逻辑、数据存储与通用能力。分布式架构则体现应用间及外部系统的调用关系,明确内外边界,指导系统集成与扩展。

在上一节有了业务架构的基础之上,当我们需要落地具体的技术方案时,此时就需要技术人员开始考虑技术架构了。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选项,把各个关键技术和技术之间的关系描述清楚。
基础结构解决的主要问题包括:如何进行技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。由于应用架构体系是分层的,那么对应的技术架构体系自然也是分层的。大的分层有微服务架构分层模型,小的则是单个应用的技术分层框架。大的技术体系考虑清楚后,剩下问题就是根据实际业务考虑选择具体的技术点。各个技术点的分析、方案选择,最终形成关键技术清单,关键技术清单应考虑架构本身的分层逻辑,最终形成一个完整的技术架构图。
简而言之,技术架构试讲产品需求转变为技术实现的过程。
单体应用架构
单体应用架构一般是比较传统的分为4层:数据层(Data Layer)、应用逻辑层(Business Layer)、表现层(Presentation Layer)和基础通用层(Common Layer)。
展现层
展现层是整个应用面向用户的入口,用户通过展现层实现与系统的交互。展现层为用户提供系统功能的操作、系统数据的展现。展现层按照面向的用户类型提供不同的交互服务。例如在业务场景中,用户有实操层用户、管理层用户、决策层用户。针对不同层级的用户,系统所提供的功能是不相同:
面向实操层用户,提供的是对系统的操作功能,满足业务日常运营。往往更多的是执行具体操作。
面向管理层用户,满足管理者的日常管理需求,通常提供经营数据、日常管理数据、团队业务数据等等。通过数据分析,改善日常运营的流程。
面向决策层用户,这一层的用户不需要太细的数据,为其提供企业的经营诊断数据和报告,辅助决策支持。
业务层
业务层是应用为解决业务需求,按照产品架构中的功能模块进行细化。业务层是对将产品层从粗到细的分解过程。这个过程是对业务的细化过程,把项目要交付的模块细分到最基本的单元。最基本单元是实现日常业务操作的最细粒度的功能点。由此,我们能够得到实现业务逻辑的全功能结构。
数据层
数据层按照应用的数据模型分别进行存储。这里的存储介质包含关系型数据库、NoSQL、分布式文件系统。
基础层
通用基础层是为系统提供通用能力的中间件,比如流程引擎、消息中间件、缓存、搜索引擎等等。这些中间件和业务是无相关性的,提供的是通用的基础技术能力。
基于上述分析,我们可以得到一个如下单体应用的技术架构:
分布式应用架构
分布式应用架构图实质是产品内部所有应用在分布式环境下的调用关系图。各应用间通过服务的形式相互调用,这是典型的 SOA 架构。在应用架构图中,SOA 架构中的服务注册、服务治理、服务发现这些 RPC 框架的基础平台功能不用在应用架构中体现。
应用架构图的重点是体现应用之间的逻辑关系和通信关系,体现产品的内部关系和外部关系。内部关系是产品内各应用的调用关系;外部关系展现的是产品与外部系统间的调用关系。将应用的内外关系呈现在应用架构中,产品在整个业务中的定位和影响将变得清晰。
应用间调用关系
在产品内部的各子系统之间,为了解决业务需求,通过应用之间的服务调用或者异步消息调用产生数据关系。通过产品架构图中得到的应用系统划分,按照系统间的调用关系,形成内部应用的集成架构图。在应用集成架构图中,需要标注调用链路中的业务含义,清楚的标注应用之间发生的业务关系。
外部系统调用关系
数据输入做为产品的业务数据来源,很大部分是外部系统提供。在应用架构图中,按照业务属性、来源关系进行对外部系统进行归类,并将外部的来源系统纳入整个应用架构中。我们知道计算机系统中,数据输入和数据输出是作为一个整体。应用架构中除了输入系统,输出系统做为整个产品的一部分,需要纳入到应用架构图中。
明确应用调用边界
应用边界对于产品的定位、产品的设计有很重要的影响。在应用架构中需要通过不同颜色的标注,来确定产品与外部系统的边界。通过不同颜色标注外部来源系统、内部应用、应用依赖系统、输出系统。为后续的规划、发展提供基础。

相关文章
|
3月前
|
SQL 关系型数据库 数据库
分布式事务
本文介绍了分布式事务的概念、典型场景及解决方案。在微服务架构下,一次业务操作需跨多个数据库和远程调用协作完成,传统本地事务无法保证整体一致性。通过Seata框架可实现分布式事务控制,其AT模式无侵入、高性能,基于两阶段提交与undo log实现最终一致;XA模式则提供强一致性但性能较低。文章还结合下单、支付等场景演示了Seata的集成与应用。
|
3月前
|
前端开发 JavaScript Java
Spring Boot中使用拦截器
本文详解Spring Boot拦截器的原理与使用,涵盖定义、配置、静态资源处理及登录校验、注解控制等实战场景,助你掌握AOP思想在请求拦截中的应用。
|
3月前
|
监控 Java API
Spring Boot中的切面AOP处理
AOP(面向切面编程)旨在分离关注点,将核心业务与辅助逻辑解耦。通过Spring Boot中的@Aspect、@Pointcut、@Before、@After等注解,可实现日志记录、性能监控、事务管理等功能,提升代码模块化与可维护性,灵活应对业务变化。
|
5月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
285 14
|
6月前
|
监控 安全 Devops
DevOps 流水线的网络安全盲区与防御策略
在软件研发中,DevOps流水线加速了开发与交付,但也带来严重安全风险。自动化节点和第三方集成成为攻击入口,凭证泄露、供应链渗透、配置错误和依赖混乱等问题频发。企业需构建全流程安全体系,嵌入自动化安全策略,强化访问控制与监控,提升全员安全意识,实现效率与安全的协同发展。
550 1
|
11月前
|
人工智能 运维 数据挖掘
Websoft9分享:在数字化转型中选择开源软件可能遇到的难题
本文探讨了中小企业数字化转型中开源软件的核心价值与挑战。全球超94%企业采用开源软件,可节省80%成本,但技术选型与运维难题亟待解决。文章分析了开源在成本效益、技术自主与敏捷创新方面的优势,并提出五大技术挑战的破局之道。Websoft9提供场景化解决方案与全生命周期赋能体系,助力企业实现1:5.3的高投入产出比,跨越开源鸿沟,拥抱数字化未来。
257 4
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
生成式人工智能的价值回归:重塑技术、社会与个体的发展轨迹
生成式人工智能(Generative AI)正以前所未有的速度重塑社会面貌。它从单一决策工具转变为创造性生产力引擎,推动知识生产、艺术创作与科学研究的发展。同时,其广泛应用引发社会生产力和生产关系的深刻变革,带来就业结构变化与社会公平挑战。此外,生成式AI还面临伦理法律问题,如透明性、责任归属及知识产权等。培生公司推出的生成式AI认证项目,旨在培养专业人才,促进技术与人文融合,助力技术可持续发展。总体而言,生成式AI正从工具属性向赋能属性升华,成为推动社会进步的新引擎。
|
架构师 Devops 测试技术
DevOps 进阶实践课,连续 4 期,看看有你想听的吗?
探索DevOps进阶实践?加入阿里云专家的直播课!了解企业研发规范新思路、云效YAML流水线详解、微服务灰度发布最佳实践和规模化项目管理。资深专家分享实战经验,解答疑问,带你提升DevOps效率。
1486 3
|
视频直播 Linux Windows
FFmpeg开发笔记(四十二)使用ZLMediaKit开启SRT视频直播服务
《FFmpeg开发实战》书中介绍了使用MediaMTX测试RTSP/RTMP,但该工具简单,不适合生产环境。ZLMediaKit,一个支持RTSP/RTMP/SRT的国产流媒体服务器,是更好的选择。要通过ZLMediaKit和FFmpeg实现SRT推流,需确保FFmpeg已集成libsrt。ZLMediaKit默认配置文件中,SRT监听9000端口。日志显示推流和拉流成功。ZLMediaKit支持多种音视频编码,如H264、AAC等。要了解更多FFmpeg开发信息,可参考该书。
1052 0
FFmpeg开发笔记(四十二)使用ZLMediaKit开启SRT视频直播服务
|
机器学习/深度学习 边缘计算 人工智能
《深度剖析:边缘计算与AI融合下,生成对抗网络部署的变革与展望》
在数字化时代,数据量激增对实时性和隐私保护提出更高要求。边缘计算与AI的融合成为关键路径,尤其生成对抗网络(GAN)的部署方式正经历变革。传统GAN依赖云端资源,存在延迟、带宽和隐私风险。边缘计算使GAN可在本地或与云端协同部署,提升实时性与安全性。新部署方式包括边缘设备本地部署、边缘-云协同及分布式边缘部署,但面临资源限制、网络不稳定和数据安全等挑战。通过模型压缩、自适应通信及加密技术,GAN可更好地满足各行业需求,推动其广泛应用。
338 3