谷歌Istio与AWS App Mesh有什么不同?

281 阅读6分钟

目录

阅读时间: 4 分钟

读者朋友们大家好,在了解AWS App Mesh和Google Istio的区别之前,首先我们应该知道什么是服务网。几年来,服务的概念已经兴起,我们有很多的选择。我们有很多的选择,即

  • Buoyant的Linkerd
  • Lyft的Envoy
  • Istio最初是由Lyft、IBM、谷歌推出的
  • Buoyant的Conduit

AWS和谷歌各自提供自己的服务网格迭代。AWS提供App Mesh,Google使用自己的命名,即Istio。

典型的服务网格的特点

  • 对请求的路由进行控制(用于CI/CD发布)
  • 级联故障预防(如断路、重试)。
  • 负载平衡算法
  • 安全功能(如TLS、加密、认证和授权)
  • 指标,在服务与服务层提供仪表。

在微服务架构中,服务网是决定你的应用程序在运行时如何表现的关键层。作为共享运行时的一部分,本地盛行的应用功能现在将作为远程过程调用发生。这种调用将在一个不可靠的网络上发送。关于这些实现的功能的信息在不同的供应商之间是不同的。

现在我们将看到什么是控制平面和数据平面。所以,控制平面是政策和配置的集合,它控制着流量。同时,数据平面指的是数据进出微服务所执行的实际操作。Envoy代理与你在集群中启动的每个服务一起部署。它也与在虚拟机上运行的服务一起运行。

AWS应用网

AWS App Mesh是一个服务网,提供应用级网络。这使您的服务能够轻松地在多种类型的计算基础设施上相互通信。App Mesh为您的应用程序提供端到端的可视性和高可用性。

How Google Istio is Different from AWS App Mesh?
How Google Istio is Different from AWS App Mesh?

AWS App Mesh通过提供一致的可见性和网络流量控制,使服务的运行变得容易。这有助于您提供安全的服务。App Mesh消除了更新应用程序代码的需要。这样做是为了查看它如何收集监控数据或在服务之间路由流量。

AWS App Mesh的特点

流量路由

App Mesh可以让你配置服务,使其直接连接到对方,而不需要在应用程序内编写代码。它还会让你使用负载平衡器进行连接。当每个服务启动时,其代理连接到App Mesh。它接收关于网状结构中其他服务的位置的配置数据。你可以使用App Mesh中的控件来动态更新服务间的流量路由。此外,不需要对你的应用程序代码进行修改。

客户端流量策略

代理人会自动对来自网状结构中所有客户端的流量进行负载平衡。此外,根据健康检查和服务注册,添加和删除负载平衡端点。这些功能使你更容易部署新版本的服务。它们还有助于调整应用程序,使其对故障具有弹性。

服务对服务的认证

Mutual TLS(mTLS)实现了传输层的认证。它为运行在服务网格内外的应用组件提供服务到服务的身份验证。

容器编排的本地用户体验

App Mesh与EC2上运行的ECS、EKS和K8管理的服务一起工作。在ECS、EKS、Fargate或Kubernetes上运行的工作负载包括提供的App Mesh代理,作为每个微服务的任务或pod定义的一部分。同时,配置服务的应用容器,使其与代理直接通信。当服务启动时,代理会自动签入,并由App Mesh对其进行配置。

完全管理- 澄清一下,AWS App Mesh是一个受管理的高可用服务。App Mesh允许你管理服务通信,而不需要安装或管理通信管理的应用级基础设施。

谷歌Istio

另一方面,Istio是一个开源的服务网,可以透明地分层到现有的分布式应用上。Istio的强大功能为安全、连接和监控服务提供了统一和更有效的方式。Istio是实现负载平衡、服务间认证和监控的途径--只需修改少量或不修改服务代码。Istio是为可扩展性而设计的,可以处理各种不同的部署需求。

How Google Istio is Different from AWS App Mesh?How Google Istio is Different from AWS App Mesh?

Istio的控制平面运行在Kubernetes上,你可以将部署在该集群中的应用添加到你的网状结构中。同时,将网状结构扩展到其他集群,甚至连接运行在Kubernetes之外的虚拟机或其他端点。

谷歌Istio的特点

流量管理- Istio的流量路由规则让你轻松控制服务之间的流量和API调用。Istio简化了服务级属性的配置,如断路器、超时和重试。它们使你可以轻松地设置重要的任务,如A/B测试、金丝雀部署和带有流量分流的分阶段推出。

可观察性- Istio为服务网内的所有通信生成详细的遥测数据。这种遥测技术提供了服务行为的可观察性,使运营商有能力对其应用进行故障排除、维护和优化。Istio的遥测技术包括详细的指标、分布式跟踪和完整的访问日志。

安全能力- Istio包括一个全面的安全解决方案,使运营商有能力解决所有这些问题。它提供了一个强大的身份,强大的政策,和透明的TLS加密。它还提供认证、授权和审计(AAA)工具来保护你的服务和数据。此外,Istio的安全模型是基于默认的安全,旨在提供深入的防御。这种防御使你即使在不信任的网络中也能部署具有安全意识的应用程序。

结论

最后,App Mesh和Istio都能以更直接的方式来协调不同的端点和微服务。AWS不仅有巨大的工程资源可供支配。而且在更大的工程社区中也有广泛的知名度。因此,它将取代Istio,尽管目前缺乏它的一些功能。

关于AWS App Mesh的更多信息,请点击这里。而关于谷歌Istio,请点击这里

分享Knol。

相关信息