【老猿说架构】系统架构设计原则和步骤

森林公园管理办法【⽼猿说架构】系统架构设计原则和步骤
⼤家好,我是⽼猿,今天继续专题【⽼猿说架构】,⽂章仅代表作者理解或观点,如有不同理解论述欢迎拍砖交流。好,废话不说,直接进⼊主题。
今天跟⼤伙聊下系统架构设计原则和设计的步骤,这些把握到位了才能把系统架构设计好,也让⼤家更能理解到系统架构不是⼀步到位设计出来的⽽是逐渐演进出来的,脱离了当前业务需要的架构设计都是耍流氓等,因此在我看来系统架构设计要把握三个原则和四个步骤,具体详见下⾯阐述。
1:适合原则
架构师⾸先是技术管理者,技术⽅案选型权衡取舍做技术决策是核⼼的职责,那么系统架构设计⾸先要考虑的就是要满⾜当前业务出发同时能⽀持适应业务发展⽽扩展开发维护,同时也要结合团队技术积累和实⼒、项⽬时间和成本投⼊等全⽅位的综合评估取舍,⽽不是为技术⽽技术,如在系统设计过程挑战最新的技术和模仿业界领先⽅案,当然根据业务场景适⽤的主流技术栈或技术框架选型还是⽀持的,通常这些技术框架是随着技术发展解决某⼀业务场景⽽产⽣的。
总之适合优于先进原则,不管⿊猫还是⽩猫能抓⽼⿏的就是好猫。
2:简单原则
这个好理解,系统架构设计的⽬的就是解决软件之熵带来的问题,那么系统架构设计能化复杂为简单是每个架构师追求的⽬标,在我看来这个是最难的,世界上⾼级的东西都是简单⽽最难做到的,系统设计过程对业务的理解和抽象、建模等很关键,这个需要深厚的业务和技术内功,那么⼤家在架构设计过程争取尽可能往简单设计吧。
3:演进原则
系统架构设计是个动态过程,项⽬初期能满⾜当前的业务需求进⾏架构设计,然后架构在不断地需求迭代开发过程中保留优秀的设计,修复有缺陷的设计,改正错误的设计,去掉⽆⽤的设计,使架构逐渐完善不会随着需求功能规模的膨胀⽽快速腐化,因此当业务快速发展时,架构要扩展甚⾄重构但有价值的经验教训、逻辑、设计却可以在新的架构中不断延续。
总之,演进原则优于⼀步到位。罗马不是⼀天建成的。
掌握了设计原则后就要开始系统架构设计了,⽼猿的理解和经验是需要经过如下四个步骤进⾏架构设计。
步骤1:全⾯准确理解把握业务,识别复杂度
其实这个步骤之前的专题⽂章系统架构设计思维已阐述过了,架构设计最核⼼⽬的就是为了解决软件系统之熵带来的问题,那么在设计架构时⾸先就要分析系统的复杂度,那系统的复杂度如何识别呢?那么⾸先我们必须全⾯准确理解业务当前和近期(⼀般1-2年)对系统容量指标的要求,也就是我们熟悉的容量指标:
⾼并发(⾼性能)
满⾜业务的增长
追求良好的⽤户体验
⾼可⽤(经常讲的N个9)
系统的服务稳定性和数据⼀致性
可扩展性
能够适应未来⼀定业务发展
规模发展
数据规模和未来数据增长速度带来的影响
业务功能规模不断膨胀的适应和扩展实现,即是降低架构腐化速度。
安全要求
各种应⽤安全漏洞、数据安全存储、传输和显⽰脱敏等
本原多项式
以上系统容量指标的要求越⾼系统实现的复杂度接越⾼,那么我们要根据业务当前和近期(⼀般1-2年)对系统容量指标的要求做出适⽤的系统架构设计,切忌过度设计,⽐如⼀个⽂章发布系统,初期对系统容量的指标要求基本是适应多种类型⽂章发布和⽂章访问的速度,做好⽂章数据结构变化的数据字典⽀持及引⼊CDN、⽂章数据缓存实现基本就够了。
后续的专题⽂章⽼猿会详细讲解针对每种系统容量指标要求如何设计实现,敬请⽼铁们关注。
免疫组化技术后续的专题⽂章⽼猿会详细讲解针对每种系统容量指标要求如何设计实现,敬请⽼铁们关注。
江阴华士疫情最新消息
天然气工业投稿步骤2:设计备选⽅案
确定系统开发需要⾯对的核⼼复杂度问题后,架构设计⽅案就有了明确的⽬标,那么我们可以开始进⾏架构⽅案设计了,针对每个复杂度问题进⾏对应的⽅案设计,通常建议⾄少设计2-3种⽅案,然后下⼀步骤针对备选⽅案进⾏横⽐全⽅位评估并做最终的⽅案决策。
中国眼镜杂志
⽐如为了满⾜业务⾼并发⾼性能要求需要引⼊缓存,那么我们⾸先要做缓存技术框架选型,如对缓存技术rabbitMQ、RocketMQ和Kafka进⾏横⽐技术选型,选型完了针对缓存使⽤策略进⾏详细设计。
步骤3:⽅案选型决策
在完成备选⽅案设计后,我们就需要根据三个设计原则进⾏综合横⽐评估,根绝业务需要我们可能选最简单的也可能选最优秀的或选最熟悉过渡的中间⽅案,⽅案的决策需要很多维度⽴体全⽅位评估考量,并不是只考虑性能⾼低、技术是否先进等纯技术⽅⾯的东西,⽽是最核⼼关键从业务出发满⾜业务需要、同时公司已有的技术体系和积累、团队⼈员技术⽔平或搭建容易度、项⽬时间要求、和测试、运维等兄弟团队的经验等都是评估⽅案的维度之⼀。
预计后续的专题⽂章⽼猿会跟⼤伙讲解⽅案决策的实操案例,⽅便⼤家更深刻地理解掌握。
步骤4:⽅案(系统)详细设计
完成备选⽅案的设计和评估决策后,整个架构设计的框架基本有了,但整体细节⽅案还没完成,还需继续努⼒。接下来我们需要最终确定的⽅案进⾏细化,使得⽅案变成⼀个可以落地实现的⽅案。
那么详细的系统架构设计包含的⽅⾯⽐较多,后续再针对每个⽅⾯详细讲解。如架构风格实现模型选择、数据库表设计、数据库架构设计、应⽤服务设计、缓存使⽤策略设计、程序代码设计、安全应对设计、⼯程管理等等
⽂/⽼猿,写代码写诗写职场的程序猿⼤叔,倾⼒原创简单实⽤的硬⼲货,转载此⽂请联系⽼猿

本文发布于:2024-09-22 03:44:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/533347.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   系统   技术   架构设计   业务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议