Istio - Introduction

简介: 为了了解 Istio & Service Mesh 技术的出现方式或原因,可以先研究一下它试图解决的问题的根源,以及如果没有这项新技术,世界将是什么样子。

为了了解工具或技术的出现方式或原因,可以先研究一下它试图解决的问题的根源,以及如果没有这项新技术,世界将是什么样子。

微服务已经在业界有大量的落地案例,它的架构旨在将大型的单体应用程序分解为通过HTTP协议相互通信的小型单元。


微服务痛点

 但服务治理方面的挑战也随之而来:

  • 在众多的微服务中识别根本的故障原因
  • 不同的开发语言与框架的治理能力差异
  • 治理逻辑与业务逻辑耦合造成的复杂性

image.jpeg



什么是Istio?

Istio 是 Google、IBM、Lyft 共同开源的服务网格解决方案,希腊语为起航的意思,用于对微服务进行管理、监控、护航。


微服务架构解决了一些问题,但也引入了其他的问题,类似传统的服务治理需要对代码侵入并且语言绑定,这将给整体带来较高的架构复杂度及增加异常的风险。


但有了Istio,可以轻松的对已有的应用进行添加治理功能,让应用程序和治理逻辑解耦,降低架构的复杂度和减轻开发团队的负担。

image.jpeg


什么是服务网格?

服务网格是处理服务之间通信的专用基础设施层。它负责通过复杂的服务拓扑可靠地传递请求,服务网格通常被实现为一系列轻量级网络代理,这些代理以边车的方式与应用程序一起部署,对应用程序是透明且无侵入的。

image.jpeg

服务网格旨在表示网络代理像格子一样提供服务间的通讯能力


Istio核心功能

  • 流量管理

控制服务之间的流量和API调用流,使调用更可靠,并在不利条件下使网络更健壮。

  • 身份安全

为网状网络中的服务提供可验证的身份,并提供保护服务流量的能力,使其在不同程度的可信赖性网络上流动。

  • 策略管理

将策略应用于服务之间的交互,确保强制执行访问策略,并在消费者之间公平分配资源。策略更改是通过配置网格进行的,而不是通过更改应用程序代码来进行的。

  • 可观察性

了解服务之间的依赖性以及服务之间的流量的性质和流,从而提供快速识别问题的能力。


image.jpeg


Istio 架构形态

  • 数据平面

组件为Envoy,代理控制服务间的通讯且可以收集网络流量、拓扑信息等遥测功能。

  • 控制平面

组件为Istiod,负责配置和管理数据平面,提供控制平面及数据平面的编程抽象层。



image.jpeg

在Istio1.4及之前的版本,为Mixer、Pilot、Citadel、Galley等组件构成控制平面,但由Mixer性能处于严重的瓶颈并且架构复杂度高等原因,在1.5开始回归单体架构。


目录
相关文章
|
资源调度 分布式计算 数据可视化
DolpinScheduler2.0.5详细介绍与踩坑实战
大数据之DolpinScheduler2.0.5详细介绍与踩坑实战
DolpinScheduler2.0.5详细介绍与踩坑实战
|
8月前
|
监控 算法 安全
基于 PHP 语言深度优先搜索算法的局域网网络监控软件研究
在当下数字化时代,局域网作为企业与机构内部信息交互的核心载体,其稳定性与安全性备受关注。局域网网络监控软件随之兴起,成为保障网络正常运转的关键工具。此类软件的高效运行依托于多种数据结构与算法,本文将聚焦深度优先搜索(DFS)算法,探究其在局域网网络监控软件中的应用,并借助 PHP 语言代码示例予以详细阐释。
176 1
|
10月前
|
人工智能 数据可视化 数据处理
从0到1只需“拖一拖”,开发时间按秒算——低代码到底有多牛
低代码平台正颠覆传统软件开发模式,通过可视化开发、模块化组件和自动化工具,将复杂开发过程大大简化。开发者只需“拖拽”组件和配置参数,即可快速构建应用,无需复杂编程。低代码平台支持实时预览、自动代码生成和快速部署,极大提高了开发效率,满足多样化业务需求。其核心引擎(如SQL引擎、功能引擎等)的升级,进一步提升了性能与灵活性。此外,模型驱动开发、智能数据处理及AI融合,使得低代码平台不仅简化开发流程,还为企业提供高效、灵活的技术解决方案,推动企业数字化转型。未来,低代码将成为智能化开发的关键趋势。
490 18
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
820 10
|
机器学习/深度学习 数据可视化 JavaScript
|
移动开发 前端开发 JavaScript
如何向后兼容性
如何向后兼容性
|
移动开发 网络协议 网络安全
详解 WebSocket
详解 WebSocket
676 0
|
存储 Kubernetes 关系型数据库
Kubernetes(K8S) 安装Nacos,报 No DataSource set
Kubernetes(K8S) 安装Nacos,报 No DataSource set
239 0
|
Java Linux
CentOS上安装openjdk
CentOS上安装openjdk
415 0
|
SQL Oracle 关系型数据库
Oracle之Fetch关键字的使用
Oracle之Fetch关键字的使用
566 1