技术进步从未停止,企业架构的目标是为了建立多种技术之间的和谐。将它们融合在一起,取各家之长,并利用这些技术让它们在特定业务领域变得更有效率。另外,企业架构应该简化。让不同的堆栈为你工作,而不是把你所有的时间花在管理不同架构的基础设施上。

AWS ECS Anywhere(ECS-A)是最好的融合:将云托管和管理的技术栈扩展到企业内部的数据中心,并在数据中心托管的硬件上的Docker容器内运行任务。

在这个非常详细的视频中,Massimo Re Ferre演示了如何使用ECS Anywhere上线的过程。你可以参考这个视频,在你的数据中心上部署ECS-A。(Spoiler:通过ECS-A,你可以使用在”我的内部数据中心内部”和AWS云之外的任何计算实例。在他的视频中,Massimo使用了树莓派设备)。

TSB提供了这块版图中的缺失部分:

  • 为你的ECS-A任务引导流量(什么流量,在什么条件下,等等)

  • 管理ECS-A工作负载之间以及ECS-A工作负载与终端用户或其他非ECS-A工作负载之间的认证、授权和传输加密

  • 将任务与在ECS-A之外运行的工作负载集成(例如Kubernetes或VM)

  • 一个提供集中管理、全局策略执行、多租户、工作流和流程集成、全局服务注册表和配置保障的管理平面

  • 流量的可观察性:包括指标、分布式追踪和日志,通过一个强大的图形界面来展示

什么是Tetrate Service Bridge(TSB)?

由Istio创始人创建的Tetrate Service Bridge是唯一的边缘到工作负载应用连接平台,为企业提供一致、统一的方式,在整个网状管理的环境中连接和保护服务。

TSB位于应用边缘、集群入口以及Kubernetes和传统计算集群的工作负载之间。边缘和入口网关在集群和云之间路由和负载平衡应用流量,而网格则控制服务之间的连接。一个单一的管理平面为你的整个应用网络配置连接性、安全性和可观察性。

让我们看一下在EKS以及ECS和ECS-Anywhere中运行的工作负载的部署实例,然后再介绍一些技术细节。

总结一下这里的情况:

  • ECS任务(本质上是Docker容器)被部署在云中。

  • 一个AWS客户将任务部署到ECS-A:这是运行在内部服务器上的Docker容器,一个AWS代理(作为Docker容器运行)部署任务(也作为Docker容器运行)。

  • Tetrate Service Bridge(TSB)在ECS-A管理的每个运行中的内部服务上部署一个Envoy代理(作为一个Docker容器)。

  • TSB配置Envoy代理,以提供ECS-A任务之间以及ECS-A任务与云中运行的工作负载之间的路由和安全连接。在这种情况下,任务在ECS云中运行,工作负载在EKS中运行)。

  • TSB为ECS-A任务提供服务发现,它们现在是网格的一部分。所有的网格功能,如流量引导、弹性、安全和监控,都可以应用于任务,就像这些规则应用于ECS-A之外的工作负载一样。

  • 开箱即用的额外方案:

    • 任务1(在VM1上运行)可以调用同一方格上的任务2。一切都将在网格内发生——由TSB监控、保护和控制。

    • 任务1(在VM1上运行)可以调用VM2上运行的任务2一切都将在网格内发生——由TSB监控、保障和控制。

    • 在属于网格的虚拟机上运行的应用程序(通过Envoy代理)可以调用ECS-A任务,一切都将在网格内发生——由TSB监控、保护和控制。

    • 网格外的用户可以调用ECS-A任务,只要用户的调用进入网格,TSB就会提供控制和监测流量的所有好处。

    • Kubernetes服务(来自EKS或独立的)可以调用ECS-A任务,同样,一切都将发生在网格内——由TSB监控、保障和控制。

关于技术实现的一些细节,如果你想自己尝试一下:

  • 按照ECS-A的文档中的步骤,将内部服务接入ECS-A,然后部署一个任务。

  • 现在你应该已经在你的服务器上运行了Docker,有了amazon-ecs-agent和你的任务容器。

  • 对于TSB来说,将ECS-A实例添加到TSB需要以下任务:

    • 创建一个描述服务器的WorkloadEntry,ServiceEntry指示其他Kubernetes工作负载,ECS-A任务是可以到达的。

    • tctl工具(TSB CLI)将读取WorkloadEntry,创建一个带有配置文件和所需证书的捆绑包,连接到ESC-A实例,添加带有所需配置的Envoy-proxy容器,并将实例连接到网格。

现在,运行docker ps将返回类似这样的信息。

当流量被发送到这个任务时,它将遵循TSB中描述的所有规则。下面是该任务在TSB仪表盘中的显示方式的一个例子。

  • 该调用是由EKS中的一个工作负载发起的

  • 测量EKS和ECS-A实例之间的链接的指标

  • 在屏幕的右侧显示了与该任务相关的指标

  • 此外,锁图标表明EKS和ECS之间的通信是加密的。

总之,ECS-A和TSB提供了一个非常完整的解决方案,可以部署、管理和监控在AWS客户数据中心运行的ECS任务。

作者