最新要闻
- 【世界速看料】保时捷新能源车高架冒烟 司机:开得好好的就着了 差点被烧死
- 环球讯息:罗技Trophy G驾驶舱发布:兼容所有方向盘、踏板、主机和PC
- 百事通!网友称5千元买洗地机用2小时就坏掉:售后无门
- 天天速讯:十铨发布新款PCIe 5.0固态硬盘:顺序读取12000MB/s、配石墨烯散热片
- 当前速看:祸从天降!东北冰溜子从5楼坠落砸伤女子:北方人一定要注意
- 惠州普通话水平考试准考证查询
- 当前简讯:业内第三种烘干技术!石头宣布分子筛洗烘一体机H1
- 全国多地现“三星连珠”天象:金星、木星、弯月连成一条线
- 世界快讯:石头分子筛洗烘一体机H1发布:打破洗烘行业技术天花板
- 百度新车标外观专利获授权 造型罕见
- 世界观天下!小米新专利获授权:一卡多号 可节省功耗
- 世界热消息:8成特效中国制作!《流浪地球2》豆瓣涨至8.3 超100万人评分
- 当前动态:38秒旋风榨汁 小熊无线多功能榨汁机34.9元大促
- 3000元档超香二代骁龙8旗舰!努比亚Z50 16GB+256GB狂飙版来了
- 《暗黑》平替?《火炬之光:无限》国服官宣5月公测
- 头条焦点:首个游戏版ChatGPT 网易《逆水寒》手游预计上半年推出:自研AI得分超过人类
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
吃透8图1模板,人人可以做架构
文章持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版为您奉上珍贵的学习资源 :
(资料图片仅供参考)
免费赠送 :《尼恩Java面试宝典》持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》面试必备 + 大厂必备 +涨薪必备 加尼恩免费领免费赠送 经典图书:《Java高并发核心编程(卷2)加强版》面试必备 + 大厂必备 +涨薪必备 加尼恩免费领免费赠送 经典图书:《Java高并发核心编程(卷3)加强版》面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 资源宝库: Java 必备 百度网盘资源大合集 价值>10000元 加尼恩领取
前言
在40岁老架构师 尼恩的读者交流群(50+)中,很多小伙伴问尼恩:
大佬,我们写架构方案, 需要从哪些方面展开
大佬,我们写总体设计方案需要一些技术亮点,可否发一些给我参考下
诸如此类,问法很多,但是不知道架构图长成啥样?架构方案怎么写。
40岁老架构师尼恩,不知道做过多少架构方案。也不知道指导了多少开发,完成了架构师的华丽转身。
现在,给大家提供一份如何画好架构图,和如何做好架构方案,核心的要点,展示给大家。
使得大家可以充分展示一下大家雄厚的 “技术肌肉”,让你的主管、同事爱到 “不能自已、口水直流”。
也一并把这个题目以及参考答案,收入咱们的 《尼恩Java面试宝典》V53版本,供后面的小伙伴参考,提升大家的 3高 架构、设计、开发水平。
注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请从这里获取:码云
系统架构图是为了抽象的表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,以及软件系统的物理部署和软件系统的演进方向的整体视图。好的架构图可以让干系人理解、遵循架构决策,就需要把架构信息传递出去。那么,画架构图是为了:解决沟通障碍/达成共识/减少歧义。比较流行的是4+1视图和C4视图。
一:怎么画好架构图
一个好的架构图是不需要解释的,它应该是自描述的,并且要具备一致性和足够的准确性,前瞻性,能够与 后面的设计相呼应。
架构方案的受众分析
架构方案,也要 千人千面
在画出一个好的架构图之前, 首先应该要明确其受众,再想清楚要给他们传递什么信息,
一个方案,面向不同的受众,需要有不同的视图
不是为了画图而画图,而是应该差异化分析
要进行受众分析,应该根据受众的不同,传递的信息的不同,用图准确地表达出来,最后的图可能就是在这样一些分类里。
视图的分析维度
针对不同的受众,有不同的分析图
但是,也是层层深入的
大概有下面的 8个维度
架构图1:场景视图
用于描述系统的参与者与功能用例间的关系,
反映系统的最终需求和交互设计,通常由用例图表示;
场景分析图的受众: 外部的技术或非技术人员,包括团队内部或外部的开发人员或运维人员,
架构图2:系统架构分析
系统架构分析 用于描述系统软件功能拆解后的组件关系,组件约束和边界,反映系统整体组成与系统如何构建的过程,通常 子系统的 线框图表示。
架构图3:系统依赖分析(System Context Diagram)
系统依赖分析(System Context Diagram)用于描述要我们要构建的系统是什么,子系统直接的依赖关系是什么,用户是谁,需要如何融入已有的IT环境。
系统依赖分析图的受众: 外部的技术或非技术人员,包括团队内部或外部的开发人员或运维人员,
架构图4:子系统依赖分析(Container Diagram)
子系统依赖 是 系统依赖图里 ,对待建设的子系统做了一个内部依赖关系展开分析,
子系统依赖分析 主要用来描述子软件系统的内部的依赖关系,分析系统中的职责是如何分布的,子系统是如何交互的。
子系统依赖分析的受众: 外部的技术或非技术人员,包括团队内部或外部的开发人员或运维人员,
架构图5:组件架构图(Component Diagram)
组件架构图是把针对某个子系统 进行组件设计、模块设计,
组件架构图 用于 子系统 的模块关系,介绍 子系统由哪些组件/服务组成,了组件之间的关系和依赖,为软件开发如何分解交付提供了框架。
组件架构图受众:主要是给内部开发人员看的。
组件架构图的作用:为代码的组织和模块架构,提供支撑
架构图6:模块架构图
从编码的维度来说,组件内部,很多模块。模块架构分析 ,是对组件的进一步 深入分析。
模块架构分析用于描述模块划分和组成,
模块架构分析可以细化到内部包的组成设计,服务于开发人员,反映系统开发实施过程。
架构图7:逻辑架构视图
逻辑架构视图 用于描述系统模块内部的的通信时序,数据的输入输出,反映系统的功能流程与数据流程,、
通常由时序图和流程图表示。
架构图8:部署架构分析
用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上,用于指导软件系统的部署实施过程。
二: 怎么做好架构方案?
光有图是不够的,还要有方案
下面是一份P8 级专家的架构方案
提纲如下:
下面是技术方案设计模板在每一章节的简单说明,用来帮助你理清每个章节大概要写什么内容
2.1、现状
现状,主要是用来描述当前这个业务(项目)的一些基本情况介绍和相关的背景。
方案设计出来之后,是需要给你的 leader 或者团队其他成员进行评审或者查看,
一般来说,由技术委员会来评审
但是别人不可能都和你一样清楚你的项目,
因此首先,你要把你项目的基本情况和背景都说清楚,让大家达成一个共识,
大家站在同一个起点上,才能进行后面的方案评审和讨论。
业务背景
业务背景就是你这个业务的基本介绍,包括但不限于:
- 项目名称
- 业务描述
- 业务难点
技术背景
技术背景就是项目是基于什么样的技术背景下来构建的,
可以是从 0 到 1 来构建,也能是基于现有的方案来优化,
但是不管是什么场景,一定都会存在相关的技术背景,因此包括但不限于:
- 现有技术积淀
- 现有架构描述
- 现有系统的整体容量
2.2、需求
需求,很重要!
不管你的技术有多牛逼,都一定为需求服务的,
不管这个需求是技术需求,还是业务需求,一定都是要为需求服务。
注意:需求,这个需求可以是当下的需求,尽可能 包含未来潜在的需求。
需求越完善,后面会少走弯路。
业务需求
业务需求就是你这个业务具体要做的事情,包括但不限于:
- 业务的功能点
- 要提升改造的功能
业务痛点
- 涉及到的业务痛点有哪些
性能需求
除了业务需求,还要从这个业务需求里面考虑清楚我们满足这个业务之下的性能需求点,
如果一个系统不考虑性能,可能流量一上来,服务就挂掉了。
性能需求包括但不限于:
- 预估系统平均容量
- 预估系统峰值容量
- 可伸缩性
- 其他的一些性能要求点,比如安全性等
2.3、方案描述
前面把现状和需求说清楚后,终于到了我们的重头戏,方案描述这里了。
一般,需要会有几个可选的方案,
也就是说,尽可能把相关可能的方案都描述清楚,
然后给出你认为的最合适的方案,然后让大家来评审和决策,看是否同意你的意见或者有其他更好的意见。
除非万不得已,最好,不要一只有个方案。
方案1
概述
说明一下方案的核心亮点、核心特色,核心目标,核心优势
比如说:高性能、可扩展、双写、主从分离、分库分表、扩容等。
详细说明
详细说明这里需要图文结合,
包括但不限于架构图、流程图 等。
把你整个方案的架构和模块、细节流程都描述清楚
性能目标
性能一般来说可能包含以下部分:
DAU:
日活跃用户数量。一般用于反映网站、互联网应用等运营情况。
平均QPS:
可以参考淘宝的平均QPS 估算公式,进行估算。
峰值QPS:
一般可以以QPS的2~4倍计算;
资源评估
给出方案的基准数据,并按性能需求评估需要使用的资源数量。
按照预估性能需求,预估资源数量
- 单节点并发量
- 单节点容量
- 应用服务器的单节点资源配置、节点数
- 缓存的单节点资源配置、节点数
- 数据存储的单节点资源配置、节点数
- 消息队列的单节点资源配置、节点数
- 反向代理的单节点资源配置、节点数
- 搜索引擎的单节点资源配置、节点数
- 伸缩方式
- 高可用方式
- 监控预警的方式
方案优缺点
列出方案的优缺点,
这个需要通过量化的指标来支撑
方案2
可选的另外一种方案,模板和上面一样。
方案对比
前面给出了多种可选的方案,那么这里就是进行一个简单的对比,
然后,给出自己的觉得最优的方案,并且给出支撑的数据、理由。
有了你自己的决策(倾向)的方案后,
当然,对于最优的方案,就应该提供更有支撑力的细化的方案和数据
2.4、线上方案
线上方案是对上面你更倾向的方案的更为细致的描述。
架构图
整体架构是如何,把架构图画上
关键设计点 和 设计折衷
把核心的关键点,用自己的 名词系统表达出来
这里有一个要求:整体是完备的、自洽的
用来确保你的方案的大体方向是 OK 的。
因为没有一个方案设计是最完美,方案设计都是逐步演进和优化的,
但是,一定是完整的、系统的、没有大漏洞的
还有,方案设计是要最符合当前的背景的。
业务流程
对于业务的核心场景,弄一个整体流程图、核心流程图出来,
然后分业务场景把各个业务场景的流程图也画出来,并且做好相关介绍
模块划分
模块的划分需要考虑我们架构设计的一些原则,
比如:架构分层、业务分模块、微服务化、高内聚低耦合 等。
然后把每个模块的功能点都说清楚
异常边界【重要】
异常边界是比较重要的,一般情况下,
大部分人都能考虑到正常的处理流程,对于异常的边界考虑的比较少,
但是线上出问题,大部分都是异常情况导致,因此这里非常重要!!!
我们可以通过一个 思维导图 去整理相关的异常边界,
这样有助于自己在实现的时候有足够的把控度,也便于别人去 review 你的方案和具体实现(如 coding)
异常边界需要考虑:
- 涉及到了哪些模块
- 涉及到了哪些流程
- 每个模块、流程出现了各种可能情况的处理是?
- 系统底层原因导致的异常的处理是 ?
监控、预警、统计
线上运行的项目,一定需要有各种监控,预警、指标统计
可以使用 公司内部的基建的监控外,
还需要从业务内部,实现自定义的一些业务监控和相关技术统计
最终的目标、保证系统的高可用、支撑系统的高可用
灰度、回滚策略
- 如何灰度?
- 如何回滚?
容灾方案
容灾就是当出现 IDC 异常的情况下,怎么容灾,这个可以根据实际情况去考虑。
2.5、部署架构
可以按照下面的方向,去做拓展:
- 线上部署拓扑什么,
- 各层的部署架构是什么
- 多活的部署架构是什么
- 公有云部署架构是什么
2.6、风险评估
标识所选方案的风险,提出解决此风险发生时候的应对策略,
比如:上线失败时的回滚策略。
潜在风险
- 相关的改动有哪些风险点
- 不兼容点?
- 当前设计方案目前存在哪些问题?
- 潜在有哪些问题
2.7、阶段规划【架构演进规划】
架构怎么演进
阶段如何规划
每个阶段该达成什么目标
第一阶段
目标 XXXX
第二阶段
目标 XXXX
第三阶段
目标 XXXX
2.8、投入评估
最后,需要做投入的评估,作为投资回报分析的支撑,包括:
- 物理设备、云设备投入评估
- 工作量评估,
这里需要细化到每个模块、
工作量评估 一般按照时间进行,一定要同时包括开发时间、联调时间、测试时间。
最好比较细化,不要太粗,
比如开发时间可以细化到接口的维度,每个接口的设计分别需要多长时间,
老马识途,找老架构取经
只要是成功走上架构师岗位的都指导, 架构之路,充满了坎坷
这个和高级开发不一样 , 架构的问题,是open的,开发式的,没有答案的
在架构设计的过程中, 会遇到无数的挫折,很多小伙伴, 就没有跨过去
其实,如果真的遇到架构难题,找有经验的人帮帮忙, 这道坎,就过去了
所以,如果遇到复杂的场景,确实不知道怎么做架构方案,怎么办?
可以来尼恩的技术自由圈(疯狂创客圈圈) 中求助.
咱们圈聚焦架构研究,这里有上1000位架构人脉,10年多架构经验的老架构师,在100位以上。
大家 什么架构方案都做过,可以给遇到困难的小伙伴,提供设计帮助、架构帮助。
推荐阅读:
《干翻 nio ,王炸 io_uring 来了 !!(图解+史上最全)》
《SpringCloud+Dubbo3 = 王炸 !》
《响应式圣经:10W字,实现Spring响应式编程自由》
《4次迭代,让我的 Client 优化 100倍!泄漏一个 人人可用的极品方案!》
《全链路异步,让你的 SpringCloud 性能优化10倍+》
《Linux命令大全:2W多字,一次实现Linux自由》
《阿里一面:谈一下你对DDD的理解?2W字,帮你实现DDD自由》
《阿里一面:你做过哪些代码优化?来一个人人可以用的极品案例》
《网易二面:CPU狂飙900%,该怎么处理?》
《阿里二面:千万级、亿级数据,如何性能优化? 教科书级 答案来了》
《峰值21WQps、亿级DAU,小游戏《羊了个羊》是怎么架构的?》
《场景题:假设10W人突访,你的系统如何做到不 雪崩?》
《2个大厂 100亿级 超大流量 红包 架构方案》
《Nginx面试题(史上最全 + 持续更新)》
《K8S面试题(史上最全 + 持续更新)》
《操作系统面试题(史上最全、持续更新)》
《Docker面试题(史上最全 + 持续更新)》
《Springcloud gateway 底层原理、核心实战 (史上最全)》
《Flux、Mono、Reactor 实战(史上最全)》
《sentinel (史上最全)》
《Nacos (史上最全)》
《分库分表 Sharding-JDBC 底层原理、核心实战(史上最全)》
《clickhouse 超底层原理 + 高可用实操 (史上最全)》
《nacos高可用(图解+秒懂+史上最全)》
《队列之王: Disruptor 原理、架构、源码 一文穿透》
《环形队列、 条带环形队列 Striped-RingBuffer (史上最全)》
《一文搞定:SpringBoot、SLF4j、Log4j、Logback、Netty之间混乱关系(史上最全)》
《红黑树( 图解 + 秒懂 + 史上最全)》
《分布式事务 (秒懂)》
《缓存之王:Caffeine 源码、架构、原理(史上最全,10W字 超级长文)》
《缓存之王:Caffeine 的使用(史上最全)》
《Docker原理(图解+秒懂+史上最全)》
《Redis分布式锁(图解 - 秒懂 - 史上最全)》
《Zookeeper 分布式锁 - 图解 - 秒懂》
《Netty 粘包 拆包 | 史上最全解读》
《Netty 100万级高并发服务器配置》
-
每日热闻!Prometheus安装部署(主体)
Prometheus安装部署一,下载安装包并解压**下载地址:**https: github com prometheus prometheus...
来源: 吃透8图1模板,人人可以做架构
免费开源的邮件服务器搭建
天天热门:蚁群算法
每日热闻!Prometheus安装部署(主体)
【世界速看料】保时捷新能源车高架冒烟 司机:开得好好的就着了 差点被烧死
环球讯息:罗技Trophy G驾驶舱发布:兼容所有方向盘、踏板、主机和PC
百事通!网友称5千元买洗地机用2小时就坏掉:售后无门
天天速讯:十铨发布新款PCIe 5.0固态硬盘:顺序读取12000MB/s、配石墨烯散热片
当前速看:祸从天降!东北冰溜子从5楼坠落砸伤女子:北方人一定要注意
惠州普通话水平考试准考证查询
Joomla未授权访问漏洞(CVE-2023-23752)
环球头条:Go复合数据类型数组和切片
世界热点!springCloud Alibaba服务的注册与发现之eureka搭建
当前简讯:业内第三种烘干技术!石头宣布分子筛洗烘一体机H1
全国多地现“三星连珠”天象:金星、木星、弯月连成一条线
世界快讯:石头分子筛洗烘一体机H1发布:打破洗烘行业技术天花板
百度新车标外观专利获授权 造型罕见
世界观天下!小米新专利获授权:一卡多号 可节省功耗
what are ESC、BEC and UBEC ?
环球微动态丨不通过ArcGIS写Personal Geodatabase(esri mdb)
最新消息:我们喜爱的 10 种免费 SQL Server 资源
世界新消息丨ChatGPT对于普通人有什么机会和影响?
世界热消息:8成特效中国制作!《流浪地球2》豆瓣涨至8.3 超100万人评分
当前动态:38秒旋风榨汁 小熊无线多功能榨汁机34.9元大促
3000元档超香二代骁龙8旗舰!努比亚Z50 16GB+256GB狂飙版来了
《暗黑》平替?《火炬之光:无限》国服官宣5月公测
头条焦点:首个游戏版ChatGPT 网易《逆水寒》手游预计上半年推出:自研AI得分超过人类
tcl电冰箱
消息!北向资金本周净卖出41.25亿元
观天下!分布式事务和Spanner分布式数据库
8000+字,就说一个字Volatile
环球关注:ChatGPT迅速学会下棋精髓 把人类给整不会了 网友:这谁预判得了?
世界快报:长城拼了!哈弗H6 DHT-PHEV限时优惠1.5万元:仅14.48万起
全球短讯!iPhone 15标准版上了灵动岛和USB-C接口:但跟Pro版差距还是太大
《狂飙》高启兰在日本火爆出圈 网友:《柯南》妃英理本理
全球今亮点!数字孪生|可视化图表之分组柱状图
世界今日讯!测试角色在项目各阶段的项目管理tips
当前速读:【JVM】JDK7后intern方法总结
世界热讯:centos7多网口配置同网段IP解决方案
焦点快播:【Vue】vue3 元素在某区域内缩放拖拽
灵活就业交医保太亏了怎么说?交医保太亏了具体指的是什么
苹果水下操控iPhone屏幕专利获批:或万元起售的Ultra机型独享
当前信息:魅族20电池寿命稳了:1600天连续充放容量仍大于80%
【新视野】日系车再受质疑!铃木维特拉遭车主集体投诉:刹车变硬踩不动
全球快讯:女子下班途中被狗撞伤被判工伤 法院:非本人主要责任
LGV 引理
【报资讯】如何实现把多个git仓库合并为一个,并保留提交记录?
AI创作享有版权吗?
世界视讯!卖的比“老头环”快!《霍格沃茨之遗》销量破1200万
今天是世界讨厌香菜日 不爱吃竟是“天注定”:跟基因有关
测试版用户终于能“反悔”了:Win11新功能允许退回正式版系统
今日报丨果然是“应试” IIHS碰撞测试难度提高:年度获奖车型数量腰斩
海绵宝宝是一种原始的什么动物?红色海绵球是干什么用的?
正者无敌三个太太的结局是什么?正者无敌演员表介绍
宫锁连城为什么下架了?宫锁连城的大结局是什么?
安全帽能代替头盔吗?安全帽颜色的级别区分
光盘怎么进行拷贝?光盘拷贝到u盘需要多少钱?
word安全模式是怎么回事?word安全模式怎么解除?
苹果怎么查询激活时间?苹果怎么传输数据到新的手机上?
闪存卡损坏是什么原因?闪存卡损坏怎样修复?
当前速看:易基因|DNA甲基化研究的测序数据挖掘思路:干货分享
速看:Centos7单机部署Etcd
Springcloud~openfeign开启hystrix基于线程池熔断的传值问题
环球热点!产品经理
【网关开发】9.Openresty 自定义流量分流策略支持灰度(金丝雀)等发布业务场景
每日热议!刘洋一杆领跑资格考试36洞 四人并列第二
天天热议:曾凭五菱宏光MINI EV火爆出圈 小米汽车营销负责人周钘离职
全球限量1962台!徕卡推出D-Lux7 “007”限量版相机:售价达16800元
全球最资讯丨《嗜血印》魅魔DLC完善更新 新增魅魔纹和性感尾巴
全球热点!抄底手慢无:南国生椰拿铁33.9元起32杯(赠冰川杯)
热推荐:不满足于对话!微软希望ChatGPT控制机器为人服务
网络时间同步设备(时钟同步)产品的功能及技术参数
每日简讯:MegEngine 使用小技巧:使用 Netron 实现模型可视化
环球今日讯!切换页签,再切换回来,v-tooltip会一直显示问题
世界即时看!小米智能工厂二期项目主体结构已封顶:年底竣工交付
全球热消息:小米汽车明年量产!雷军晒新到手礼物:F1传奇设计师自传
世界百事通!博主实探上海巴奴火锅店:土豆11元6片 换算下来45元1斤
加密劫持病毒现身苹果macOS:盗版软件成主要途径
努比亚Z50 Ultra官宣:真全面屏!
全球速递!巴克利:湖人把一切归咎于威少会让他愤怒 在快船有最佳夺冠机会
全球今亮点!《霍格沃茨之遗》温咖癫啦维欧萨
最快2025年商用!日本飞行汽车载人试飞成功:机体中国造
天天最资讯丨记Cucumber行为驱动测试的简单配置与使用方式
老人推倒摩托后去世 继承人被起诉背后:老人是惯犯 车主不能忍
【全球独家】读Java实战(第二版)笔记19_尾声
全球短讯!衡水新型冠状病毒肺炎疫情:2月24日衡水疫情最新消息今天数据统计情况通报
全球即时:搜狗输入法UOS版上架统信UOS:适配龙芯LoongArch等架构
每日短讯:干翻 nio ,王炸 io_uring 来了 !!(图解+史上最全)
全球快看:CPU推理|使用英特尔 Sapphire Rapids 加速 PyTorch Transformers
世界视点!死锁面试题
18、实体类对象比对-JSON
产品经理,项目经理,FTO
当前最新:《狂飙》取景地拍照收费摊主已搬离:没给续签合同
环球速看:索尼A7M4将发布2.0固件 或下放部分索尼A7R5功能
80%的人出错了 你的数码相机用对了吗?
全球热讯:爱奇艺奇迹一般的赚钱了!但是 就这它也好意思?
快看点丨AMD Zen4锐龙9 7945HX大放异彩!16核心打平Intel 24核心
世界今头条!长色斑的原因有哪些_脸上为什么会长色斑
热门:007 - 研究
每日信息:47.多态