写点什么

云应用的应用级联网

2019 年 10 月 06 日

云应用的应用级联网

AWS App Mesh 帮助您大规模运行和监控 HTTP 和 TCP 服务。您可以一致的方式进行路由和监控流量,深入了解问题,并能够在故障或代码更改后重新路由流量。App Mesh 使用开源 Envoy 代理,为您提供源自 AWS 合作伙伴和开源社区的各种工具的使用权限。


服务可以在 AWS Fargate、Amazon EC2、Amazon ECS, Amazon Elastic Container Service for Kubernetes 或 Kubernetes 上运行。进出每个服务的所有流量均通过 Envoy 代理,以便进行路由、塑造、测量和记录。这种额外的间接级别使您可以使用任何所需语言构建服务,而无需使用通用的通信库集。


App Mesh 概念

在深入研究之前,让我们回顾几个重要的 App Mesh 概念和组件:


Service Mesh – 位于其中的服务之间的网络流量的逻辑边界。网格可以包含虚拟服务、虚拟节点、虚拟路由器和路由。


Virtual Service – 直接(通过虚拟节点)或间接(通过虚拟路由器)提供的服务的抽象(逻辑名称)。网格中的服务使用逻辑名称来引用和使用其他服务。


虚拟节点 – 指向任务组(ECS 服务或 Kubernetes 部署)或在一个或多个 EC2 实例上运行的服务的指针。每个虚拟节点都可以通过侦听器接受入站流量,并可以通过后端连接到其他虚拟节点。此外,每个节点都有一个服务发现配置(目前是一个 DNS 名称),允许其他节点发现任务、Pod 或实例的 IP 地址。


虚拟路由器 – 网格中一个或多个虚拟服务的处理程序。每个虚拟路由器都会侦听特定端口上的 HTTP 流量。


路由 – 路由使用基于前缀的 URL 匹配来将流量路由到虚拟节点,并具有可选的每节点权重。权重可用于测试生产中的新服务版本,同时逐渐增加它们处理的流量。


把以上内容结合在一起,每个服务网格都包含一组可通过路由指定的 URL 路径访问的服务。在网格中,服务按名称相互引用。


我可以通过 App Mesh 控制台、App Mesh CLI 或 App Mesh API 访问 App Mesh。我将向您展示如何使用控制台并简要介绍 CLI。


使用 App Mesh 控制台

可以使用控制台创建服务网格及其中的组件。打开 App Mesh 控制台并单击 Get started(开始):



输入网格名称和第一个虚拟服务(我可以稍后添加),然后单击 Next(下一步):



定义第一个虚拟节点:



可以单击 Additional configuration(其他配置)来指定服务后端(此节点可以调用的其他服务)和日志记录:



我通过协议(HTTP 或 TCP)和端口定义节点的侦听器,设置可选的运行状况检查,然后单击 Next(下一步):



接下来,定义第一个虚拟路由器及其路由:



可以在百分比基础上跨多个虚拟节点(目标)分配流量,并且可以对传入流量使用基于前缀的路由:



查看我的选择并单击 Create mesh service(创建网格服务):



组件在几秒钟内创建,马上及准备就绪了:



如 App Mesh 入门指南中所述,最后一步是更新我的任务定义(Amazon ECS 或 AWS Fargate)或 Pod 规范(Amazon EKS 或 Kubernetes),以引用 Envoy 容器映像和代理容器映像。如果我的服务在 EC2 实例上运行,我将需要在那里部署 Envoy。


使用 AWS App Mesh 命令行


App Mesh 允许您以简单的 JSON 格式指定每种类型的组件,并为您提供创建每个组件的命令行工具(创建网格、创建虚拟服务、创建虚拟节点和 创建虚拟路由器)。例如,我可以在文件中定义虚拟路由器:


{  "meshName": "mymesh",  "spec": {        "listeners": [            {                "portMapping": {                    "port": 80,                    "protocol": "http"                }            }        ]    },  "virtualRouterName": "serviceA"}
复制代码


并使用一个命令创建它:


$ aws appmesh create-virtual-router --cli-input-json file://serviceA-router.json
复制代码


现已推出

AWS App Mesh 现已面向以下区域推出,您可以立即开始使用:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、美国西部(加利福尼亚北部)、加拿大(中部)、欧洲(爱尔兰)、欧洲(法兰克福)、欧洲(伦敦)、亚太地区(孟买)、亚太地区(东京)、亚太地区(悉尼)、亚太地区(新加坡)以及亚太地区(首尔)。


作者介绍:


Jeff Barr


AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/aws-app-mesh-application-level-networking-for-cloud-applications/


2019 年 10 月 06 日 22:51189
用户头像

发布了 1227 篇内容, 共 31.7 次阅读, 收获喜欢 33 次。

关注

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

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

2020年10月北京BGP机房网络质量评测:流水的其他,铁打的世纪互联?

博睿数据

机房 评测

.net5发布,.NET会就此“支棱起来”吗?

Philips

.net 敏捷开发 .net core

从微服务应用于技术栈,了解华为云微服务应用

华为云开发者社区

微服务 服务 云技术

区块链医疗、电子票据应用落地开发解决方案

t13823115967

电子票据 区块链医疗

阿里内部11月最新出台Spring Cloud架构设计+程序开发+运维部署

Java架构追梦

Java 阿里巴巴 架构 微服务 SpringCloud

京东千亿订单背后的纵深安全防御体系

京东科技开发者

安全 网络 云服务 云安全

区块链技术应用开发、区块链版权应用搭建解决方案

t13823115967

区块链技术应用开发 区块链版权搭建解决方案

接口测试和功能测试的区别

测试人生路

软件测试

MySQL-技术专题-LEFT JOIN避坑指南

李浩宇/Alex

SpringBoot-技术专题-如何提高吞吐量

李浩宇/Alex

物化视图如何快速完成数据聚合操作?

VoltDB

数据库 数据分析 sql

距离 2020 年结束不到2个月,字节跳动员工却在闲鱼卖内推名额登上热搜!

Java架构师迁哥

京东集团技术委员会主席周伯文:推进产业数智化发展需要技术和生态两把“桨”

京东科技开发者

区块链 大数据 AI 物联网,

最详尽最通俗易懂的c/c++堆栈机制解读

北游学Java

堆栈 C/C++ 堆栈溢出

大厂经验:一套Web自动曝光埋点技术方案

阿亮

埋点 曝光埋点 点击埋点 自动化埋点

26张图带你彻底搞懂volatile关键字的底层实现

autoencoder

volatile 后端 多线程 并发 Java 分布式

数字化时代App们将何去何从?

fino星君

2020年9月北京BGP机房网络质量评测:天地祥云木樨园力压群芳终进前三

博睿数据

机房 评测

五年时间完成业务数字化转型,华为如今做得怎么样了?

华为云开发者社区

效率 提升 数字化

架构师训练营 1 期 - 第十周 - 模块分解

三板斧

极客大学架构师训练营

MyBatis-技术专题-拦截器原理探究

李浩宇/Alex

前端高效开发必备的 js 库梳理

徐小夕

Java GitHub 前端 js

跨语言跨平台聚合OpenAPI文档从来没有这么简单过

Trust Me

OpenAPI Knife4j Knife4jAggregation 微服务聚合OpenAPI

中小型企业创业的福音

anyRTC开发者

创业 音视频 WebRTC RTC

第十周 模块分解 总结

三板斧

极客大学架构师训练营

重点人员管控系统开发方案,智慧警务平台搭建

WX13823153201

Mybatis日志功能是如何设计的?

Java架构师迁哥

京东智能客服品牌焕新:“言犀”亮相2020京东JDD大会

京东科技开发者

大数据 AI 知识图谱

从数据仓库双集群系统模式探讨,看GaussDB(DWS)的容灾设计

华为云开发者社区

数据库 数据仓库 数据

uml图中各种线的关系

feiyun123

极客大学架构师训练营 UML

以 Kubernetes 为代表的容器技术,已成为云计算的新界面

阿里巴巴云原生

云计算 Kubernetes 容器 云原生

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

云应用的应用级联网-InfoQ