我是靠谱客的博主 大意秀发,最近开发中收集的这篇文章主要介绍基础架构-架构设计目的简析基础架构-架构设计目的简析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基础架构-架构设计目的简析

01 | 架构设计的误区

1、认为架构很重要,所以要做架构设计

1)例子:不做架构设计系统就跑不起来么?
答:初创公司可能没有架构设计过程,大家简单讨论下就开始编码,而且上线后运行不错。

2、认为每个系统都要做架构设计

1)例子:生搬硬套业界其他公司已有的架构
答:强行引入其他公司架构后,很可能会发现架构水土不服等各种情况,最后需要不断重构,甚至无奈推倒重来。

3、为了高性能、高可用、可扩展,所以要做架构设计

1)注意:往往持有这类观点的架构师和设计师会给项目带来巨大的灾难
2)例子:这类架构师或者设计师不管什么系统,也不管什么业务,上来就要求“高性能、高可用、高扩展”
答:结果会出现架构设计复杂无比,项目落地遥遥无期等现象,上线后发现问题却难以解决等问题。

02 | 架构设计的真正目的

1、导读

1)整个软件技术发展的历史,其实就是一部与“复杂度”斗争的历史,架构的出现也不例外
2)简而言之,架构也是为了应对软件系统复杂度而提出的一个解决方案
3)架构设计的主要目的是为了解决软件系统复杂度带来的问题。

2、架构设计的准则

1)架构设计的主要目的是为了解决软件系统复杂度带来的问题。

3、遵循准则让“新手”架构师心中有数,而不是一头雾水。

1)例子:很多需求,从哪里开始进行架构设计?
答:通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计。

2)例子:时间短,任务重,架构设计需要考虑高性能、高可用、高扩展,怎么办?
答:架构设计并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出复杂点然后有针对性地解决问题

3)例子:业界 A 公司的架构是 X,B 公司的方案是 Y,两个差别比较大,该参考哪一个呢?
答:理解每个架构方案背后所需要解决的复杂点,然后才能对比自己的业务复杂点,参考复杂点相似的方案。

4、遵循准则让“老鸟”架构师有的放矢,而不是贪大求全。

1)例子:认为系统一定要做到每秒 TPS 10 万
答:如果系统的复杂度不是在性能这部分,TPS 做到 10 万并没有什么用

2)例子:认为淘宝的架构是这么做的,我们也要这么做
答:淘宝的架构是为了解决淘宝业务的复杂度而设计的,我们和淘宝的业务复杂度不同,业务的用户量远不如淘宝

3)例子:XX技术很流行,我们的架构应该将XX应用进来
答:新技术不是万能的,只能解决某一方面的问题,如果我们的系统复杂度不在这方面,引入新技术没有意义

03 | 简单案例分析

1、目的

1)案例分析的目的是将“架构设计准则”的指导思想应用到实践中
2)架构设计准则:架构设计的真正目的是为了解决软件系统复杂度带来的问题

2、案例简介

1)需要设计一个大学的学生管理系统,其基本功能包括登录、注册、成绩管理、课程管理等

3、设计架构的步骤

1)先导:当我们对这样一个系统进行架构设计的时候,首先应识别其复杂度到底体现在哪里。
2)性能:该系统访问频率不高(大约2w人每天访问一次),因此性能部分不复杂,存储用MySQL,Web用Nginx即可。
3)可扩展性:功能比较稳定,可扩展的空间并不大,因此可扩展性也不复杂
4)成本:因只需几台服务器,无需太多关注。

5)高可用

  1. 系统宕机2小时影响不大,因此可以不做负载均衡,更不用考虑异地多活的负载方案。
  2. 学生数据全部丢失,修复很麻烦,因此需要考虑存储高可靠,这里有点复杂。
  3. 存储高可靠的方案:
    针对机器故障,设计MySQL同机房主备方案。
    针对机房故障,设计MySQL跨机房同步方案。

6)安全性:

  1. 系统存储的信息有一定的隐私性(学生情况,但不和金融相关),采用基本的安全方案即可。
  2. 安全方案:Nginx提供ACL控制、用户账号密码管理、数据库访问权限控制。

4、架构设计图
在这里插入图片描述

04 | 思维导图

1、基础架构-架构设计目的简析思维导图
在这里插入图片描述

参考文献:

[1] 李运华. 从0开始学架构[M]. 极客时间, 2018.

最后

以上就是大意秀发为你收集整理的基础架构-架构设计目的简析基础架构-架构设计目的简析的全部内容,希望文章能够帮你解决基础架构-架构设计目的简析基础架构-架构设计目的简析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部