服务治理组件笔记
背景
service-centric architecture
以服务为中心的架构,和 SOA 的区别是?
服务治理的模式
server-side pattern:容易集中管控,易单点失败。
client-side pattern:不容易集中管控,不易单点失败。
演化流程
- 基础治理能力:通信协议统一、命名服务的统一、监控预警、运营平台
- 高性能/易用性:通信框架高性能/通信框架轻量化/分布式链路追踪/测试工具可视化
- 全方位的治理能力:全链路压测平台/深度服务化 SOA/链路级流量治理/易用化平台构建
- 业界前言探索:SET 化高扩展架构/云原生架构治理
治理体系
该有的治理能力都要有。
注册中心
- 服务注册
- 服务概要
- 提供者
- 消费者
监控报警
- 节点监控
- 性能监控
- 业务监控
- 异常监控
服务运营
- 配置管理
- 服务分组
- 节点管理
- 服务鉴权
数据分析
- 性能指标
- 来源去向
- 主机分析
- 数据报表
- 调用链路
关键组件-本地代理
比如 LocalAgent,能够做到:策略下沉,解耦功能,对业务服务侵入性低。
但 Provider/Consumer 还需要使用自己的 sdk,它和远端的 naming service 服务,管理本地服务列表缓存、配置列表。
这样可以让通信简单化。
健康检查服务
Scanner 是专门的服务,负责检查和更新服务节点状态。这也可以有中心化和去中心化的设计。中心化的设计简单一点。
由健康检查服务可以实现平滑发布:
- 先修改服务为不可用,kill 掉服务。
- 发布成功,修改服务为启动中。
- 然后进行健康检查。
- 健康检查成功-服务修改为正常。
- 逐步导入流量。
这种发布要近端和远端协同,涉及状态机涉及,在关闭流程中,先改服务治理远端状态,再处理本服务器问题;在启动流程中,先处理本服务器问题,再改服务治理远端状态。
Mesh 化
完全 sidecar 化的 agent,完全独立的 agent 进程,这样所有服务治理的功能都用治理流量的方式来做。之前的 agent 只治理服务治理流量,sidecar 化以后也治理业务流量。
SRE 可以自主升级。业务可以更加聚焦业务核心逻辑。
单元化/基础设施
set 只是逻辑机房(数据中心)的一种称呼。
使用 set(或者其他方式)可以实现全链路流量隔离。这种全链路流量隔离,可以提供:
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.