写点什么

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:326712
用户头像

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

关注

评论

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

为了加快速度,Redis都做了哪些“变态”设计

Java 程序员 后端

全面解读!构建边云一体的智能应用技术实践

百度开发者中心

最佳实践 方法论 边缘计算 前沿科技

为什么你的insert就死锁了

Java 程序员 后端

主流的消息队列MQ比较,详解MQ的4类应用场景

Java 程序员 后端

小学妹与我畅聊黑客渗透技术

喀拉峻

黑客 网络安全 信息安全 渗透测试

docker基础

小麦

中高级开发面试必问的Redis面试题,看这篇就够了!

Java 程序员 后端

Serverless 下的微服务实践

Serverless Devs

阿里云 Serverless 架构 微服务

京东T7团队技术4面:线程池+索引+Spring +分布式锁

Java 程序员 后端

两道面试题,带你解析Java类加载机制

Java 程序员 后端

事大发了!小助理告诉我:小伙伴21天斩获字节offer的关键竟是这份面试题!

Java 程序员 后端

云原生时代下,容器安全的“四个挑战”和“两个关键

Java 程序员 后端

两年JAVA程序员的面试总结

Java 程序员 后端

为了加快速度,Redis都做了哪些“变态”设计(1)

Java 程序员 后端

云原生新边界——阿里云边缘计算云原生落地实践

Java 程序员 后端

五分钟学会做一个在线抽奖系统,手把手教你抽奖还学不会嘛?

Java 程序员 后端

五分钟带你读懂!Spring Cloud构建微服务分布式云平台(1)

Java 程序员 后端

这一次,中国CRM站到风口上了吗?

ToB行业头条

CRM

五分钟带你了解Seata分布式事务

Java 程序员 后端

个性化推荐系统设计(3

Java 程序员 后端

为什么你不应该恨Java!

Java 程序员 后端

为什么建议大家使用 Linux 开发?爽(外加七个感叹号)

Java 程序员 后端

五、redis配置信息以及常用命令

Java 程序员 后端

五位阿里大牛联手撰写的《深入浅出Java多线程》,站在巨人的肩膀上学习!

Java 程序员 后端

Serverless 工程实践 | 快速搭建 Kubeless 平台

Serverless Devs

k8s 架构设计 框架搭建 框架学习

五分钟带你读懂!Spring Cloud构建微服务分布式云平台

Java 程序员 后端

Serverless 架构模式及演进

Serverless Devs

Serverless 架构设计

二维码扫码登录是什么原理?

Java 程序员 后端

三年沉淀,Apache ShardingSphere 5.0.0 开启数据应用新篇章

SphereEx

Java 数据库 开源 Apache ShardingSphere DateBase

CSS页面设计稿构思与实现(三)之UI组件

Augus

CSS 11月日更

京东T7架构师手写的10万字Spring Boot详细学习笔记+源码免费下载

Java 程序员 后端

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