架构设计:常用方法套路列举

193 阅读2分钟

背景说明

列举记录下日常实际工作中涉及到的架构设计的手段、套路和方法论

职责边界划分

分层、分平面

分层分平面可以降低架构设计复杂度,典型如K8S定义了数据平面、控制平面、管理平面并严格分离;

边界划分步骤

1、梳理清楚全链路的业务流程节点

例如:梳理后整体业务流程 A -> B -> C -> D -> E -> F -> G -> H

2、切分把若干流程,框为一个边界,可以有多种框法对应多种划分方案,具体划分思想参考下面DDD

例如:有以下备选划分方案

划分方式1:(A -> B -> C) -> D -> (E -> F) -> G -> H

划分方式2:A -> (B -> C -> D) -> (E -> F -> G) -> H

3、多角度审视合理性,优先考虑是否符合当前组织架构

划分的指导思想:DDD

DDD 作为架构设计思想帮助微服务控制规模复杂度

基于DDD思想去具体划分

多态拆分

管理态和运行态分离、开发态和运行态分离,具体举例来说比如应用A有管理后台和运行态提供API 2块业务,其中管理后台相对来运行态说使用频率低、需求迭代少,运行态稳定性压力大、请求量大、性能要求高,则可以把应用A拆分成应用A-console和应用A-runtime 2个应用,在物理代码层面解耦

基础架构理论

CAP 和 PACELC

基础架构类型

单体架构

微服务架构

模块化单体

单体架构面临的问题其实更多是领域划分不合理导致的,而这个问题并不能通过微服务解决。-- by 公司某位大佬

介于“巨石应用”和“过度微服务”之间的一种方案。

稳定性架构常用套路

首先要明确稳定性的工作其实是一项非常综合的工作,技术、流程、机制,过程中需要有技术的意识和专业知识,不仅仅限于架构设计层面,架构层面常用手段如下。

依赖治理

故障隔离架构

先考虑单一故障故障,再考虑更复杂的场景,多个独立依赖同时出概率极低,假设单个依赖故障概率1%,2个独立依赖同时故障 1% * 1% = 0.0001,概率低所以刚开始设计阶段不用过分纠结,把问题转化为对任意单故障做到隔离;

异地多活(单元化架构)

混合云架构

目前比较流行的一种新型架构方案

参考资料

k8s(一)架构

K8s技术全景:架构、应用与优化

康威定律对架构设计的指导意义

5GtoB 网络服务与原子能力技术白皮书(V1.0)

从微服务转为单体架构、成本降低 90%,亚马逊内部案例引发轰动!

一文揭秘 DDD 到底解决了什么问题

郭东白的架构课

高可用之故障隔离

什么是分层架构,有什么好处

探寻软件架构的本质,到底什么是架构