首页 > 其他分享 >Istio典型应用场景

Istio典型应用场景

时间:2022-11-01 17:56:48浏览次数:105  
标签:典型 场景 服务 Istio 断路器 故障 调用 应用

Istio作为服务治理的工具,使用户不需要在项目中编写代码即可实现微服务治理。主要应用分布式调用追踪、遥测度量收集、灰度发布应用、熔断、故障注入等几个方面场景。 Istio提供灵活的适配器模型来执行授权策略,并为网络中的服务提供多项功能。Istio提供统一抽象,可以与一组开放式基础设施后端进行交互。这样做是为了给运维提供丰富且深入的控制,同时不给服务开发人员带来负担。Istio旨在改变层与层之间的边界,以减少系统复杂性,消除服务代码中的策略逻辑并将控制权交给运维。

图1  Istio适配器模型

 

以下是Istio比较典型的应用场景。

一、分布式调用追踪

在微服务架构中,业务的调用链非常复杂。一个来自用户的请求可能涉及几十个服务的协同处理,因此需要一个跟踪系统来记录和分析同一次请求在整个调用链上的相关事件,从而帮助研发和运维人员分析系统瓶颈,快速定位异常和优化调用链路。

二、遥测度量收集

Envoy 收集指标相关的原始数据,如请求的服务、HTTP状态码、调用时延等信息,并将这些指标数据发送给Mixer,通过Mixer Adapters将指标信息转换后发送到后端监控系统中,如Prometheus或者InfluxDB等。Mixer对后端监控系统采用了插件机制,便于兼容不同的监控系统。

图2 Istio实现度量收集的原理

 三、灰度发布应用

在云原生架构下,应用系统会出现高频发布。通过灰度发布(又名金丝雀发布)来实现业务从老版本到新版本的平滑过渡,并避免升级过程中出现的问题对用户造成影响。Istio 通过高度的抽象和良好的设计,采用一致的方式实现了灰度发布,可以最小化升级中出现的故障对用户的影响。

四、熔断

在微服务架构中,存在着众多互相依赖的服务单元。若一个服务出现故障,就会形成故障蔓延,最终导致整个系统的瘫痪。为了解决这类故障传递问题,服务网格引入断路器实现熔断。断路器是创建弹性微服务应用程序的重要模式。断路器允许用户编写限制故障、延迟峰值以及消除其他不良网络特性影响的应用程序。

断路器模式是指在某个服务发生故障时,断路器的故障监控机制及时向服务调用方返回一个错误响应,避免调用方长时间等待,从而阻止了故障在整个系统中蔓延。

图4 Istio实现断路器的原理

 

五、故障注入

对于一个大型微服务应用而言,系统的健壮性非常重要。在微服务系统中存在大量服务实例,当部分服务实例出现问题时,微服务应用需要具有较高的容错性,通过重试、断路、自愈等手段保证系统能够继续对外正常提供服务。因此在应用发布到生产系统前必须对系统进行充分的健壮性测试。

对微服务应用进行健壮性测试的一个最大困难是如何对系统故障进行模拟。Istio 通过服务网格承载了微服务之间的通信流量,因此可以在网格中通过规则进行故障注入,模拟部分微服务出现故障的情况,对整个应用的健壮性进行测试。

图5 故障注入的原理

通过设置规则注入故障的方式,测试人员可以很方便地模拟微服务之间的各种通信故障,对微服务应用的健壮性进行较为完整的模拟测试。

标签:典型,场景,服务,Istio,断路器,故障,调用,应用
From: https://www.cnblogs.com/tiduyun/p/16848601.html

相关文章

  • Istio架构设计有4大关键目标
     Istio作为服务网格技术的代表作,通过sidecar代理拦截了微服务之间的所有网络通信,用统一方式实现服务之间的负载均衡、访问控制、速率限制等功能。应用无须了解底层服务访......
  • Istio egress gateway
    EgressGateway逻辑示意图EgressGateway配置要点各SidecarEnvoy上访问特定外部主机的流量,要路由至EgressGatewayEgressGateway要将相应的流量路由至相应的外部......
  • Istio workloadEntry实例
    服务说明在网格外部运行有nginx服务,有两个实例Nginx2001:监听地址为172.29.1.201:8091,Nginx版本为1.20Nginx2002:监听地址为172.29.1.202:8091,Nginx版本为1.20N......
  • Istio ServiceEntry实例
    服务说明在网格外部运行有nginx服务,有两个实例Nginx2001:监听地址为172.29.1.201:8091,Nginx版本为1.20Nginx2002:监听地址为172.29.1.202:8091,Nginx版本为1.20N......
  • Istio 流量拦截
    Sidecar代理方式简介Kubernetes平台上,EnvoySidecar容器与application容器于同一个Pod中共存,它们共享NETWORK、UTS和IPC等名称空间,因此也共用同一个网络协议栈;EnvoySideca......
  • mybatis中${}、 #{}区别及应用场景
    mybatis中${}、#{}区别及应用场景动态sql是mybatis的主要特性之一。在mapper中定义的参数传到xml中之后,在查询之前mybatis会对其进行动态解析。mybatis提供了两种支持动态s......
  • 【多服务场景化解决方案】AR虚拟技术助力智能家装
    ​1、介绍 总览本应用采用了华为图形引擎服务的AR虚拟技术,您可以在手机相机里摆放想要购置的家具家电,交互式体验让您可以轻松操控它们的3D图例,以此来确定这些家具家......
  • 【多服务场景化解决方案】让新闻“动”起来
    ​1、介绍总览搜索服务、NetworkKit以及机器学习服务是新闻类应用最常用的服务。机器学习服务把用户输入信息传递给搜索服务,搜索服务和NetworkKit一起检索相关新闻......
  • istio部署demoapp应用 (十四)sidecar
    创建client~#kubectlrunclient--image=ikubernetes/admin-box-it--rm--restart=Never--command--/bin/shIfyoudon'tseeacommandprompt,trypressingen......
  • Istio Policies and Telemetry
    要理解策略和遥测,首先要理解Mixer的架构;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sUuojjzC-1664190859192)(https://istio.io/docs/conc......