这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天。
01. 什么是架构-定义
架构,又称软件架构
·是有关软件整体结构和组件的抽象描述
·用于指导软件系统各个方面的设计
1.1 什么是架构-问题
1.2 什么是架构-单机
1.3 什么是架构-单体、垂直应用|垂直切分
1.4 什么是架构-SOA、微服务|水平切粉
小结
架构的演进初衷:
·需求量越来越大,终归要增加人手
·越做越复杂,终归要分工合作
架构的演进思路:
·竖着切(垂直切分)
·横着切(水平切分)
02. 企业级后端架构分析-背景
2.1 企业级后端架构分析-云计算
云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。
基础:
·虚拟化技术
·编排方案
架构:
·IaaS(Infrastructure as a Service)
·Paas(Platform as a Service)
·Saas(Software as a Service)
·FaaS(Function as a Service)
2.2 企业级后端架构分析-云原生
云原生技术为组织(公司)在公有云、自有云、混合云等新型的动态环境中,构建和运行科弹性拓展的应用提供了可能。
2.2.1 企业级后端架构分析-云原生之弹性计算资源
弹性计算资源类型:
·服务资源调度
·计算资源调度
·消息队列
2.2.2 企业级后端架构分析-云原生之弹性存储资源
弹性存储资源类型:
·经典:对象、大数据
·关系型数据库
·元数据:服务发现
·NoSQL:KV
2.2.3 企业级后端架构分析-云原生之DevOps
2.2.4 企业级后端架构分析-云原生之微服务架构
通信标准:
·HTTP(RESTful API)
·RPC(Thrift,gRPC)
微服务中间件RPC vs HTTP:
·性能
·服务治理
·协议可解释性
云原生场景下,为服务大可不必在业务逻辑中实现符合通信标准的交互逻辑中实现符合通信标准的交互逻辑,而是交给框架来做
2.2.5 企业级后端架构分析-云原生之服务网格
服务网格(Service Mesh):
·为服务之间通讯的中间层
·高性能网络代理
·业务代码与治理解耦
相比较于RPC/HTTP框架:
·异构系统治理统一化
·与业务进程解耦,生命周期易管理
03. 企业级后端架构的挑战-问题
挑战:
·基础设施层面
··物理资源有限
···机器
···带宽
··资源利用率受制于部署服务
·用户层面
··网络通信开销较大
··网络抖动导致运维成本提高
··异构环境下,不同实例资源水位不均
3.1 企业级后端架构的挑战-离在线资源并池
核心收益:
·降低物理资源成本
·提供更多的弹性资源,增加收入
解决思路:离在线资源并池
·在线业务的特点:
··IO密集型为主
··潮汐性、实时性
·离线业务的特点
··计算密集型占多数
··非实时性
3.2 企业级后端架构的挑战-自动扩缩容
核心收益:
·降低业务成本
解决思路:
自动扩缩绒
·利用在线业务潮汐性自动扩缩容
问题:扩缩容依据什么指标?
3.3 企业级后端架构的挑战-微服务亲和性部署
核心收益:
·降低业务成本
·提高服务可用性
解决思路:微服务亲和性部署
·将满足亲和性条件的容器调度到一台宿主机
·微服务中间件与服务网格通过共享内存通信
·服务网格控制面实施灵活、动态的流量调度
3.4 企业级后端架构的挑战-流量治理
核心收益:
·提高微服务调用容错性
·容灾
·进一步提高开发效率,DevOps发挥到极致
解决思路:给予微服务中间件&服务网格的流量治理
·熔断、重试
·单元化
·复杂环境(功能、预览)的流量调度
3.5 企业级后端架构的挑战-CPU水位负载均衡
核心收益:
·打平异构环境算力差异
·为自动扩缩容提供正向输入
解决思路:CPU水位负载均衡
·IaaS
··提供资源探针
·服务网格
··动态负载均衡
04. 后端架构实战-问题背景
输入:
·服务网格数据面
··支持带权重的负载均衡策略
·注册中心存储了所有容器的权重信息
·宿主机能提供
··容器的资源使用情况
··物理资源信息(如CPU型号)
关键点: ·紧急回滚能力 ·大规模 ·极端场景