Service Mesh 如何实现微服务网络?

Service Mesh 如何实现微服务网络?
2021年02月22日 09:53 至顶网

随着微服务应用程序的日益流行,IT团队需要在各微服务之间建立起可靠的网络体系,借此保证有序通信。Service Mesh的黄金时代也由此拉开帷幕。

Service Mesh已经成为网络技术领域的新宠儿,彻底改变了应用程序网络服务的基本面貌。Service Mesh在设计上强调为容器中运行的各微服务提供可靠的相互通信、安全保障与流量分析能力。时至今日,微服务已经成为驱动DevOps团队实现应用敏捷开发的主流平台。

微服务与容器需要依靠物理网络实现互相通信,进而连接至其他应用程序。为此,IT与安全团队自然需要建立起相应架构,用以支持生产级微服务部署在规模化、性能与管理方面提出的独特需求。Service Mesh虽然能够提供强大的网络功能,但在规模化部署与管理方面却也带来了新的难题。

如今,Service Mesh技术仍在不断发展,市面上的供应商选项与标准协议也有很多。需要注意的是,Service Mesh一般更适合大型微服务应用程序部署场景,对于体量较小或者处于前生产阶段的应用程序反而过于复杂。IT部门需要认真评估微服务网络选项,包括各类Service Mesh变体,谨慎地选择更适合整体应用程序网络架构的解决方案。

微服务架构对数据中心网络需求的影响

相较于基于虚拟机管理程序的主流应用程序,基于微服务架构的应用程序往往在架构层面存在很大不同。例如,微服务架构中包含大量运行在不同服务器或计算核心内个别容器中的小程序。单一应用程序内各微服务之间的高频率事务,往往会对通信延迟与传输带宽提出严苛要求。

Service Mesh虽然能够提供强大的网络功能,但在规模化部署与管理方面却也带来了新的难题。

基于容器的微服务往往会在服务器之间灵活迁移物理位置,同时提供关于位置变化及状态变化的报告数据。这种高度动态的特性,导致IT专业人员很难及时找到目标微服务并解决由此带来的应用性能问题。

应用程序开发者当然不想、也不需要深入理解微服务连接中使用的复杂底层网络协议。相反,他们只希望直接描述应用程序必须满足的网络与安全要求。为此,企业需要四种能力以对接各种基于微服务(或容器化)的应用程序:第一,能够灵活对接小型、中型及大型应用程序;第二,易于联网,并将网络复杂性因素隔离在外;第三,能够在内部数据中心或公有云中连接并运行应用程序;第四,细粒度安全控制能力。

随着微服务部署逐渐成为市场主流,容器网络服务需要被全面集成至整个网络与安全管理系统当中。

使用Service Mesh实现微服务网络

Service Mesh是一种网络软件,能够在各项微服务之间提供可靠且安全的通信机制。其网络功能包括抽象、服务质量与安全保障(例如身份验证与加密)等等。各项网络请求将通过与服务本体一同运行的边车代理,在各微服务之间往来路由。这些代理共同形成一套网格网络,用以对接各项微服务。中央控制器则提供访问控制,并负责实现网络与性能管理。

Service Mesh负责在微服务应用程序与具体的网络路由及安全要求复杂性之间提供逻辑隔离。Service Mesh提供的抽象支持能够独立于物理网络之外,在各微服务上快速灵活地进行部署。

Service Mesh解决方案

目前,我们可以为容器上部署的分布式微服务架构选择多种Service Mesh技术方案。Istio是由谷歌牵头开发的领先开源Service Mesh选项,Red Hat也为Istio的开源版本提供支持。此外,各大云服务巨头,包括AWS、微软与谷歌等,也都在自家IaaS产品中提供Service Mesh选项,不少网络供应商同样开发出自己的Service Mesh解决方案。

Citrix——Citrix提供多种Service Mesh架构选项,帮助用户在需求与便捷性之间取得平衡,范围涵盖简单的双层入口以及功能丰富的Service Mesh。Citrix还支持与Istio相集成。如果企业希望享受Service Mesh带来的优势,但又不想接触过多复杂的要素,Citrix的Service Mesh Lite可能是个不错的选择。

F5——F5提供两种Service Mesh选项。Aspen Mesh采用基于Istio的架构,能够满足涵盖成千上万项微服务的大规模部署需求。如果企业的微服务规模在数百项量级,则可以选择更简单的方案选项Nginx,并借此将Nginx Ingress与API网关功能集成至Service Mesh当中。

VMware——VMware Tanzu Service Mesh (TSM)能够支持应用程序连续性、弹性与安全性,为专注于实施应用程序现代化、多云环境以及数据保护的企业提供理想的价值回报。TSM还能与VMware NSX Advanced Load Balancer相集成,共同提供多集群入口服务,确保开发团队能够直接将Service Mesh引入其应用程序。

Service Mesh带来的挑战

Service Mesh虽然功能强大,但其技术本身也相当复杂。必须承认,这项技术难以学习、更不易实现,缺乏网络知识背景的员工甚至很难理解其底层原理。在大多数企业中,Service Mesh都处于早期部署阶段。另外,由于Service Mesh技术仍在不断发展,因此多数IT部门都很难确定该推广哪些最佳实践。

Service Mesh的出现,也给本就十分复杂的数据中心网络架构添加了新的选项。具体来讲,这套架构中的以太网、交换机、路由器、防火墙、应用程序交付控制器等物理与逻辑元素都因Service Mesh的加入而更加错综复杂。IT团队必须弄清楚该如何将Service Mesh的操作及管理机制整合至原有应用程序、安全性与网络自动化平台当中。

小结

基于容器的微服务,让DevOps团队获得了快速开发新型分布式应用程序的能力。但要实现这些基于微服务的应用程序,我们也需要掌握新的网络、安全与分析能力。随着微服务架构逐步由试验性实施过渡至生产环境,为其建立大规模网络体系将构成新的挑战。

Service Mesh在为微服务应用提供网络与安全支持方面极具优势。它对网络基础设施进行抽象化处理,确保微服务应用程序能够始终维持良好的网络与安全策略,无需在每次变更时都与数据中心网络团队进行交互。

目前,大多数企业环境中的微服务、容器与Service Mesh技术都处于早期部署阶段。随着技术本身的不断成熟,IT团队必须评估多种Service Mesh选项——包括云服务、开源方案以及各供应商推出的专有产品。

另外,Service Mesh主要面向大型关键任务应用程序,对小型应用来说可能太过复杂。如果企业的应用程序特别适合Service Mesh部署,请务必保证IT部门为此制定明确计划,将Service Mesh技术妥善整体至原有管理与自动化平台之内。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部