写点什么

ServiceMesh 如何帮助 SRE

  • 2021-04-20
  • 本文字数:1393 字

    阅读完需:约 5 分钟

ServiceMesh如何帮助SRE

要监控服务,而不是服务器或者容器什么的。


在之前的文章中,我们介绍了 SRE 应该围绕 SLO 展开运维工作,我们也知道了监控是获得 SLO 相关第一手数据的重要手段。SRE 所希望的监控,是直接从服务的关键路径上获取的状态信息;从运行服务的服务器或者容器的获得的状态信息在,只能间接说明服务的状态,这就是本文开头那句话的含义。

服务网格


对于一个基于 HTTP 的业务来说,直接拿到每个请求的返回代码,无疑是一个核心的监控措施。从架构上说,通过负载均衡器是可以非常客观的获得后端服务的这个监控指标的。



随着业务的逐渐复杂,通过负载均衡器来访问服务的不仅仅是最终客户,也可能是另一个服务:


随着流量的上升,我们希望负载均衡器也能一起水平扩展:


显然,负载均衡器的数量没有必要比服务 B 的数量还多,如果我们将负载均衡的功能直接集成到服务 B 中呢?


于是我们就获得了一个服务网格。


通过这种方式,我们还可以把下列功能集成进去:


  • 流量控制:对应负载均衡器的流量导向

  • 服务发现:让负载均衡器的后端更灵活,更易于管理

  • 链路跟踪:通过向流量中注入追踪信标,可以更容易的流量的来龙去脉进行跟踪并分析服务瓶颈

  • 安全与权限控制:通过对流量进行加密和注入权限控制属性,可以更方便地进行安全管理跟 Kubernetes 的 sidecar 技术结合,以上工作都可以在应用程序无感的前提下实现,这个就是著名的 Istio。

SRE 工作中的服务网格

监控数据收集和使用


在 Google Cloud 上,我们提供一个强大的运维工具 Stackdriver,而 Istio 则可以通过 Telemetry 的接口将 Istio 收集的各个组件的监控数据发送给 Stackdriver。


在 Stackdriver 中,可以直接查看服务的监控信息:


也可以查看服务组件之间的调用关系:


Stackdriver 的 SLO 监控面板可以直接提供与 SLO、错误预算相关的数据:


在 SLO 监控下完成新版本发布


在服务网格(或者更直接点,Istio)的帮助下,SRE 工程师可以通过直接更新 VirtualService 实现流量切换的办法完成升级。


因为切换流量的执行速度非常快,整个升级过程将会很平顺。


更进一步,我们可以使用流量分配功能,将部分流量引导到新版本:


由于只分配了部分流量到新版本,那么即使新版本有瑕疵,也只会消耗一小部分错误预算。我们可以重复这个过程:


在这个过程中,我们可以一边监控错误预算的消耗,一边控制流量的转移,并可以设定条件,如果错误预算的消耗超过某个阈值就回滚到初始状态:


这样,服务网格就能帮助 SRE 完成灰度发布。

Anthos 服务网格(ASM)产品


       ASM 作为谷歌云托管的服务网格解决方案产品,在开源的 Istio 的基础上,主要还提供了以下的能力:


控制平面托管

        托管的指标收集器:ASM 可以观察服务的运行状况和性能。依赖于 Sidecar 代理,拦截到工作负载的所有入站和出站 HTTP 流量,并将数据报告给 ASM。 从而,开发人员无需注入任何代码即可收集遥测指标数据。

        托管的 CA:ASM 提供 Google 全托管的 CA(Certificate authority)服务,可以帮助你配置 Service Mesh 的 CA 服务。

        Traffic Director:是一个用于服务网格的完全托管且生产可用的流量控制平面。 使用 Traffic Director,您可以轻松地在多个区域中的群集和 VM 实例之间部署 Global 负载平衡,减轻服务代理的运行状况检查的压力,以及配置复杂的流量控制策略。


开箱即用的服务管理能力

  • 日志,监控指标,链路追踪,SLO 指标监控告警等

  • 提供服务的认证与鉴权,策略管理等安全管控的能力

  • 服务路由,负载均衡,流量控制管理,限流,降级,故障注入和断路器等

2021-04-20 15:381426

评论

发布
暂无评论
发现更多内容

华为云GaussDB首次亮相2021服贸会,为数字人民币提供坚实数据底座

华为云数据库小助手

金融科技 数字经济 GaussDB 华为云数据库

打爆怪兽 一起来养猪 养蜂人 幸福饭店

游戏开发_软件开发

软件 App 开发 游戏 语音合成

狂刷《Java权威面试指南(阿里版)》,冲击“金九银十”有望了

Java 编程 架构 面试 程序人生

加速国产开源软件创新,云智慧AIOps社区正式发布

云智慧AIOps社区

开源 算法 数据 场景 智能运维

“小巨人”的转型烦恼,百度智能云能否解压?

百度开发者中心

人工智能 企业资讯 中小企业

阿里内部架构解密:网络+分布式+RPC+消息中间件+微服务

Java~~~

Java spring 架构 面试 微服务

无场景不智能-面向场景的智能运维算法体系

云智慧AIOps社区

算法 日志 场景 智能运维 数据指标

27W字总结阿里Java高并发编程:案例+源码+面试+系统架构设计

Java~~~

Java 架构 面试 算法 多线程

在同一台计算机中运行多个MySQL服务

Java 数据库 后端 msyql

精品!阿里P7爆款《K8s+Jenkins》技术笔记,高质量干货必收藏

Java 程序员 架构 面试 k8s

阿里内部最新“SpringCloudAlibaba学习笔记”出炉

Java 阿里巴巴 架构 面试 微服务

必杀器!鹅厂首推569页Netty+Redis+ZK+高并发

Java~~~

Java redis 架构 面试 Netty

云智慧智能研究院实习生招聘信息~只等优秀的你!

云智慧AIOps社区

深度学习 招聘 异常检测 实习 智能运维

数据库是什么意思?有什么用?有哪些类型?

行云管家

数据库 运维 IT

收藏!阿里P9耗时28天,总结历年亿级活动高并发系统设计手册

Java~~~

Java 架构 面试 高并发 系统

横空出世!复盘B站面试坑我最深的Java并发:JDK源码剖析

Java~~~

Java 源码 架构 jdk 面试

云智慧AIOps研究院来咯~

云智慧AIOps社区

技术 算法 数据 智能运维 指标

CTO离职前悄悄和我说,吃透这5本Java核心技术笔记,涨薪特别简单

Java~~~

Java MySQL spring 架构 面试

浅析 DDD 领域驱动设计

牧小农

DDD 领域驱动

安卓工控主板双网口有什么用途?

双赞工控

安卓主板 工控主板

C/S结构是什么意思?有什么优点?

行云管家

数据库 运维 IT

别慌!阿里专家破SpringBoot:入门+基础+进阶+项目

Java~~~

Java 数据库 架构 面试 Spring Boot

把工作讲给家人听

FunTester

读书笔记 FunTester 奈非文化手册 办公效率 居家工作

为什么UI自动化难做?—— 关于Selenium UI自动化的思考

LigaAI

测试 UI自动化

太强了!京东首席架构师深邃洞察:服务化+云原生+微服务

Java~~~

Java 架构 面试 云原生 架构师

GitHub上标星120K!Alibaba官网发布了这份Java全栈知识体系手册

Java~~~

Java 架构 面试 JVM 多线程

GAIA:智能运维领域通用公开数据集

云智慧AIOps社区

算法 AIOPS 数据集 场景 智能运维

令我入职阿里的750页微服务架构深度解析文档有何神秘之处?

Java 编程 架构 面试 架构师

百度短视频推荐系统的目标设计

百度Geek说

架构 后端 推荐系统 短视频

一文搞懂音视频开发技术点及职业发展方向

赖猫

c++ android 音视频

无敌!阿里巴巴开源落地可实操项目:网约车+咚宝商城+英雄传说

Java~~~

Java 架构 面试 项目 架构师

ServiceMesh如何帮助SRE_服务革新_盛骏_InfoQ精选文章