东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

AWS App Mesh:用于 Envoy 的服务网格控制平面

  • 2019-01-07
  • 本文字数:2354 字

    阅读完需:约 8 分钟

AWS App Mesh:用于Envoy的服务网格控制平面

亚马逊发布了 AWS App Mesh,这是一种服务网络,允许开发人员标准化微服务的通信方式、实现微服务之间的通信规则,并将指标、日志和跟踪信息直接捕获到 AWS 服务和第三方工具中。App Mesh 实际上是由 AWS 托管的 Envoy 控制平面,Envoy 是一个开源的服务网格数据平面代理。

正文

亚马逊发布了AWS App Mesh,这是一种服务网络,允许开发人员标准化微服务的通信方式、实现微服务之间的通信规则,并将指标、日志和跟踪信息直接捕获到 AWS 服务和第三方工具中。App Mesh 实际上是由 AWS 托管的 Envoy 控制平面,Envoy 是一个开源的服务网格数据平面代理。App Mesh 目前可用于 Amazon Elastic Container Service(ECS)、Amazon Elastic Container Service for Kubernetes(EKS)和 EC2 上的 Kubernetes。


AWS App Mesh 提供了一组 API(通过 CLI 和 SDK 暴露出来),支持基于服务版本的应用程序间细粒度流量路由规范,例如,支持金丝雀发布或 A/B 部署。App Mesh 还可以对服务客户端进行访问控制和配额限制。利用 Envoy 提供的功能,可以将流量镜像到备用环境,以便进行进一步的故障排除,并且可以注入故障进行混沌实验。不过,部分功能计划在 GA 版本中发布,目前尚未在 App Mesh 中实现。


要在 ECS 上部署 App Mesh,必须将 Envoy 代理容器镜像添加到相关的任务定义中。对于 Kubernetes 来说,必须将 Enovy 代理镜像添加到 Kubernetes PodSpec 中。Envoy 边车容器使得 App Mesh 能够拦截和管理来自相关服务的所有通信,并将指标、日志和跟踪信息导到 Envoy 引导程序配置指定的端点。


AWS App Mesh 由以下组件组成:


  • 服务网格:“服务网格”实例是服务间网络流量的逻辑边界。

  • 虚拟节点:虚拟节点是指向特定“任务组”的逻辑指针,例如 ECS 服务或 Kubernetes 部署。

  • Envoy代理和路由器管理器:Envoy 代理及其路由器管理器容器镜像将微服务任务组配置为使用为虚拟路由器和虚拟节点配置的 App Mesh 服务网状流量规则。

  • 虚拟路由器:虚拟路由器处理服务网格中一个或多个服务的流量。

  • 路由:路由与虚拟路由器相关联,它将与服务名称前缀匹配的流量定向到一个或多个虚拟节点。



AWS App Mesh 组件(图像来自 App Mesh 文档)


App Mesh 目前主要用于服务到服务“东西向”流量控制和观察。虽然后 GA 版本路线图中列出了“将 App Mesh 用于摄入路由”这一功能,但 App Mesh 文档目前建议使用 AWS Elastic Load Balancing 处理所有“南北”网络流量和来自不在组织信任边界内的客户端的流量。在 App Mesh 生态系统之外,基于 Envoy 的提供摄入支持的其他实现也取得了一定的进展,其中包括Datawire AmbassadorSolo GlooIstio Gateway等开源实现。


AWS 表示,他们已经在开发一种服务网格,其中包括遵循“AWS 最佳实践”的控制平面和 API。目前,App Mesh 发布了为 Envoy 而构建的 1.8.0 版本,其中包含 SigV4 的扩展,可以使用 AWS 认证系统正确验证 Envoy(这项变更计划被合并到 Envoy 上游)。具体来说,App Mesh 是可插拔的,并将在未来支持定制的 Envoy 镜像和Istio Mixer,以及允许 AWS 增加对其他计算机服务的支持,并且成为可扩展、健壮、经济且高效的多租户控制平面。


社区对该发布公告的反应不一。包括 Shriram Rajagopalan(VMware 工程师和 Istio 贡献者)在内的一些人表示,示例中的一些内容似乎是在未经确认的情况下从 Istio 项目中直接拿走的。其他人(如 Christian Posta)指出,App Mesh“是 AWS 的,并不是开源的”。目前,App Mesh 示例存储库中记录了一个叫作“Opensource App Mesh Envoy Management Service(EMS)”的后 GA 版本功能,尽管它并不包含任何有关开源版本的信息。


一些 Twitter 用户(包括行业杰出人物 Kelsey Hightower 在内)质问为什么 AWS 没有为现有的 Istio 项目做出贡献,并且认为“有了可靠的功能和干净的 API,要开始为 Envoy 开发一些东西就会更容易,然后在拥有了一个最小可行产品后就可以发布了”。 AWS 开源技术专家 Arun Gupta 似乎支持这种分析,并表示“Istio 与 Kubernetes 紧密耦合,我们需要能够扩展工作负载,不仅仅是容器,而是跨 AWS 的任何工作负载”。云原生计算基金会首席技术官兼首席运营官 Chris Aniszczyk 提出了一个有趣的观点:“还有一个微妙的观点,即 Envoy 是中立的,而 Istio 目前还不是”。


Lyft 软件工程师、Envoy Proxy 作者 Matt Klein 在 Twitter 分享了一系列有关 App Mesh 发布的有趣观点。关于 Envoy 项目的主要目标:


Envoy 社区对实现我们的目标一直很自信,即创建功能丰富、可扩展且可配置(版本化的类型 API)的数据平面,而不是为了创造一种固执己见的最终用户体验。


他认为,Envoy 提供的“云原生数据平面”以及 Kubernetes、Nomad 或 Mesos 等调度程序构成了“新的云原生操作系统”。他说,这是一个可以在其上“建立、创新和货币化”的平台。


基础云原生平台/操作系统将完全开放,并由主要云和[P/C/F] aaS 提供商提供。实际资金和自主创新将成为最重要的服务:安全/监控/审计/工作流/UI/等。

并且所有主要云供应商、PaaS 供应商等都将 Envoy 代理作为默认的云原生数据平面,这意味着我们现在可以开始构建,而不必担心碎片化问题。它太强大了。


Klein 还确认了HashiCorpDatadog正在开发 App Mesh 集成,进一步说明了供应商正在提供更高级别的价值。


AWS App Mesh 为北弗吉尼亚州、俄亥俄州、俄勒冈州和爱尔兰 AWS 区域提供各了公共预览版。使用 AWS App Mesh 不收取额外费用,客户只需要为与服务容器一起运行的 App Mesh 代理所使用的基础 AWS 资源支付费用。


GA 版本计划于 2019 年发布。完整的GA版本路线图后GA版本路线图可以在 AWS APP Mesh 示例 GitHub 存储库中找到。有关 App Mesh 的其他信息可以在“入门”页面上找到。


查看英文原文https://www.infoq.com/news/2019/01/aws-app-mesh


2019-01-07 10:326642
用户头像

发布了 731 篇内容, 共 433.4 次阅读, 收获喜欢 1997 次。

关注

评论

发布
暂无评论
发现更多内容

华为云数据库内核专家为您揭秘:GaussDB(for MySQL)并行查询有多快?

华为云数据库小助手

GaussDB 华为云数据库 GaussDB(for MySQL)

醍醐灌顶Nginx 原理和架构

hanaper

Github星标百万!终于有人将Spring技术精髓收录成册

Java 编程 架构 面试 架构师

死锁终结者:顺序锁和轮询锁!

王磊

Java 死锁 8月日更

轻松让你的nginx服务器支持HTTP2协议

程序那些事

Java nginx HTTP 程序那些事 http2

区块链产业正处于繁荣前夜(下)

CECBC

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java 编程 程序员 架构 面试

微校园小程序(云开发)设计方案

CC同学

☕【Java技术指南】「TestNG专题」单元测试框架之TestNG使用教程指南(上)

洛神灬殇

Java 测试 单元测试 8月日更 testNG

springboot使用redis(从配置到实战)

Python研究者

8月日更

在PyQt中构建 Python 菜单栏、菜单和工具栏

华为云开发者联盟

Python

少侠留步!赠你一份阿里内部广为流传的23种设计模式核心笔记

Java~~~

Java 架构 面试 分布式 架构师

今天聊一聊Golang的互斥锁吧

Regan Yue

互斥锁 互斥锁Mutex 8月日更

架构实战营 模块六 作业

一雄

作业 架构实战营 模块六

阿里的新“宠儿”!终于有人总结出了Spring源码从初级到高级手册

Java架构追梦

Java spring 阿里巴巴 架构 面试

靶向蛋白质组技术研发进入快车道,北鲲云超算为技术顺利推进提供有力支撑

北鲲云

CC校园运动小程序云开发解决方案

CC同学

一种单机支持 JavaWeb 容器万级并发的设想

Java 编程 程序员 面试

JAVA应用生产问题排查步骤

Java 编程 架构 程序人生 架构师

阿里的新“宠儿”!终于有人总结出了Spring源码从初级到高级手册

Java~~~

Java spring 架构 面试 Spring Cloud

架构实战训练营模块六作业

NewBranSTONE

#架构实战营

成为高效工程师的四步法则

俞凡

生产力 认知

在阿里离职后,从内部带走的这份485页面试合集,在GitHub上火了

Java~~~

Java 架构 面试 架构师

聊聊 PC 端自动化最佳方案 - Pywinauto

星安果

Python 自动化 Pywinauto PC

区块链产业正处于繁荣前夜(上)

CECBC

Java全家桶的这些知识,不用学了

Java 架构 后端 计算机

不可错过的mysql,redis,nginx视频讲解

hanaper

量化机器人软件开发|自动交易机器人

量化系统19942438797

机器人 量化交易

SSH免登陆

Mike

谈 C++17 里的 Factory 模式

hedzr

c++ factory pattern c++17 factory method

模块六作业:拆分电商系统为微服务

Felix

AWS App Mesh:用于Envoy的服务网格控制平面_服务革新_Daniel Bryant_InfoQ精选文章