您的当前位置:首页正文

系统架构战略体系

2024-11-27 来源:个人技术集锦

系统架构战略体系

分布式系统理念

FLP

CAP

BASE

分布式共识算法

Paxos

Raft

Gossip

架构设计方法论

分而治之

人类解决复杂问题的根本方法:分而治之,把复杂问题拆解成若干足够小的问题

关注点分离

好的架构必须使每个关注点相互分离,也就是说系统中的一个部分发生了变化,不会影响其他部分。即使需要改变,也能够清晰地识别出那些部分需要改变。如果需要扩展架构,影响将会最小化,已经可以工作的每个部分都将继续工作。

架构设计思维

架构设计的核心思维

抽象思维

抽象思维可以解决单个软件系统的复杂性问题,但是解决不了软件中的规模问题

拆解思维

拆解思维通过将规模庞大的软件系统拆解成足够小的模块,然后针对每个模块分而治之

分层思维

分层思维可以达到隔离各层的关注面,每层只需要聚焦本层要解决的问题

演进思维

软件架构需要根据业务的发展不断的变化演进,而不是试图一步到位设计一个完美的架构

架构设计之道

道是道路、方向和原则,是自然发展规律,道路和方向是错的,无论你怎么努力,都很难成功

演进原则

架构随着业务的发展而不断演化

简单原则

简单优于复杂(奥卡姆剃刀定律:如无必要,勿增实体)

合适原则

合适优于业界领先

架构设计之术

术是方法、手段和技巧,好的方法和工具可以让你事半功倍,前提是你走在正确的道路上

高内聚低耦合

经典设计模式

领域驱动设计

面向复杂业务逻辑

SOLID原则

  1. 单一职责原则

  2. 开放闭合原则

  3. 里氏替换原则

  4. 接口分离原则

  5. 依赖倒置原则

层次化

纵向视角拆分出层次,每一层只需要关注自己的职责

模块化

横向视角拆分出模块,每个模块只需要聚焦自己的职责,模块内部高内聚,模块之间低耦合

配置化

通过可配置的方式构建系统,可以有效解决业务系统灵活性、动态可变的问题

插件化

通过提供可插拔的插件机制,实现灵活应对业务系统中的差异化逻辑扩展,完美契合 开闭原则

流程化

将业务系统的完整逻辑流程化,通过流程编排引擎来支持高效灵活的业务迭代

高可用设计

系统的稳定性建设需要体系化,包括系统架构设计、研发变更体系、稳定性意识、组织机制等多方面如何缩短故障影响时长
如何减少故障影响范围
如何避免出现单点故障
如何避免系统间相互影响
如何保护自身不受影响
  1. 事前预防

    1. 副本冗余(存储副本、服务集群、网络热备、同城多活等)

    2. 资源隔离(存储隔离、服务隔离、动静隔离、快慢隔离、轻重隔离)

    3. 配额保护(分布式限流、单机限流、过载保护)

    4. 业务降级(强弱依赖、关键路径、降级配置、兜底)

    5. 容灾预案(提前预案、应急预案、容灾预案演练)

    6. 流程机制(容灾应急响应机制、容灾应急小组、发布变更流程)

  2. 事中止损

    1. 失效转移(流量调度、主从切换、异构存储切换、容器迁移)

    2. 监控观测(立体化监控、多维度告警、自动巡检)

    3. 变更回滚(版本回滚、配置回滚)

  3. 事后改进

    1. 事故复盘机制(事故定级、事故通知、事故复盘会)

    2. 事故改进计划

    3. 事故总结最佳实践

高性能设计

影响系统性能的四大杀手:数据拷贝、上下文切换、内存分配、锁竞争
  1. 无状态化

  2. 异步化

  3. 多线程

  4. 缓存

  5. 弹性扩容

  6. 数据预热

  7. 零拷贝

  8. 高性能IO模型(IO多路复用、异步IO)

  9. 高性能网络模型(Reactor、Preactor)

一致性设计

一致性包括弱一致、最终一致、强一致
  1. 最终一致性

  2. 强一致性

  3. 分布式共识算法

可扩展性设计

可扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力,包括业务可扩展、计算可扩展、存储可扩展
  1. 水平拆分

  2. 垂直拆分

  3. 主从架构

  4. 读写分离

  5. 负载均衡

  6. 一致性哈希

  7. Shared Nothing

  8. 无状态化

  9. 服务化拆分

  10. 消息队列解耦

  11. 业务逻辑配置化

  12. 业务逻辑流程化

  13. 业务逻辑插件化

安全性设计

安全性包括基础架构安全、应用安全、业务安全等多个方面
  1. 事前防御

    1. 安全设计原则

      1. 最小化受攻击面

      2. 默认安全

      3. 终身防御

      4. 权限最小化

    2. 5A安全架构

      1. 身份认证(Authentication)

      2. 授权(Authorization)

      3. 访问控制(Acccess control)

      4. 可审计(Auditable)

      5. 资产保护(Asset protection)

    3. 零信任架构

    4. 安全应急响应机制

  2. 事中监控检测

    1. 风控反欺诈

  3. 事后止损溯源

    1. 安全故障复盘

显示全文