app aws_服务网格:Istio和AWS App Mesh

app aws

本周在AWS re:Invent上的重大公告之一是AWS App Mesh 。

在谈论它之前,让我们先看一下网格到底是什么……

什么是服务网格?

服务网格是微服务体系结构的基础结构层。 它处理服务之间的通信问题,使该通信更加可见(或“可观察”)且易于管理。 更具体地说,它可以处理诸如服务发现,路由和负载平衡,安全性(例如,加密,TLS,身份验证,授权)之类的事情,并提供错误处理(例如重试和断路)。

控制计划与数据平面

上面提到的功能(服务发现,路由,加密,身份验证/身份验证等)是将数据(网络数据包)执行进出微服务的操作。 结果,它们有时被称为“数据平面”。

我们如何控制对数据的操作称为“控制平面”。 控制平面是用于控制流量的策略和配置。

数据平面通常实现为与每个微服务一起运行的“边车”代理。 最受欢迎的是Envoy代理 (由Lyft的人们创建),而这确实是AWS App Mesh所使用的。 过去,主要控制平面是Istio ,但现在AWS App Mesh也已移入该空间。

数据平面和控制平面一起称为服务网格。

(我想您可能会争论AWS App Mesh是将Envoy用作其数据平面的控制平面,还是App Mesh只是具有相应数据和控制计划的Service Mesh。后者–认为App Mesh仅仅是一个Service Mesh –对我来说似乎更有意义)。

为什么我们需要服务网格?

尽管该术语是新术语,但数据平面的概念却并非如此。 路由,加密等是分布式计算必不可少的。 但是,控制平面的概念新概念,或者至少该概念以前从未真正地正式化或命名过。 马特·克莱因(Matt Klein)(Envoy的架构师) 认为 ,通常通常使用即席配置和脚本工​​具手动完成此操作。 但是确实存在需求。 严重缺乏更容易控制和观察流量的功能。 我当然已经看到微服务的间歇性问题,您很难解释,开发人员耸了耸肩,问“网络问题?”。

使用边车在服务网格中处理这些类型的问题的优点是,它使应用程序(和相关的开发团队)免于必须在每个应用程序中处理这些问题的麻烦。 过去,通常会在每个应用程序中使用通用代码(例如库)来解决此类问题,但缺点是需要特定于语言以及必须与应用程序发行版捆绑在一起。

AWS App网格

新的AWS App网格(当前可作为公共预览使用)旨在使其“易于监视和控制在AWS上运行的微服务”。 App Mesh可以与在EC2上运行的ECS , EKS和Kubernetes一起使用,并且可以与现有的AWS服务(例如CloudWatch和X-Ray)结合使用 。

除了提供流量可观察性之外,App Mesh还旨在帮助进行部署,允许您通过使用虚拟路由器来配置流量路由,并允许使用蓝色/绿色金丝雀部署来推出新的服务版本。

App Mesh没有额外的价格,仅是您与ECS / EKS / EC2等一起使用的计算资源的价格。

那Istio呢?

一段时间以来,Istio一直是服务网格的主要选择,而且AWS App Mesh和Istio之间肯定有很多相似之处。 两者都是服务网格。 两者都包装Envoy作为数据平面。 两者的目的都是为了解决相似的需求,以允许您监视和控制微服务之间的流量。

但是,Istio是开源的,与供应商无关,并且已经存在了很长时间,因此更加成熟。 例如,Istio 安全功能包括通过支持mTLS进行传输(服务到服务)身份验证,以及通过JWT并与Auth0 , Firebase Auth和Google Auth集成,进行原始(最终用户)身份验证 。 它还不仅支持使用AWS IAM的服务身份,还支持Kubernetes和GKE / GCE / GCP的服务身份。

AWS App Mesh确实提供了与IAM策略,角色和权限的集成,但是我无法在文档中找到有关身份验证支持的其他信息。 也许我只是想念它。 请注意,Istio通过Envoy提供了其Mutual TLS身份验证,因此大概(?)App Mesh将能够做到这一点。

因此,App Mesh似乎缺少Istio的某些功能。 但是,考虑到AWS是房间中的800磅大猩猩,不仅拥有大量的工程资源,而且在工程界也得到了广泛的普及,因此它似乎有可能成为一种主导工具。 它会取代Istio吗? 观看会很有趣……

参考资料和进一步阅读

  • re:Invent 2018中的“ AWS App Mesh简介”会话视频
  • 服务网格数据平面与控制平面 (Matt Klein)
  • AWS App Mesh (AWS)
  • 推出AWS App Mesh –适用于AWS (AWS) 上微服务的服务网格
  • AWS App Mesh (AWS) 入门
  • 特使代理
  • Istio

翻译自: https://www.javacodegeeks.com/2018/12/service-mesh-istio-aws-app-mesh.html

app aws

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php screw 密钥,php-screw php代码加密工具用法(整理)

1、进入http://sourceforge.net/projects/php-screw/下载最新版本php_screw-1.5.tar.gz 解压安装: #tar zxf php_screw-1.5.tar.gz #cd php_screw-1.5 #vi php_screw.h 将 #define PM9SCREW “\tPM9SCREW\t” #define PM9SCREW_LEN 10 修改为任意字串,如&#xff1a…

IntelliJ IDEA如何部署项目、部署方式以及部署相关的操作

文章目录工件列表工件类型添加工件部署项目exploded 工件的部署war 工件的部署手动部署项目war 包部署exploded 部署部署有关的操作deploy/redeploy(部署/重新部署)rerun/run(重启服务器/启动服务器)Update resources(…

php恒等符,php学习笔记(三)操作符与控制结构

php学习笔记(三)操作符与控制结构更新时间:2011年08月06日 20:09:31 作者:好久没更新了,这段时间挺忙的。下面继续php学习 之 操作符与控制结构;一.字符串插入为了给开发人员处理字符串值提供最大的灵活性&#xff0…

spring框架三层架构_Spring框架架构

spring框架三层架构这是Spring Framework Architecture的概述。 了解Spring Framework的各个组成部分如何组织以及如何相互联系。 如果您想了解什么是Spring框架及其功能,请阅读Spring框架简介 。 总览 Spring是一个模块化框架 。 它不是作为一个软件包或多个模块捆…

IntelliJ IDEA for Mac如何管理SDK/JDK,模块如何设置SDK/JDK?

文章目录管理 IDE 中的 SDK设置模块依赖的 SDK管理 IDE 中的 SDK 设置模块依赖的 SDK

php 数组是否属于迭代器,数组的迭代器属性Iterator介绍

[导读]数组默认有迭代器属性数组默认有迭代器属性var arr [111,222,333];var aa arr[Symbol.iterator]();aa.next(); // { value: 111, done: false }aa.next(); // { value: 222, done: false }aa.next(); // { value: 333, done: false }aa.next(); // { value: undefined,…

elk 聚合日志_使用ELK堆栈进行日志聚合

elk 聚合日志1.简介 随着微服务的使用,创建稳定的分布式应用程序和摆脱许多遗留问题变得很容易。 但是微服务的使用也带来了一些挑战, 分布式日志管理就是其中之一。 由于微服务是隔离的,因此它们不共享数据库和日志文件,因此实时…

Java对象如何实现比较规则

文章目录一、Comparable二、Comparator示例代码一、Comparable public interface Comparable 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。 实现此接口的对象列表(和数组…

python教材目录,python 目录

python在安装的时候,就自带了很多模块,我们把这些模块称之为标准库,其中,有一个是使用频率比较高的,就是 os 。这个库中方法和属性众多,有兴趣的看官可以参考官方文档:https://docs.python.org/…

quartus状态机生成_生成器作为(快速失败)状态机

quartus状态机生成这个想法是几周前在设计“生成器”类时想到的,该类必须将输入发送给封装的Writer 。 实际上,它是Builder模式。 但是,规则有些复杂,用户必须以某种方式调用add...()方法,才能正确生成输出。 不用说&…

除法算式的正确表述

12 4 3,这个关系表达式叫作除法算式,表述为 12 除以 4 等于 3;也可以表述为 4 除 12 等于 3。

elk 日志管理_具有ELK的APIGEE API网关日志管理(弹性搜索,Logstash和Kibana)

elk 日志管理在本文中,我们将看到如何使用 Elastic Search , Logstash 和 Kibana 管理APIGEE API网关生成的日志 。 下图突出显示了日志数据如何流经ELK堆栈以进行数据可视化和监视。 作为API网关的一部分,我们将使用MessageLogging策略在代…

php输出分组,ThinkPHP 项目分组中的模板输出

模板输出启用了项目分组后,模板输出路径同原来相比有一些差别。默认输出当使用 $this->display() 指令输出默认模板时,输出的模板路径加上了分组名:TPL/模板默认主题/分组名/模块名/操作名模板后缀// 例子:Tpl/default/Admin/U…

平方根/立方根/根式

文章目录平方根/二次方根/二次根立方根/三次方根/三次根平方根/二次方根/二次根 如果一个正数 x 的平方等于 a,即 x2x^2x2 a,那么这个正数 x 就叫 做 a 的算术平方根(算术二次方根),记作 a\sqrt{a}a​ ,读…

使用junit进行单元测试_使用JUnit5对DynamoDB应用程序进行单元测试

使用junit进行单元测试在上一篇文章中,我描述了新的Java 2 AWS开发工具包,它为调用不同AWS服务的Java客户端提供了非阻塞IO支持。 在本文中,我将介绍一种用于单元测试AWS DynamoDB调用的方法。 有几种方法可以启动DynamoDB的本地版本– 1. …

h5jumppage.php,h5使用webviewjsbridge跟原生交互,点击标签调用2次webview

问题描述使用vue循环一个标签列表,点击列表里面的标签,调用app给的跳转页面的方法,第一次跳转页面后,点击返回按钮回到本页面,再次点击列表里面的标签,调用了2次webview,只有第一次点击的时候正…

Servlet的学习笔记

文章目录基本介绍入门步骤执行原理Servlet 生命周期线程安全问题解决方式Servlet 注解配置Servlet 继承与实现体系基本介绍 servlet,server applet,服务器端小程序 servlet 是一个接口,定义了 Java 类被浏览器访问(tomcat 识别&…

spring框架介绍_Spring框架介绍

spring框架介绍这是Spring框架和Spring核心概念的简介。 在本教程中,我们将介绍Spring Framework的主要优点和功能。 在随后的教程中,我们将学习有关Spring和Spring Boot的更多信息。 总览 我们知道, Spring框架是Java开发人员中最受欢迎的应…

Java注解(Annotation)的学习

文章目录注解定义作用分类API 文档注解JDK 预定义的注解自定义注解注解的格式注解的本质注解的属性属性的返回值类型属性的特点属性的赋值元注解TargetRetentionDocumentedInherited解析注解总结注解定义 注解( Annotation),也叫元数据。一种代码级别的说明。它是 …

oracle数据库硬恢复,Oracle数据库的可恢复性设置

整理自《Oracle 11g OCP/OCA 认证指南》001为了保证数据库的最大可恢复性,必须多路复用控制文件;必须多路复用联机重做日志;必须以归档日志模式运行数据库,并多路复用归档日志文件;最后必须作常规备份。002 保护控制文…