这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
什么是架构
定义
- 有关软件整体结构与组件的抽象描述
- 用于指导软件系统各个方面的设计
其实架构就是在方法选择上起指导作用,以盖房子举例,从打地基到如何把房子盖得更高都是架构设计的范畴。
单机架构
把所有功能都实现在一个进程里,并部署在一台机器上
用开蛋糕坊来举例,如何做蛋糕?用独家秘方还是自己亲手做?是做完再卖还是边卖边做?考虑了这些因素,就是单机架构啦。
单体架构
分布式部署
但是只能处理开蛋糕坊这个问题,但是如果想卖更多的蛋糕,或者如何处理紧急情况都是需要考虑的,这就是从单机架构向后演变为单体架构(雇佣多个蛋糕师傅,再雇用一个大堂经理引流->分布式部署)。
垂直应用架构
按照应用垂直切分单体
再进一步的话,可以按照应用垂直切分(雇佣不同蛋糕技能的师傅,生产多种口味蛋糕)从而演变为垂直应用架构啦。
SOA架构
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准
- 微服务架构
微服务架构其实就是对SOA的演进,是对
SOA去中心化特性的一个演进方向,那么去中心单点(也就是各个蛋糕店员与大堂经理的交流方式) - 水平切分
再延续上面卖蛋糕的案例,其实SOA就是在各个角色的职责进行了水平切分,使得职责划分更加清晰,并让职责
纵向延伸。
企业级后端架构
云计算
指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模数据分析和存储的基石
云原生
云原生技术为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可信性
企业问题
讲师分析了字节跳动公司面临的资源调度问题和解决办法。
本节课容量过高,个人是选择性吸收了部分知识,其余知识有缘再补