系统架构(总体)设计文档-模板
一、项目概述
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 物理部署视图:
- 系统、网络、网关、映射、网闸、光闸、前置机
七、安全设计
- 腾讯安全:提供最实时的威胁情报
https://s.tencent.com/research
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
即可立即永久解锁本站全部文章