这是我参与「第五届青训营 」伴学笔记创作活动的第9天
1.认识架构
1.1概念
架构(又称软件架构):是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
1.2单机架构
软件系统需要具备对外提供服务,单机架构就是把所有功能都实现在一个进程里,并部署在一台机器上,优点是简单,问题是C10K problem(单机客户端同时并发一万个请求)和运维需要停服
1.3单体架构
在单机架构的基础上,进行分布式部署(将进程部署在多个机器上)
1.4垂直应用架构
按照应用垂直切分的单体
1.5SOA (面向服务架构)
SOA(Service-0riented Architecture):将应用的不同功能单元抽象为服务,定义服务之间的通信标准,通俗的理解就是专门的人做专门的事情(各个服务的职责更加清晰明确)
1.6微服务架构
微服务架构: SOA 的去中心化演进方向,服务和职责拆分的更加细致,相对于SOA来说服务之间更加自由的建立沟通方式,降低耦合度,缺点是运维成本提高了
1.7小结
- 架构演进的趋势目的:需求量越多,工程越复杂,满足软件的迭代需求,提高迭代效率
- 架构演进的思路:分为垂直切分(分布式)和水平切分(分层模块化)
2.企业级后端架构
2.1云计算
2.1.1概念
云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模数据分析和存储的基石。
2.1.2云计算基础
- 虚拟化技术
- 编排方案