当前位置: 首页 > 科技观察

Istio到底是做什么用的?

时间:2023-03-16 00:51:51 科技观察

上一篇介绍了《ServiceMesh究竟解决什么问题?》。当微服务架构体系越来越复杂时,需要将“业务服务”和“基础设施”解耦,将一个微服务流程分为两个:一个流程实现业务逻辑,biz,也就是上图中的白色方块,并在一个进程中实现底层技术体系,proxy,也就是上图中的蓝色方块,负载均衡,服务发现与治理,调用链……等等很多基础设施等等,都是在这个里面实现的layer经过这样的解耦:无论biz是调用服务还是提供服务,都只是在本地与本地代理进行通信。所有的跨网络通信都是通过代理进行的。说起ServiceMesh就不得不提Istio,这是目前ServiceMesh的流行实践,今天就来说说Istio是干什么的。画外音:不能掉队。什么是Istio?Istio是ServiceMesh的产品化。它的一些关键描述是:(1)帮助建立微服务之间的联系,帮助研发团队更好地管理和监控微服务,让系统架构更安全画外音:Istio帮助您连接、保护、控制和观察微服务。(2)帮助微服务分层解耦。解耦后的代理层可以更专注于提供基础设施能力,例如:服务发现(discovery);负载负载均衡;故障恢复;服务指标;服务监控;A/B测试;金丝雀推出;限制);访问控制;端到端认证;画外音:佩服,我才收集了十项,其实SM可以提供更多的基础服务功能。(3)让业务工程团队和基础设施团队都更高效地工作,专注于自己的工作,更好地赋能彼此的画外音:还是解耦。Istio官网是怎么吹嘘自己的?画外音:问这个问题的另一种方式是“你为什么要使用Istio?”Istio非常强大。如果要实现ServiceMesh,就必须使用Istio,因为:(1)可以在现有的服务器上添加一个sidecar代理,应用不需要改动代码,或者只需要改动很少的代码,就可以实现以上N个基本功能画外音:你信吗?(2)可以控制后台,只需更改配置,点击按钮即可管理查看以上N个基本功能。(3)以下特性,Istio在这个链接做了补充说明:负载均衡支持多种协议,HTTP、gRPC、WebSocket、TCP;通过路由、重试和故障转移对流量进行细粒度的流量控制;通过可插拔的策略层和可配置的API,可以支持流量访问控制、速率限制、配额管理;自动测量、日志收集、通话跟踪;服务到服务认证;Istio的核心功能是什么?Istio强调了它提供的五个关键特性:(1)流量管理画外音:断路器、超时、重试、高可用、多路由规则、AB测试、灰度发布、按百分比分配流量等。(2)安全画外音:加密、身份认证、服务到服务的权限控制、K8S中容器到容器的权限控制等。(3)可观察性(observability)画外音:跟踪、监控、数据采集,全面了解上下行流量、服务链路状态、服务运行状态、系统性能状态、国内微服务架构体系通过控制后台。缺少。(4)平台无关(平台支持)画外音:K8s、物理机、自己的虚拟机都可以。(5)Integrationandcustomization(集成与定制)画外音:可定制的扩展功能。Istio的吹牛和特性,对于很多通过RESTful提供内网服务的国外公司来说,是非常有吸引力的。不一定需要协议支持;在RPC框架中,路由、重试、故障转移、负载均衡、高可用是最基础的;流量控制、限速、配额管理是服务治理的内容。这是锦上添花;自动测量、系统进出数据采集、呼叫跟踪、后台可观察可控确实是最吸引人的;service-to-service身份认证,微服务基本都是内网访问,在架构前期只是锦上添花;另外一个花边,为什么代理叫sidecar代理?看了上图就很容易理解了。biz和proxy相伴相生,就像摩托车(motor)和边车(sidecar)一样。以后sidecar和proxy指的是微服务进程解耦为两个进程后提供基础能力的代理进程。Istio这么牛逼,那它的核心架构呢?且听下一章。【本文为专栏作者《58神剑》原创稿件,转载请联系原作者】点此阅读更多该作者好文