本文是对专栏文章架构设计文档模板的学习记录,可以购买以支持原作者
首先是备选方案模板
主要介绍需求的背景,目标与范围
随着xxx业务不断发展,业务拆分的子系统越来越多(阐述现有系统的问题),由此带来几个明显的系统问题
eg:
性能问题:
耦合问题:
效率问题:
基于以上背景,我们需要引入xxx,将目前的xxx功能改为xxx
需要全方位描述相关的信息
eg: 消息队列系统主要是业务的子系统来使用,子系统发送消息或者接收消息
eg:当子系统需要发送异步通知的时候,需要使用消息队列系统
What
需求的产出,包括系统,数据,文件,开发库,平台等
eg: 需要开发消息队列系统
Where
需求的应用场景
eg: 开发,测试与生产环境的部署
Why
需求需要解决的问题,通常与需求背景有关
eg:消息队列系统要把子系统解耦,把同步调用改为异步
这部分主要是关键业务流程,复杂的业务系统可以独立成用例文档.
8个Constraints
性能: 需要达到xxx的水平
成本: 参考 xx 公司的设计方案,不超过 x台服务器
时间: 期望x个月内上线版本x,并且在两个业务中尝试使用.
可靠性: 按照业务需求,可靠性要求达到xxx.xx%
安全性: 网络安全,加密等问题
合规性: 需要按照公司目前的DevOps规范进行开发
技术性: 目前团队主要研发人员是xxx,最好用xxx开发
兼容性:之前没有类似系统,无需考虑兼容性
常见的可以从高可用,高性能,可扩展这几个角度来说
而且实际操作中每个约束与限制都要有详细的逻辑推导,尽量给出数值的推导
每个备选方案都需要描述关键的实现,不需要描述具体的实现细节.
etc
会根据评估会议的结果进行修改,也就是说架构师先给出自己的备选方案评估,然后举行备选方案评估会议,再根据会议结论修改备选方案文档
然后接下来介绍架构设计模板
评估完备选方案之后,架构设计文档用来详细描述细化方案的.
核心内容就是架构图,以及针对架构图的描述,包括各个模块与子系统的职责描述,核心流程
架构总览给出架构图以及架构的描述
这里需要具体描述具体的实现细节
例如高可用设计,高性能设计,可扩赞设计,安全设计其他设计等
当然最后还要说明部署方案,即主要的硬件要求,服务器部署方式,组网方式等等
如果项目周期很长的话,可以考虑分阶段实施,如第一期做什么,第二期做什么等等