系统架构(总体)设计文档-模板

2021/02/02

系统架构(总体)设计文档-模板

一、项目概述

1.1 背景说明

1.2 需求说明:

1.2.1 重点模块需求、安全需求

1.3 总体设计思路说明、系统定位

二、逻辑架构视图

应用、业务模块、技术组件分层

2.1 应用服务层(业务子系统服务)

2.2 公共服务层(公共组件支撑层)

  • SSO
  • UIM
  • 存储服务
  • 短信服务

2.3 微服务治理层(微服务组件/框架)

  • 配置中心
  • 服务注册、发现
  • 服务调用
  • 服务网关、负载均衡
  • 限流、降级、熔断
  • 服务监控
  • 链路追踪

2.4 基础支撑层(数据层)

  • mysql
  • redis
  • mongodb
  • kafka
  • fasdfs

2.5 系统对接层:外部系统

三、开发(技术)架构视图:

3.1 技术栈选型:

  • 前端:选型、分层
  • 后端:选型、分层
  • 组件: 自研、 开源、 采购第三方
  • 框架: 自研、 开源、 采购第三方

3.2 开发、运行环境:

  • centos、JDK、Tomcat、mysql、redis、kafka、mongodb、mycat版本
  • IDEA/Eclipse/MyEclipse

3.3 开发规范:

  • 约定:包功能划分、包名、路径、日志、…
  • 规约

3.3.1 公司技术标准

3.3.2 前端代码规范

3.3.3 后端代码规范

3.3.4 Sql规范

3.3.5 接口规范

3.3.6 命名规范

3.3.7 加压开发

3.4 DevOps

3.4.1 Git代码管理

3.4.2 Maven/Jenkins自动构建

3.4.3 Sonar代码复查

3.4.4 Sql检查

3.4.5 测试

3.4.6 发版

3.5 可被复用设计:

四、数据架构视图:

4.1 数据情况分析预估:

4.2 数据库设计:

4.2.1 分模式、分区

4.2.2 分库、分表:

  • 水平、垂直

4.2.3 增量设计

4.2.4 冗余设计

4.2.5 索引设计

4.2.6 读写分离

4.2.7 数据归档

4.2.8 数据汇总

4.2.9 sql脚本维护

4.3 缓存设计:

4.3.1 本地缓存、

4.3.2 分布式缓存

4.4 文件存储:

  • Ftp、Minio 、OSS 、FastDfs

五、运行架构视图:

5.1 接入接出

5.2 数据转换

5.3 数据传输

5.4 数据管理

5.5 系统对接

六、物理(部署)架构视图:

6.1 环境清单:

  • 服务器、物理机、虚拟机、配置

6.2 物理部署视图:

  • 系统、网络、网关、映射、网闸、光闸、前置机

七、安全设计

7.1 安全风险

  • XSS
  • CSRF
  • Session超期
  • 越权访问
  • Https
  • Sql注入
  • 页面敏感信息隐位

7.2 应对方案

7.3 安全规范

  • 总结风险及对应方案,作为开发规范要求点

7.3 安全框架

  • SpringSecurity
  • Shiro

7.4 加密算法

7.4.1 签名

7.4.2 摘要算法

  • MD5算法
  • SHA算法

7.4.3 编码和解码

  • Base64编码
  • Hex编码

7.4.4 对称加密

  • DES算法
  • AES算法

7.4.5 非对称加密

  • RSA算法
  • SM4

7.4.6 认证与授权

  • 用户密码
  • 万能key
  • 特殊令牌
  • Token验证
  • JWT:Json Web Token
  • SSO:单点登录
  • OAth认证
  • 权限验证

7.5 防攻击

  • 防恶意请求
  • 防sql注入
  • 防跨站请求伪造

八、高可用性设计

8.1 API网关可用性

8.2 服务可用性

8.3 接口可用性

九、性能设计

9.1 瓶颈分析

9.2 数据量估算

十、可扩展性设计

10.1 增加服务、集群

十一、风险

11.1技术难点

11.2未解决问题

十二、系统对接方案:

12.1 单独设计,链接到总体文档中

Post Directory

扫码关注公众号:暂无公众号
发送 290992
即可立即永久解锁本站全部文章