谈谈架构设计( 五 )


4、数据架构
数据架构指导数据库的设计. 不仅仅要考虑开发中涉及到的数据库,实体模型,也要考虑物理架构中数据存储的设计 。

谈谈架构设计

文章插图
5、代码架构(也叫开发架构):
子系统代码架构主要为开发人员提供切实可行的指导,如果代码架构设计不足,就会造成影响全局的架构设计 。比如公司内不同的开发团队使用不同的技术栈或者组件,结果公司整体架构设计就会失控 。
代码架构主要定义内容:
一、代码单元: 1、配置设计 2、框架、类库 。
二、代码单元组织:1、编码规范,编码的惯例 2、项目模块划分 3、顶层文件结构设计,比如 mvc 设计 4、依赖关系
谈谈架构设计

文章插图
最好的样本是参考现有《阿里巴巴 Java 开发手册》 。
6、技术架构
应用架构本身只关心需要哪些应用系统,哪些平台来满足业务目标的需求,而不会关心在整个构建过程中你需要使用哪些技术 。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选型,把各个关键技术和技术之间的关系描述清楚 。
技术架构:确定组成应用系统的实际运行组件(lvs,nginx,Tomcat,php-fpm 等),这些运行组件之间的关系,以及部署到硬件的策略 。技术架构还要考虑系统的非功能性特征,对系统的高可用、高性能、扩展、安全、伸缩性、简洁等做系统级的把握 。系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这也是架构设计工作中最为困难的工作 。
7、部署拓扑架构图(实际物理架构图):
拓扑架构,包括架构部署了几个节点,节点之间的关系,服务器的高可用,网路接口和协议等,决定了应用如何运行,运行的性能,可维护性,可扩展性,是所有架构的基础 。这个图主要是运维工程师主要关注的对象 。
谈谈架构设计

文章插图
物理架构主要考虑硬件选择和拓扑结构,软件到硬件的映射,软硬件的相互影响 。
谈谈架构设计

文章插图
三、架构级别
我们使用金字塔的架构级别来说明,上层级别包含下层:系统级、应用级、模块级、代码级 。
谈谈架构设计

文章插图
系统级,即整个系统内各部分的关系以及如何治理:分层 。
应用级,即单个应用的整体架构,及其与系统内单个应用的关系等 。
模块级,即应用内部的模块架构,如代码的模块化、数据和状态的管理等 。
代码级,即从代码级别保障架构实施 。
战略设计与战术设计
基于架构金字塔,我们有了系统架构的战略设计与战术设计的完美结合:
战略设计:业务架构用于指导架构师如何进行系统架构设计 。
战术设计:应用架构要根据业务架构来设计 。
战术实施:应用架构确定以后,就是技术选型 。
谈谈架构设计

文章插图
四、应用架构演进
业务架构是生产力,应用架构是生产关系,技术架构是生产工具 。业务架构决定应用架构,应用架构需要适配业务架构,并随着业务架构不断进化,同时应用架构依托技术架构最终落地 。
谈谈架构设计

文章插图
架构演进路程:单体应用->分布式应用服务化-> 微服务 。
1、单体应用


推荐阅读