原文:什么才是真正的架构设计
架构师具备能力:理解业务、全局把控、选择合适技术,解决关键问题、指导研发落地实施
一、架构分层和分类
架构分类可细分为业务架构、应用架构、数据架构、技术架构、代码架构、部署架构。
业务架构是战略,应用架构是战术,技术架构是装备。其中应用架构承上启下,一方面承接业务架构的落地,另一方面影响技术架构的选型。
熟悉业务形成业务架构,根据业务架构作出相应的应用架构,最后技术架构落地实施。
-
业务架构
包括业务规划、业务模块、业务流程。对整个系统的业务进行拆分,对领域模型进行设计,把现实的业务转化成抽象对象。
合理的架构能够提前预见业务发展1~2年为宜。这样可以付出较为合理的代价换来真正达到技术引领业务成长效果。
京东业务架构 -
应用架构
应用作为独立可部署的单元,为系统划分了明确的边界。
应用架构图关键有两点:职责划分 - 明确应用边界;职责之间协作。
应用架构的本质是通过系统拆分,平衡业务和技术复杂性,保证系统形散神不散。 -
数据架构
数据架构指导数据库的设计。
数据架构 -
技术架构
确定组成应用系统的实际运行组件(lvs、nginx、tomcat等),这些运行组件之间的关系,以及部署到硬件的策略。
技术架构主要考虑系统的非功能性特征,对系统的高可用、高性能、扩展、安全、伸缩性、简洁等做系统级把握。 -
代码架构
代码架构重要定义:- 代码单元:配置设计;框架、类库
-
代码单元组织:编码规范,编码的惯例;项目模块划分;顶层文件结构设计;依赖关系。
代码架构
-
部署拓扑架构图
拓扑图
物理架构主要考虑硬件选择和拓扑结构,软件到硬件的映射,软硬件相互影响。
部署拓扑
二、架构级别
- 战略设计:业务架构用于指导架构师如果进行系统架构设计;
- 战术设计:应用架构要根据业务架构来设计;
-
战术实施:应用架构确定以后,就是技术选型。
战略-战术
三、应用架构演进
业务架构决定应用架构,应用架构需要适配业务架构,并随着业务架构不断进化,同时应用架构依托技术架构最终落地。
如何从单机扩展到分布式
四、应用架构构建
标准应用层架构:网关层-接口层-业务层-中台服务层-数据层-
-
网关:路由转发+过滤器 spring-cloud-starter-netflix-zuul
路由转发:接口一切外界请求,转发到后端微服务。
过滤器:通过过滤器完成一系列的横切功能,包括权限校验、API监控、限流以及API日志统一收集等。
网友评论