这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
1.什么是架构
(1)定义
架构,又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计
(2)单机
软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
(3)单体,垂直应用
单体架构:分布式部署 垂直应用架构:按应用垂直切分的单体
(4)SOA
- 将应用的不同功能单元抽象为服务
- 2.定义服务之间的通信标准
- 微服务架构:SOA 的去中心化演进方向
2.企业级后端架构剖析
(1)云计算
云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石
(2)云原生
云原生技术为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用 提供了可能。
3.企业级后端架构的挑战
(1)离在线资源并池
核心收益
降低物理资源成本
提供更多的弹性资源,增加收入
解决思路:离在线资源并池
(2)自动扩缩容
核心收益
降低业务成本
解决思路:自动扩缩容
利用在线业务潮汐性自动扩缩容
(3)微服务亲合性部署
核心收益
降低业务成本
提高服务可用性
解决思路:微服务亲合性部署
(4)流量治理
核心收益
提高微服务调用容错性
容灾
进一步提高开发效率,DevOps 发挥到极致
解决思路: 基于微服务中间件 & 服务网格的流量治理 熔断、重试 单元化 复杂环境(功能、预览) 的流量调度
(5)CPU 水位负载均衡
核心收益: 打平异构环境算力差异 为自动扩缩容提供正向输入
解决思路: CPU 水位负载均衡
4.后端架构实战
(1)自适应静态权重
方案:
采集宿主机物理资源信息
调整容器注册的权重
优势:
复杂度低
完全分布式,可用性高微服务中间件无适配成本
缺点:
无紧急回滚能力
缺乏运行时自适应能力