Istio

Istio 流量管理之流量转移

在日常的持续部署中,我们一般使用滚动升级的方式来进行微服务升级。若使用 Kubernetes 容器编排平台进行微服务滚动升级,其一般通过控制实例数的方式来实现。将旧版本下线,将新版本启动,新实例健康检查通过后,统一将流量打到新版本。 而使用 Istio,不用控制实例数,且可以更细粒度的控制流量打到各个版本的百分比,从而实现按比例将流量逐渐迁移到新版本来实现升级。

阅读更多

Istio 流量管理之故障注入

在微服务架构中,若一个服务不可用,会不会导致调用其 API 的上游服务也不可用,上游服务有没有针对该种情形做容错处理,这对应用的整体可用性来说是很关键的。Istio 可以在对微服务无侵入的情况下来模拟其发生故障,以帮助我们测试应用整体的容错能力。 Istio 主要使用 Virtual Service 提供两种故障注入能力:响应延迟与服务中止。

阅读更多

Istio 流量管理之请求路由

在上文“Istio 安装使用”中,我们对 Istio 进行了安装,并对 Bookinfo 样例进行了部署测试。本文接着上文,对 Istio 流量管理中的请求路由进行概念学习及样例测试。

阅读更多

为什么 Istio 重回单体架构?

随着应用规模的不断扩大,单体架构已不能承载企业越来越多的业务需求,微服务架构随之兴起。微服务给我们带来诸多益处的同时也带来诸多挑战,其根源即是复杂性的提升。为了解决微服务带来的诸多问题,其中便催生了服务网格的流行。但2020年初,业内最知名的服务网格实现Istio却反其道而行之,由微服务架构重回单体架构,其原因是什么呢?可能是一个契机,让我们重新审思微服务架构带来的好处及问题。 1 微服务架构有什么优势? 将一个复杂的单体应用切分为按领域细分的微服务后,可以让团队聚焦所关注的领域,做到相互独立,彼此不受影响。其带来的优势主要有: 彼此独立交付,快速迭代 各自解耦的微服务,可以让彼此间有明确的边界,各自可以采用不同的语言或技术栈,基于轻量协议(HTTP,RPC等)进行交互。每个微服务可以拥有自己的生命周期,无须相互协调或等待,做到彼此独立交付,相互不受影响。因粒度小,迭代快,从总体看,可以做到并行开发,流水线式产出。

阅读更多