架构设计思路

发布于 2021-04-09 08:48

前言

我们一般在做架构设计的时候,会经历过三个阶段:需求分析、概要设计和详细设计。

  1. 需求分析阶段: 主要梳理所有用例(Use case)和场景,并抽象出面向系统的用户与角色,梳理出需求提供哪些功能与非功能的需求给这些用户。

  2. 概要设计阶段:根据需求分析的产物:核心需求,对整个系统进行模块划分,并定义好模块之间的交互关系。

  3. 详细设计阶段:通过多个视图来描述系统的架构,包括但不局限于:逻辑系统、物理视图、数据视图、物理视图

非功能需求

非功能的需求主要体现在高性能、高可用、可伸缩、可扩展、安全性等维度。

| 非功能指标 | 描述 |
| ------------- |:-------------:|
| 高性能 | 运行效率高、响应速度快、吞吐量高 |
| 可用性 | 缩短宕机时间、出错恢复、SLA 在线可用时间 |
| 可伸缩性 | 垂直伸缩、水平伸缩 |
| 可扩展性 | 可插拔、组件重用 |
| 安全性 | 数据安全、加密、防攻击 |
| 鲁棒性 | 容错性、可恢复性 |

非功能需求对应不同系统指标

非功能需求对应不同系统指标主要分为 4 部分:

  • 应用服务器

  • 数据库

  • 缓存

  • 消息队列

1. 应用服务器

应用服务器是请求的入口,所有流量都是通过应用服务器来转发的。主要关心 QPS 、RT 等指标。
容量与性能相关指标如下所示

1. 每天的请求量
2. 各接口的访问峰值
3. 平均响应时间
4. 最大响应时间
5. 请求大小
6. 网卡与磁盘 I/O 负责
7. 内存使用情况
8. CPU 使用情况

2. 数据库

部署结构相关指标

1. 复制模型
2. 失效转移策略
3. 容灾策略
4. 归档策略
5. 读写分离策略
6. 分库分表策略

容量与性能相关指标如下所示

1. 当前数据容量
2. 预估数据容量
3. 每秒读峰值
4. 每秒写峰值
5. 每秒事务峰值

3. 缓存

部署结构相关指标

1. 复制模型
2. 失效转移
3. 持久策略
4. 淘汰策略
5. 线程模型

容量与性能相关指标

1. 缓存内容大小
2. 缓存内容数量
3. 缓存内容过期时间
4. 缓存数据结构
5. 每秒读峰值
6. 每秒写峰值

4. 消息队列

部署结构相关指标

1. 复制模型
2. 失效转移
3. 持久策略

容量与性能相关指标

1. 每天平均数据增量
2. 消息保存时间
3. 每秒读峰值
4. 每秒写峰值
5. 每条消息大小
6. 平均响应时间
7. 最大响应时间

  • 2021互联网大厂职级对应薪资一览表

  • 【风向标】企业数字化转型

  • 【上云神器】穿云箭让企业效能起飞

  • 容器平台自动化CI/CD流水线实操

  • 云原生语义化 CI/CD最佳实践

  • 【提速500%】让Drone飞起来

  • 小孩子也能看懂的kubernetes教程

  • 谷歌开源 Kubernetes 原生 CI/CD 构建框架 Tekton

  • 架构师是怎么炼成的

  • IPv6时代对业务的挑战

  • 如何打造一个安全稳定高效的容器云平台

  • 深入理解无服务器架构(Faas/Serverless)

  • CI/CD 场景价值

  • 云原生架构及设计原则

  • Jira与Zabbix结合

  • 【Zabbix】告警事件归档与提取

  • 【HMonitor】Zabbix告警管理平台

  • Zabbix 告警收敛

  • Zabbix v3.0微信报警及API使用

  • zabbix v3.0安装部署及使用

  • Web权限设计

  • 搭建 kubernetes 容器编排平台

  • 区块链入门教程

  • 基于Gogs+Drone搭建的私有CI/CD平台

  • WEB架构设计心得

  • Docker与CI/CD

  • 【实战篇】Docker的CI/CD流水线实践

  • 基于 Harbor 搭建 Docker 私有镜像仓库

  • 利用helm部署应用到kubernetes

开源    创新     共享

投稿&商务合作

Mail:idevops168@163.com       QQ:785249378     微信:Idevops001


牛人并不可怕,可怕的是牛人比我们还努力!

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材