写点什么

架构实战营 模块二 总结

用户头像
Pitt
关注
发布于: 2021 年 04 月 18 日

1. 如何设计可扩展架构

1)架构设计复杂度模型

业务复杂度(理解、扩展)、质量复杂度(高性能、高可用、成本、安全)

业务复杂度和质量复杂度正交

2)可扩展架构的复杂度本质

可扩展:可理解(拆分)、可复用(封装)

可扩展 vs 可伸缩

3)可扩展架构的“拆分”和“封装”手段

拆分法则:鸡蛋篮子理论第一法则

封装:预测变化的方式决定封装变化的模型


2. 如何设计高性能架构

1)高性能复杂度本质

高性能复杂度模型:单机计算(进程、网络、缓存)、单机存储(存储),集群计算(任务分配、任务分解)、集群存储(任务分配、任务分解)

叠加法则:鸡蛋篮子理论第二法则

2)高性能架构分析和设计

集群高性能任务分配架构设计关键点:运行形态(SDK、服务器)、配置获取(配置问价、配置中心)、算法(随机/轮训/权重、Hash/负载)

集群高性能任务分解架构设计关键点:任务拆分(任务分类、任务分段)、运行形态(SDK、服务器)、配置获取(配置问价、配置中心)、算法(随机/轮训/权重、Hash/负载、路由/sharding)


3. 如何设计高可用架构

1)高可用复杂度本质

高可用复杂度模型:计算高可用、存储高可用

计算高可用:任务分配、任务分解

存储高可用:数据复制(复制格式、复制方式)、状态决策(独裁式、协商式、民主式)

冗余法则:鸡蛋篮子理论第三法则

2)高可用架构分析和设计

计算高可用任务分配架构设计关键点:状态检测、运行形态(SDK、服务器)、配置获取(配置文件、配置中心)、算法(随机/轮训/权重、Hash/负载)

计算高可用任务分解架构设计关键点:任务拆分、状态检测、运行形态(SDK、服务器)、配置获取(配置文件、配置中心)、算法(随机/轮训/权重、Hash/负载)


4. 如何全面提升架构设计的质量

1)常见架构的质量属性

低成本、安全性、可观测性/可测试性/可维护性

2)常见架构质量属性实现方法

低成本:优化(引入缓存、虚拟化、性能调优、高性能硬件、开源方案)、创新(NoSQL、Hadoop、Facebook HHVM、云计算/K8s 弹性集群)

安全性:架构安全(网络隔离、流量清洗、机房切换)、业务安全(业务漏洞--保底限制、安全漏洞--安全框架、内鬼破坏--权限管控)

可观测性:信息输出(日志、API、命令行)、信息展现(运维平台、管理平台)

可测试性:架构可测试、应用可测试

可维护性:架构可维护、应用可维护

3)设计更好的架构步骤

需求--分析-->复杂度--设计-->备选架构--挑选-->总体架构--优化-->质量属性---->架构方案


发布于: 2021 年 04 月 18 日阅读数: 16
用户头像

Pitt

关注

还未添加个人签名 2018.05.04 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 模块二 总结