这是我参与「第五届青训营 」伴学笔记创作活动的第9天。
0、重点
- 架构
1、架构
什么是架构
架构,又称软件架构,
- 是有关软件整体结构与组件的抽象描述
- 用于指导软件系统各方面的设计
架构相当于房屋的地基,地基坚实了,大厦才能盖得高。
单机
软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上。
- 优点
- 简单
- 缺点
- 运维需要停服
单体、垂直应用|垂直切分
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
优点:
- 水平扩容
- 运维部需要停服
问题:
- 职责太多,开发效率不高
- 爆炸半径大
SOA、微服务|水平切分
SOA(service oriented architecture)
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
- 问题
- 数据一致性
- 高可用性
- 治理
- 解耦 VS 过微
2、企业级后端架构剖析
云计算
指通过软件自动化管理,提供计算资源的服务网络,是互联网大规模熟悉分析和存储的基石。
- 架构
- IaaS
- PaaS
- SaaS
- FaaS(Function as a Service)
云原生
云原生之弹性计算资源
云原生之弹性存储资源
云原生之DevOps
云原生之微服务架构
通信标准
- HTTP
- RPC
云原生之服务网络
3、 企业级后端架构的挑战
问题
-
基础设施层面
- 物理资源有限
- 资源利用率受制于部署服务
-
用户层面
- 网络通信开销较大
- 网络抖动导致运维成本提高
- 异构环境下,不同实例资源水位不均
离在线资源并池
-
在线资源
- IO密集型为主
- 潮汐性、实时性
-
离线业务
- 计算密集型
- 非实时性
自动扩缩容
利用在线业务潮汐性自动扩缩容
(未完待续)