架构
这是我参与【第五届青训营】伴学笔记创作活动的第7天,
什么是架构
架构又称为软件架构
- 用于软件整体结构与组件的抽象描述
- 用于指导软件系统各个方面的设计
架构就是在方法选择上起着重要的指导作用,更好的基础,走的更远。
单机:把所有功能都实现在一个进程里面,并部署到一台机器上,缺点:C10K problem、运维需要停服,针对这种问题演化出单体架构(分布式部署),在此基础上划分出垂直应用架构
SOA:将应用不同的功能单元抽象为服务,定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
企业级后端架构剖析
云计算:通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石
基础:
- 虚拟化技术
- 编排方案 架构:
- Iaas(买房子或着房屋租界平台)
- Paas(清包或许全包)
- Saas(从零培训或许雇佣)
- Faas(纯手工或者批量生产)
弹性计算资源类型:
- 服务资源调度:微服务、大服务
- 计算资源调度:在线(热销榜单)、离线(热销榜单更新)
- 消息队列:在线(削峰)、离线(大数据分析)
DevOps是软件交付的利器,结合自动化流程,提高软件开发、交付效率
通信标准:
- HTTP
- RPC(性能会好一点)
服务网格:微服务之间通讯的中间层,高性能网络代理
架构类似:
企业级后端架构的挑战
基础设施层面:物理资源是有限的(机器、带宽),资源利用率达不到最高
用户层面:网络通信开销大、网络抖动、不同环境下所用资源不同
离在线资源并池可以减低物理资源成本,提高更多的弹性资源,增加收入。
根据在线离线的特点在不同的时间段分配不同资源
微服务亲合性部署可以降低业务成本,提高服务可用性
后端架构实战
CPU水位负载均衡,应该如何设计
输入:
- 服务网络数据面:支持权重的负载均衡策略
- 注册中心存储所有容器的权值信息
- 宿主机能提供容器的资源使用情况和物理资源信息
方案:
- 采集宿主机物理资源信息
- 调整容器注册的权重
它的缺点是无紧急回滚能力,缺乏运行时自适应能力
之后提出了自适应动态权值Alpha,解决了无法紧急回滚的问题以及运行时权值自适应
最后提出了自适应动态权重Release版本,适用于大多数版本。