服务网格:微服务的下半场

栏目: IT技术 · 发布时间: 3年前

内容简介:【51CTO.com快译】如今,云原生应用程序通常被设计为一组在容器中运行的分布式微服务(请参见--

服务网格:微服务的下半场

【51CTO.com快译】

如今,云原生应用程序通常被设计为一组在容器中运行的分布式微服务(请参见-- https://www.compunneldigital.com/infographic/how-to-modernize-your-legacy-systems-here-are-the-best-practices/ ),因此人们往往将其称为容器化的应用程序。这些容器应用主要是基于Kubernetes--这一容器化编排的实际标准。但是随着微服务的指数级增长,我们很难在多种服务、加密、身份验证、授权、以及Kubernetes集群的负载平衡之间,实施和标准化路由。为此,我们需要用到“服务网格(service mesh)”。就像容器是从应用程序中抽象出了操作系统那样,服务网格则抽象出了如何处理进程之间的通信。

什么是服务网格?

服务网格是一个专用的基础架构层,它可以被用于处理服务与服务(service-to-service)之间的通信。通过构建云原生的现代化应用,服务网格能够使用复杂服务拓扑,来可靠地传递各种请求。服务网格的实现,实际上是与应用代码一起部署的轻量级网络代理阵列。换句话说,它是由附加到应用程序中所有pod的sidecar代理所组成。服务网格的概念,随着与之相连接的云原生应用的迭代,而不断进化。值得注意的是:服务与服务之间的通信不仅十分复杂,而且涉及到运行时(runtime)行为的基本方面,因此服务网格能对它们进行管理,进而有效地确保端到端的性能与可靠性。

除了为Kubernetes提供服务,服务网格还包括安全性、可视性、以及路由等功能。许多人普遍认为:如果本组织需要实现集中化的控制,那么服务网格就是确保内部平台能够统一执行治理策略的唯一方法。

下面,让我们来看看企业是如何通过使用服务网格,配合Kubernetes,来有效地控制服务的安全性、可视性、路由、以及负载平衡。

透明度提高

在一个杂乱且密集的云原生环境中,要遵循复杂的路由规则与流程管理着实不易。各种数据消息在不同的拓扑结构、以及在基础架构的不同层次之间,沿着既定的轨迹从一个pod传递到另一个pod。而服务网格恰好能为现代化应用程序的服务交付方式(请参见-- https://www.compunneldigital.com/blog/modernizing-legacy-systems-with-cloud-native-serverless/ ),带来更好的透明性,以方便用户有效地跟踪消息的流转过程。

安全性增强

安全性是服务网格主要关注的一个方面。它能够确保以集中控制的方式,在整个组织中实现加密、以及细粒度的访问控制规则。相对于传统的单点控制,服务网格能够全面地控制各种网络流量,进而提供更好的安全态势。

此外,随着微服务数量的增加,网络流量也会随之增多。这在无形中也方便了攻击者轻松地攻击各种通信流。因此,为了确保网络中流量交互的安全性,服务网格通过提供双向传输层安全(mutual TLS,Transport Layer Security),来提供验证服务、执行安全策略、以及加密服务间流量的全栈式解决方案。

加密

由于微服务之间的通信需求不断地增加,我们需要通过可靠的加密服务来为其保驾护航。服务网格能够协助实现密钥、证书、以及针对持续加密的TLS配置管理,因此用户不再需要手动执行加密或证书管理。同时,服务网格提供了基于策略的身份验证,可以在两个服务之间建立双向的TLS配置,以实现服务之间(service-to-service)的安全加密通信,和最终用户的身份验证。

可视性

尽管Kubernetes能够帮助我们有效地保持Pod的运行、以及节点的CPU和内存利用率处于良好状态,但它无法告知我们到底是谁部署了何种应用程序,以及该应用的性能如何。而服务网格可以通过其提供的服务级别可见性,跟踪和监控功能,来提高分布式服务的可视性。它是目前能够提供应用级可用性状态信息的最佳方法。此外,服务网格还能让开发运维团队了解每个服务在第三、四层以下的运行状况,以及应用的整体表现。

您可以通过这些可见性,来更好地响应事件和排除故障。例如:如果应用架构中的某项服务出现了性能瓶颈,那么服务网格就可协助您轻松地切断某个故障服务,禁用那些无法正常运行的副本,进而保持API的正常响应速度。

路由

过去,在没有服务网格之前,管理各层的路由和负载平衡责任,都是由应用程序开发人员所负责的。如今,除了安全性和可视性,企业还可以通过服务网格的智能路由来控制流量,进而实现服务之间的API调用。此外,它还可以协助执行蓝绿部署,即:在不中断任何服务类型的情况下,安全地推送新的应用升级。

此外,过去在Kubernetes中,那些由side-car代理所控制的内容,如今则由一个中心的团队,来统管安全性、可视性、以及路由规则等多项服务。

总结

作为云原生栈的关键组件,服务网格可谓微服务架构(MSA,microservices architecture)的仪表板。它使用户能够对问题进行故障排除、速率限制、流量策略的管控、以及新代码的测试。通过监督、跟踪和控制所有服务之间的交互,服务网格能够“一站式”为服务之间的连接、执行方式和安全性提供“加持”。

原标题:Service Mesh: The Next Step to Kubernetes in the Era of Microservices 作者: manvi garg

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:庞桂玉 TEL:(010)68476606】


以上所述就是小编给大家介绍的《服务网格:微服务的下半场》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

加密与解密(第4版)

加密与解密(第4版)

段钢 / 电子工业出版社 / 2018-10-1 / 198

《加密与解密(第4版)》以加密与解密为切入点,讲述了软件安全领域的基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。这些知识彼此联系,读者在掌握这些内容之后,很容易就能在漏洞分析、安全编程、病毒分析、软件保护等领域进行扩展。从就业的角度来说,掌握加密与解密的相关技术,可以提高自身的竞争能力;从个人成长的角度来说,研究软件安全技术有助于掌握一些系统底层知识,是提升职业技能的重要......一起来看看 《加密与解密(第4版)》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试