初探架构 | 青训营笔记

94 阅读2分钟

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

什么是架构

定义

  • 有关软件整体结构与组件的抽象描述
  • 用于指导软件系统各个方面的设计

其实架构就是在方法选择上起指导作用,以盖房子举例,从打地基到如何把房子盖得更高都是架构设计的范畴。

单机架构

把所有功能都实现在一个进程里,并部署在一台机器上

用开蛋糕坊来举例,如何做蛋糕?用独家秘方还是自己亲手做?是做完再卖还是边卖边做?考虑了这些因素,就是单机架构啦。

单体架构

分布式部署

但是只能处理开蛋糕坊这个问题,但是如果想卖更多的蛋糕,或者如何处理紧急情况都是需要考虑的,这就是从单机架构向后演变为单体架构(雇佣多个蛋糕师傅,再雇用一个大堂经理引流->分布式部署)。

垂直应用架构

按照应用垂直切分单体

再进一步的话,可以按照应用垂直切分(雇佣不同蛋糕技能的师傅,生产多种口味蛋糕)从而演变为垂直应用架构啦。

SOA架构

  1. 将应用的不同功能单元抽象为服务
  2. 定义服务之间的通信标准
  • 微服务架构 微服务架构其实就是对SOA的演进,是对SOA去中心化特性的一个演进方向,那么去中心单点(也就是各个蛋糕店员与大堂经理的交流方式)
  • 水平切分 再延续上面卖蛋糕的案例,其实SOA就是在各个角色的职责进行了水平切分,使得职责划分更加清晰,并让职责纵向延伸

企业级后端架构

云计算

指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模数据分析和存储的基石

云原生

云原生技术为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可信性

企业问题

讲师分析了字节跳动公司面临的资源调度问题和解决办法。

本节课容量过高,个人是选择性吸收了部分知识,其余知识有缘再补