初探架构 | 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
架构概念
架构,又称软件架构,市有关软件整体结构与组件的抽象描述,也是用于指导软件系统各个方面的设计。也就是说,架构在实现软件的方法选择上起着至关重要的指导作用。
实例
云原生技术为组织(公司)在公有云,自由云,混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。
弹性计算资源
-
服务资源调度
- 微服务
- 大服务
-
计算资源调度
- 在线
- 离线
-
消息队列
- 在线:削峰,解耦
- 离线:大数据分析
弹性存储资源
-
经典
- 对象
- 大数据
-
关系型数据库
-
元数据
-
NoSQL
微服务架构
-
通信标准
- HTTP(RESTful API)
- RPC(Thrift,gRPC)
-
中间件
- 性能
- 服务治理
- 协议可解释性
服务网络
-
Service Mesh
- 微服务之间通讯的中间层
- 高性能网络代理
- 业务代码与治理解耦
相比较于RPC/HTTP框架,拥有异构系统治理统一化、生命周期易管理的优点。
面临挑战
基础设施
物理资源是优先的,例如机器数量和带宽大小,这决定了计算能力。如何分配这些资源是一个非常重要的问题。
另外资源利用率还受制于部署服务
用户层面
由于不是本地,用户与服务的网络通信开销较大,网络抖动导致运维成本提高。另外,在异构环境下,不同的实力资源分配的也不均衡。
解决方案
混合离线和在线资源
-
收益
- 降低物理资源成本
- 提供更多的弹性资源,增加收入
-
在线业务特点
- IO密集型为主
- 潮汐性、实时性
-
离线业务特点
- 计算密集型占多数
- 非实时性
自动扩缩容
-
收益
- 降低业务成本
-
做法
- 利用在线业务的潮汐性(间歇)自动扩缩容
微服务亲和性部署
-
收益
- 降低业务成本
- 提高服务可用性
-
做法
- 在满足亲和性条件的容器调度到一台宿主机
- 微服务中间件与服务网格通过共享内存通信
- 服务网格控制面实施灵活、动态的流量调度
流量治理
-
收益
- 提高微服务调用容错性
- 容灾
- 进一步提高开发效率
-
做法
- 基于微服务中间件&服务网络的流量治理
- 熔断、重试
- 单元化
- 复杂环境的流量调度
CPU水位负载均衡
-
收益
- 打平异构环境算力差异
- 为自动扩缩容量提供正向输出
-
做法
- 提供资源探针
- 动态负载均衡