基础架构-谁动了我的蛋糕 | 青训营笔记

115 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

本次课程主要是帮助我们理解架构,了解一些企业中架构相关的知识。下面是我对于今天课程的理解总结,希望能够对大家有所帮助。

课程重点内容

今天课程主要讲解的重点有以下几点:

  • 架构的定义
  • 认识企业内的后端架构
  • 企业级后端架构所面临的挑战
  • 后端架构实战案例

知识点介绍

今天的内容较多,这里只对架构的定义和相关基础架构做简单的介绍总结,其它内容不再总结。

架构是有关软件整体结构和各个组件的抽象描述。架构用来指导软件各个方面的设计,你可以理解为只要有一个软件项目它就应该有一个相关的架构。

关于架构的种类和架构的演进,课程中用了一个蛋糕店的案例来描述,这里也是这样总结。

现在有一个需求,我们需要开一个蛋糕店,现在有一个蛋糕店面和一个蛋糕师傅,我们就可以开店了。

现在蛋糕店开张了,有一个客户来买蛋糕,我们就制作一个然后卖给客户。这时我们可以把蛋糕店理解成单机架构,就是把软件系统全部部署在一台机器上,所有的用户排队来向机器请求服务。单机架构的优点就是简单、易实现,缺点也很明显,就是当机器出现问题或者需要运维的时候就需要停服,不能够再处理请求了。

单机架构的蛋糕店只有一个蛋糕师傅工作,处理客流量有限,现在我们需要考虑如何才能够卖出更多的蛋糕,处理更高的客户流量。所以我们可以多雇佣几个蛋糕师傅,并由大堂经理来管理这些师傅。这时候的蛋糕店可以理解成单体架构,即将软件系统部署再多台机器上,他们都能够处理用户的请求。或者将给蛋糕师傅分清职责,不同的蛋糕师傅做不同的蛋糕,这样的蛋糕店可以理解为垂直应用架构,及部署在不同的机器上的系统处理不同的请求。

单体架构和垂直应用架构的优点很明显,就是一台机器出现问题不需要停服,并且可以处理更多的客户请求。同样也有缺点,每个机器中都需要完成制作蛋糕的一整套流程,这样的开发效率不高,并且这一台机器中出现事务,由于职责太多,影响的半径就会过大。这时候我们就需要考虑如何提高制作蛋糕的效率。所以我们可以采取分工合作。

分工合作之后,有的师傅只负责和面,有的师傅只负责烤蛋糕,有的师傅只负责售卖,这样的店铺我们可以理解成SOA架构或者微服务架构

注意:微服务架构可以理解为SOA架构的去中心化演进方向。

但是随着架构越来越复杂,我们要解决的问题也越来越多,比如数据一致性问题、通信问题、解耦问题等等。

课后总结

这节课程收获了很多,以前对架构的认识总是朦胧的感觉,通过课程对架构的认知清晰了很多。