当前位置: 首页 > 科技观察

ServiceMesh:微服务的下半场

时间:2023-03-13 07:08:22 科技观察

【.com快译】如今,云原生应用往往被设计成一组运行在容器中的分布式微服务(参见——https://www.compunneldigital.com/infographic/how-to-modernize-your-legacy-systems-here-are-the-best-practices/),因此人们倾向于将它们称为容器化应用程序。这些容器应用程序主要基于Kubernetes——容器化编排的事实标准。但随着微服务的指数级增长,Kubernetes集群的多个服务之间的路由、加密、认证、授权、负载均衡等都难以实现和标准化。为此,我们需要使用“服务网格”。正如容器从应用程序中抽象操作系统一样,服务网格抽象了进程间通信的处理方式。什么是服务网格?服务网格是一个专用的基础设施层,可用于处理服务到服务的通信。通过构建云原生的现代应用程序,服务网格可以使用复杂的服务拓扑来可靠地传递各种请求。服务网格的实现实际上是与应用程序代码一起部署的一系列轻量级网络代理。换句话说,它由附加到应用程序中所有pod的边车代理组成。服务网格的概念随着与其连接的云原生应用程序的迭代而不断发展。值得注意的是,服务之间的通信不仅非常复杂,还涉及到运行时(runtime)行为的基本方面,因此服务网格可以对它们进行管理,进而有效保证端到端的性能和可靠性。除了为Kubernetes提供服务外,ServiceMesh还包括安全性、可见性和路由等功能。许多人普遍认为,如果组织需要实现集中控制,那么服务网格是确保内部平台能够统一执行治理策略的唯一途径。接下来,我们来看看企业如何通过服务网格配合Kubernetes有效控制服务的安全性、可见性、路由和负载均衡。增加透明度在杂乱和密集的云原生环境中,遵循复杂的路由规则和流程管理并不容易。各种数据消息沿着不同拓扑结构和基础设施不同层之间的预定轨迹从一个pod传递到另一个pod。而服务网格恰恰可以为现代化应用程序的服务交付方式带来更多好处(参见--https://www.compunneldigital.com/blog/modernizing-legacy-systems-with-cloud-native-serverless/)。透明度好,方便用户有效追踪消息流向。安全性增强安全性是服务网格的主要关注点之一。它以集中控制的方式确保整个组织的加密和细粒度访问控制规则。与传统的单点控制相比,服务网格可以全面控制各种网络流量,从而提供更好的安全态势。此外,随着微服务数量的增加,网络流量也会增加。这在无形中也方便了攻击者轻松攻击各种通信流。因此,为了保证网络中流量交互的安全,ServiceMesh通过提供双向TLS(TransportLayerSecurity)提供了服务认证、安全策略执行、服务间流量加密的全栈解决方案。.加密由于微服务之间的通信需求越来越大,我们需要有可靠的加密服务为其保驾护航。服务网格可以方便地管理密钥、证书和TLS配置管理以进行持续的加密,因此用户不再需要手动执行加密或证书管理。同时,服务网格提供了基于策略的认证,可以在两个服务之间建立双向TLS配置,实现服务间(service-to-service)的安全加密通信和终端用户的认证。可见性尽管Kubernetes可以有效地帮助我们保持pod运行以及节点CPU和内存利用率处于良好状态,但它无法告诉我们谁部署了什么应用程序以及该应用程序的性能如何。服务网格可以通过它提供的服务级别可见性、跟踪和监控功能来提高分布式服务的可见性。它是目前提供应用程序级可用性状态信息的最佳方式。此外,服务网格还可以为DevOps团队提供对第三层和第四层以下每个服务的健康状况以及应用程序整体性能的可见性。您可以使用这种可见性来更好地响应和排除故障。例如:如果应用架构中的某个服务出现性能瓶颈,服务网格可以帮助您轻松切断故障服务,禁用那些无法正常运行的副本,保持API的正常响应速度。路由过去,在没有服务网格之前,管理每一层的路由和负载均衡的责任是应用程序开发人员的责任。今天,除了安全性和可见性,企业还可以通过服务网格的智能路由来控制流量,进而实现服务之间的API调用。此外,它还可以协助执行蓝绿部署,即在没有任何类型的服务中断的情况下安全地推送新的应用程序升级。此外,在过去的Kubernetes中,由side-caragent控制的那些现在由一个中心团队管理,以管理安全、可见性和路由规则等多个服务。总结作为云原生栈的关键组成部分,服务网格可以称为微服务架构(MSA,microservicesarchitecture)的仪表盘。它使用户能够解决问题、限制速率、控制流量策略和测试新代码。通过监督、跟踪和控制所有服务之间的交互,服务网格可以为服务之间的连接、执行方式和安全性提供“一站式”支持。原标题:ServiceMesh:TheNextSteptoKubernetesintheEraofMicroservices作者:manvigarg