在微服务架构中service mesh是什么

什么是 service mesh ?

微服务架构将软件功能隔离为多个独立的服务,这些服务可独立部署,高度可维护和可测试,并围绕特定业务功能进行组织。
这些服务通过简单的,可通用访问的API相互通信。在技​​术层面上,微服务可实现大型复杂应用程序的持续交付和部署。在更高的业务水平上,微服务有助于为试图在快速发展的市场中实现敏捷性的公司提供速度,可伸缩性和灵活性。

但是,如前所述,微服务架构会很快变得复杂。我们如何处理这种复杂性?

service mesh是一种基础结构层,允许我们的服务实例相互通信。service mesh还允许我们配置服务实例如何执行关键操作,例如服务发现,负载平衡,数据加密以及身份验证和授权。

因为service mesh提供了一层抽象(应用程序代码通常不了解service mesh执行的工作),所以我们获得了很大的灵活性;例如,我们可以将微服务移至其他服务器或集群,而无需重写应用程序。实际上,service mesh使管理微服务的最无聊和重复的工作自动化。

service mesh 是如何工作的?

服务网格的体系结构分为两个不同的部分:数据平面和控制平面。

数据平面实质上是处理服务之间通信的代理服务。在Istio中,数据平面被部署为sidecar,这是添加到主应用程序中的支持服务。例如,在Kubernetes基础架构中,代理与具有共享网络名称空间的应用程序部署在同一个pod中。

数据平面还提供对微服务的可观察性,尤其是以日志和度量标准聚合的形式。

NGINXHAProxyEnvoy均提供数据平面功能。尤其是Envoy,已成为广受欢迎的代理,因为它专门用于微服务体系结构,提供用于配置的动态API并增强了可观察性。

同时,控制平面,监控数据平面的策略和配置-它不处理任何数据。 NelsonSmartStackIstio等工具都以某种形式提供控制面板功能,并且每种工具都有自己的策略来管理与代理的关系。例如,在Kubernetes中,控制平面与业务流程系统协同工作,以调度服务及其代理,跟踪服务发现并通过API配置代理。

我们可以将Envoy作为没有控制平面的独立代理运行,但这是Istio对控制平面/数据平面工作流的独特方法,以及其与Envoy结合使用时的核心功能(流量管理,安全性,可观察性)功能齐全的服务网格越来越吸引着许多用户

service mesh 之 istio 的内部机制

Istio的体系结构包括四个主要部分。 Istio使用Envoy sidecar代理作为其数据平面,其他三个工具组成了Istio控制面板。
如下图:

  • Envoy:Envoy sidecar 代理充当Istio的数据平面。诸如故障处理(例如,运行状况检查和有限制的重试),动态服务发现和负载均衡等内置功能使Envoy成为功能强大的工具。 Envoy还通过属性提供有关服务请求的信息。

  • Mixer:Istio的策略和遥测中心收集有关网状网中服务请求的Envoy属性,并提供API,以便DevOps团队可以构建插件(或适配器)以在任意数量的第三方后端中重新利用这些属性,包括日志记录,授权或监控工具,例如New Relic(更多信息请参见下文)。 Mixer还使用相互TLS处理代理之间的授权。

  • Pilot:Istio使用Pilot根据我们的Envoy配置管理负载均衡流量控制。与Mixer一样,我们可以包含适配器,以便Pilot可以通过API与Kubernetes基础架构通信,以了解影响流量的部署更改。Pilot还将身份验证规则分发给代理。

  • Citadel:借助CitadelIstioEnvoy代理之间的身份验证和凭据管理提供了一个强大的,策略驱动的安全层。Citadel管理整个网格中的密钥和认证。

在微服务架构中service mesh是什么?的更多相关文章

  1. Chris Richardson微服务翻译:微服务架构中的服务发现

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现(本文) 微服务之事件驱动的数据管理 微服 ...

  2. 微服务架构中APIGateway原理

    背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest ...

  3. Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案

    Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案 说明:Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在 ...

  4. Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理

    Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理 说明:Java生鲜电商平台中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务 ...

  5. 微服务架构中的Redis

    了解如何将Redis与Spring Cloud和Spring Data一起使用以提供配置服务器,消息代理和数据库. Redis可以广泛用于微服务架构中.它可能是少数流行的软件解决方案之一,你的应用程序 ...

  6. 微服务架构中API网关的角色

    [上海尚学堂的话]:本文主要讲述了Mashape的首席技术执行官Palladino对API网关的详细介绍,以及API网关在微服务中所起的作用,同时介绍了Mashape的一款开源API网关Kong. A ...

  7. 认证鉴权与API权限控制在微服务架构中的设计与实现(四)

    引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的完结篇,前面三篇已经将认证鉴权与API权限控制的流程和主要细节讲解完.本文比较长,对这个系列进行收尾,主要内容包括 ...

  8. 【CHRIS RICHARDSON 微服务系列】微服务架构中的进程间通信-3

    编者的话 |本文来自 Nginx 官方博客,是微服务系列文章的第三篇,在第一篇文章中介绍了微服务架构模式,与单体模式进行了比较,并且讨论了使用微服务架构的优缺点.第二篇描述了采用微服务架构的应用客户端 ...

  9. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析

    Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...

随机推荐

  1. Spring 源码学习之环境搭建

    一.下载Spring 源码 进入 https://github.com/spring-projects/spring-framework/tags 选择下载spring freamework的版本 h ...

  2. Java RMI实践

    Java远程方法调用,即Java RMI(Java Remote Method Invocation).一种用于实现远程过程调用的应用程序编程接口.客户机上运行的程序可以调用服务器上的对象. 缺点:只 ...

  3. Maltego更新到4.2.6

    Maltego更新到4.2.6   此次更新包含以下两处修改: (1)在服务管理中,允许用户修改OAuth回调协议的端口. (2)修复启动画面溢出错误.

  4. 微信jaapi签名

    public WeiXinJsSignature(string weixinUrl) { //string url = ConfigurationManager.AppSettings["U ...

  5. Python3基础 内置函数 id

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  6. mybatis xml <choose>标签使用

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  7. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  8. 宣化上人:大佛顶首楞严经四种清净明诲浅释(2-3) -------------------------------------------------------------------------------- (转自学佛网:http://www.xuefo.net/nr/article23/230612.html)

    大佛顶首楞严经四种清净明诲浅释(2-3) 唐天竺·沙门般剌密帝译 宣化上人主讲 一九八三年四月十七日晚讲于万佛圣城 欲摄其心入三摩地:这种邪师说法,在末法的时候像恒河沙这么多:可是我想在这时候,令一切 ...

  9. 改进初学者的PID-采样时间

    最近看到了Brett Beauregard发表的有关PID的系列文章,感觉对于理解PID算法很有帮助,于是将系列文章翻译过来!在自我提高的过程中,也希望对同道中人有所帮助.作者Brett Beaure ...

  10. line-height超出隐藏显示的行数和垂直居中

    line-height是css样式里设置行高的方法,在div中有overflow:hidden,可以隐藏超出div的内容,配合行高和div的高,可以设置该div里可以显示几行内容,div可以容纳几个行 ...