追忆系统架构设计师考试历程
踏出考场大门,天空阴沉沉的,淅淅沥沥地下着雨。
这是第二次参加系统架构师考试了,第一次考试匆匆忙忙参加,以论文差三分结束,系统架构师的通过率也通常只在10%~15%之间,而且在逐年增加难度。这次考试,案例题比较难,能否通过大概率由案例题决定。
借此回顾一下笔者作为算法工程师的系统架构师考试历程。系统架构师的考试内容分为三个部分,分别是综合知识,案例分析和论文。其中综合知识基本是计算机本科专业的内容基础上,强化软件工程中软件架构部分的内容,包括操作系统,计算机组成原理和体系结构,网络,安全,数据库设计,软件工程等。案例分析主要包括软件质量属性,WEB,嵌入式,数据库等,论文主要是根据一个自己的项目,阐述一个具体的软件架构知识点是如何应用的。
笔者处于自己的兴趣,想借此机会系统梳理软件架构的相关知识,但是经历整个过程下来,发现对于自己实际架构水平的提升帮助非常有限,但是还是收获了一些有价值的认知。
在架构设计实践知识中,讨论了信息系统架构,层次式架构,云原生,SOA,通信系统,安全和大数据架构等具体的架构设计理论和实践。作为一个算法工程师,层次式,云原生和大数据架构都是非常有用的。
比如算法服务的部署,通常基于k8s架构进行分布式容器化的部署,在本次考试的论文题中,笔者就结合自己的项目重点阐述了这个知识点的内容。大数据架构中的lambda和kappa架构,同时也是现在多数公司大数据平台的底层架构模式。
由于笔者对全栈能力比较关注,围绕WEB相关的设计也比较有意思。比如在后端架构设计中,经常讨论的话题是MySQL和Redis在多线程场景下的数据一致性问题,大部分情况下,只要使用了缓存,就必然会有不一致的情况出现,只是说这个不一致的时间窗口是否能做到足够的小。有些不合理的设计可能会导致数据持续不一致,这是我们需要改善设计去避免的。一个比较经典的WEB系统架构如下所示:

其中包括一个WEB系统设计的经典组件,包括负载均衡,缓存,主从库,读写分类等。在笔者本次的考试中,论文的题目是针对一个“秒杀”系统,设计限流,缓存,动静,扩容等技术。
围绕软件架构,质量属性效用树,七种软件架构风格(数据流/调用-返回/独立构件/虚拟机/仓库/闭环/C2),设计模式,UML图都是相对比较实用的技术。在实际的考察过程中,也会考到面向领域建模,领域分析等内容,考试中的“限界上下文”实际上并不知道什么意思,所以DDD的哲学也在系统架构考察的范畴中。
我的论文模版如下,但是在本次考试中实际并没有用到,现场考试是针对自己负责的一个财税咨询对话项目进行讨论的。
摘要:2023年3月,我主持了上海某头部三甲医院感染科的面向发热病人的大模型增强的辅助问诊项目,并担任项目的系统架构设计师,负责系统架构设计工作。该系统主要包括询问推荐,诊疗建议和病历生成三个主要功能模块,问诊过程中通过实时分析医生和患者的对话,给出医生下一个要询问的问题,同时给出诊疗建议,包含检查检验和用药等,问诊结束后自动生成门诊病历。该项目总投入300万人民币,历时9个月,于2023年12月正式交付运行至今,受到了客户的一致好评。本文结合我的实际工作经验就该项目的___(根据不同论文题目去概括本文内容,说明本文结构)。(时间+项目+项目简介+投入+历时+成功交付客户好评+结合具体项目说明本文结构)
背景:发热病人的疾病诱因非常多,在问诊过程中由于低年资的医生医学水平尚不够成熟,因此存在漏诊和误诊的问题。同时我国高水平医生资源紧张,通过辅助问诊的方式降低对高年资医生的依赖,同时提升医生问诊的效率就成为一个迫切需要解决的问题。大模型的发展为辅助问诊的真正落地提供了强大的技术加持。为此,上海某头部三甲医院感染科牵头拟联合高校和企业共同推动该问题的解决。(为什么要做这个项目?)
我所在的公司在公开招标中成功中标,并于2023年3月份正式启动该项目的建设工作,我被任命为该项目的系统架构设计师,负责系统架构设计工作。该项目总投入300万人民币,建设周期从2023年的3月份到2023年的12月份,历时9个月。项目的主要建设内容包括三大模块:第一,询问推荐。通过将医生和患者的对话语音转化为文本,并对对话文本做结构化分析,提取对话过程中的疾病和症状等信息,融合医疗知识图谱的推理内容,利用大模型通过精巧的提示词设计产生询问推荐;第二,诊疗建议。基于对话内容分析,利用内部检索到的发热相关知识文本以及外部检索得到的网页结果,利用大模型整合上述文本产生包含鉴别诊断,检查检验,用药等诊疗建议,用于辅助决策支持。第三,门诊病历生成。在对话结束之后,利用整个对话过程中的对话结构化分析结果,以及最后一轮的诊疗建议结果,直接利用大模型按照科室模版生成对应的门诊病历。(项目功能和技术介绍)
过渡:________(过渡段,需要回应子题目并引出正文)
正文:正面回答题目内容,总分结构,逻辑性。(举出具体的例子进行分析)
收尾:经过9个月的项目开发,该项目顺利在科室上线并投入使用,运行至今客户反馈良好。该项目由于性能要求高,技术实现难度高,涉及角色多等原因,建设过程中困难重重。但由于笔者以及项目成员十分重视项目建设过程中_______(回应具体论文题目),最终保证了该项目能够按时保质保量交付。当然,在本项目中还有一些不足之处,比如:__(小问题,不要大问题),不过经过我后期的纠偏,并没有对项目产生什么影响。在后续的学习和工作中,我将不断的充电学习,和同行进行交流,提升自己的专业技术水平,更好的完成系统架构设计的工作。
强调项目顺利交付且运行良好+自己的收获或者不足之处+心得体会)
整体上如果想要通过系统架构师考试提升自己的架构水平,可能效果会比较有限,具体能力的提升还是需要在实战中不断地思考和积累。但是通过系统架构师考试,一方面可以巩固和复习计算机专业的基础知识,另一方面建立一个系统架构的整体思维框架,保证在遇到具体的架构问题时,都能在这个思维地图中找到问题所在的位置。
另外一方面,在笔者去年写的一次面向垂域搜索系统的实践与思考 和财税咨询系统的架构思考中提到,好的架构一定是和业务高度适配的,并且是演化出来的,因为业务自身也在进化。系统架构的知识体系中的架构知识提供的是一个宏观视角,具体习得要在实战中沉淀和积累。
扫码加笔者好友,茶已备好,等你来聊~