Service Mesh 落地路径

简介: 【2月更文挑战第29天】该文讨论了在非Kubernetes环境下如何引入Service Mesh。若业务已在Kubernetes上,Istio是理想选择;否则,有两种路径:1) 先采用Sidecar解决眼前需求,若未来计划容器化,再转向Istio;2) 先进行Kubernetes改造,然后接入Istio以充分利用其优势。文章建议,出于性能考虑,可简化Istio的Mixer组件,仅保留核心的Envoy和Pilot,安全特性应根据业务环境灵活选择。对于特定平台,可以定制优化Istio以提高性能。

在确定要进行Service Mesh引入时,就要考虑Service Mesh落地的具体路径。首先是业务当前所处阶段是否已经支持容器化和Kubernetes。如果业务当前已经运行在Kubernetes上,因Istio对Kubernetes有着很好的支持,Service Mesh迁移就会非常顺畅;如果业务当前没有运行在Kubernetes容器上,因Service Mesh领域当前最强大的Istio对Kubernetes有一定的依赖,所以可能就无法直接使用Istio,即使定制修改Istio,解除对Kubernetes的依赖,也需要很大的代价。这时通常有如下两条路径可以选择。

一、非Kubernetes环境下,先接入Sidecar

如果业务当前没有办法快速容器化,同时又有引入Service Mesh的迫切需求,可以先接入Sidecar,满足业务当前的痛点需求。至于接入Sidecar之后的演进方向,需要看业务的未来规划中是否有Kubernetes容器化的计划,如果有,建议先进行容器化改造后,再由Sidecar的方式演进到Istio。


Istio在非Kubernetes环境下没有很好的支持,对Istio进行定制修改以支持非Kubernetes环境有很大的工作量,除非有非常强烈的需求和非常强大的技术储备,一般不建议这么做,特别是对于一些中小公司来说。如果一定要在非Kubernetes环境下实施Service Mesh,可以在数据平面使用Envoy,控制平面根据XDS协议自己研发,这样也非常灵活,方便控制。

二、先进行Kubernetes容器化改造,再接入Istio

对于有Kubernetes容器化需求的团队,可以在Kubernetes容器化完成之后,再进行Istio接入,Istio在很多方面利用了Kubernetes强大的基础设施能力,所以只有在Kubernetes下Istio才能最大限度地发挥作用,并且减少运维上的复杂度。


对于Istio来说,当前性能确实是阻塞Service Mesh大规模实施的关键因素,引入Istio的目的是解决痛点需求,Istio最有价值的部分是Envoy和Pilot,它们一起完成请求路由转发的配置管理,以及实际的转发。


Mixer架构设计上看起来很美好,但业务实际上并不会过多使用Mixer组件,对扩展性和灵活性也并没有那么高的要求,因此出于性能考量,可以把Mixer相关的功能放到Envoy,只实现最精简、最必要的检查和遥测统计逻辑。


Istio security则需要根据业务的具体情况灵活选取。比如我司业务放在自建机房的私有云中,对于Istio面向的微服务内部的东西向通信来说,在内网环境下不需要考虑过多的安全问题,所以可以直接把安全部分裁掉;当然,如果是在公有云中部署Service Mesh服务,则需要对安全部分更多关注。

从解决痛点需求和综合考虑性能,可以先聚焦Istio提供的核心价值,将当前不需要太多关注的部分裁掉。此外,出于对扩展性的考虑,Istio架构的整体性能会受一定的影响,如果你的业务只运行在特定的平台上,比如Kubernetes,可以根据具体平台对Istio进行相应的定制和优化。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
Kubernetes 网络协议 数据库
在Service Mesh内访问网格外的服务
阿里云服务网格ASM提供了访问外部服务的三种方式,包含设置外部服务访问策略、配置ServiceEntry和设置拦截对外访问的网段。本文介绍如何在服务网格ASM上访问外部服务。
100 0
|
7月前
|
负载均衡 Dubbo Java
Service Mesh 的基本模式
【5月更文挑战第16天】Service Mesh分为两种模式:Sidecar和第二代Service Mesh。
|
Rust Kubernetes 负载均衡
Service Mesh 体系解析
Service Mesh(服务网格)诞生于云原生生态领域的潮流中,虽然大家对这一技术生态充满不确定性,甚至难以接受,然而,如果我们消除外面的“杂声”,细心洞察里面的细节,或许能有不一样的收获,毕竟,所有新技术的出现是为了解决业务痛点,而非是为了一些没用意义的炒作。
370 0
|
分布式计算 运维 负载均衡
Service Mesh 的由来
Service Mesh 的由来
135 0
Service Mesh 的由来
|
Cloud Native 前端开发 Dubbo
到底谁才需要Service Mesh?(二)
到底谁才需要Service Mesh?(二)
136 0
到底谁才需要Service Mesh?(二)
|
监控 Cloud Native 网络协议
到底谁才需要Service Mesh?(一)
到底谁才需要Service Mesh?(一)
180 0
到底谁才需要Service Mesh?(一)
|
开发框架 负载均衡 监控
第一代Service Mesh
第一代Service Mesh
123 0
|
运维 物联网
第二代Service Mesh
第二代Service Mesh
198 0
|
安全
Linkerd Service Mesh 服务配置文件规范
Linkerd Service Mesh 服务配置文件规范
117 0
|
运维 监控 安全
Service Mesh 在中国工商银行的探索与实践
服务网格与现有微服务架构融合发展,助力工行应用架构向分布式、服务化转型,承载未来开放平台核心银行系统。
Service Mesh 在中国工商银行的探索与实践
下一篇
DataWorks