微服务的服务网格。 第一部分

本文的翻译是专门为Kubernetes Based Infrastructure Platform课程的学生准备的。




如果您关注了近年来分布式和云体系结构的趋势,那么您可能已经不止一次听说过微服务。 它们出现在几年前,从那时起,它们在企业云部署中的作用才有所增加。 越来越多的公司开始转向微服务,并在其出版物和新闻稿中对此进行声明。

他们的选择是有道理的,但只有少数人能说明这种转变背后的原因。 通过适当的实现,微服务解决了单片架构的许多问题:它们易于迭代和分布到组中,并且代码易于划分为托管组件。 但是,在大多数出版物中,对于有效使用微服务和工具所进行的后续工作一事无成。

今天,我们幕后探秘,看看什么是服务网格,这项技术如何帮助解决微服务架构问题并简化开发人员的工作。 我希望您能详细了解它在微服务部署中的作用。

什么是服务网格?


服务网格 (也使用术语“微服务网络”,“微服务的网格网络”)是基础结构的抽象层,它定义了应用程序微服务之间的交互。 该技术使用容器之间的网络连接来控制各种应用程序组件的交互。 听起来很抽象,但实际上这是一个非常实用的概念。 容器通过网络进行交互,因此更改网络拓扑可以使您更改容器交互的顺序。



有效的协作在微服务中起着关键作用。 管理与服务网格的交互可带来许多好处。 因此,在部署新版本的组件时,无需其他配置即可立即将网络设备从旧设备切换到新设备。 如果您在扩展方面遇到困难,则可以使用服务网格将流量重定向到各种负载均衡器,并增加应用程序组件的容器数。

对于那些开始使用微服务的人来说,一个流行的技巧是:将应用程序的各个组件视为完全不同的提供者的API。 服务网格技术使您可以在网络级别实施此原则,并准确确定在各个网络位置将提供哪些服务。 在移动或修改服务的情况下,无需部署新配置,只需更改网络交互即可。

它有什么作用?


微服务因其广泛的可伸缩性而广受欢迎,适用于可分解为易于管理的组件的大型应用程序。 相比之下,单片式架构在集中化很重要的区域很方便。 在单片应用程序中,由于事件在同一位置运行,因此更容易记录事件。 版本控制也很简单,因为单个实例被覆盖。 毫不奇怪,从单片架构过渡到微服务架构,许多开发人员迷失了方向,因为那里没有单一的日志记录位置,因此选择必要的组件版本更加困难。



服务网格技术的优势在于,它充当某些数据(尤其是有关网络交互的数据)的中央源的角色。 考虑上面部署应用程序组件的新版本的示例。 您可以控制网络上的其他容器可以看到哪些容器,而不必销毁包含旧版本的所有容器,使用新版本启动新容器并为其他相关组件重复此过程。

这意味着要部署新版本,只需使用DNS将新容器指定为目标,以新负载平衡器为目标,或更改现有平衡器为目标的容器就足够了。

通过关注应用程序组件之间的交互(在它们工作的网格网络上),您可以保持一定程度的集中化,从而简化了整体环境中的管理。 需要有关通过该应用的流量的更多信息? 将监视功能添加到组件之间的网络。 是否想提高安全性? 实施强大的加密和HTTPS。 这一切都可以归功于服务网格

想了解更多?


在接下来的几周中,我们将更详细地研究网状网络的运行及其在微服务某些部署场景中的实际应用。 我们将专注于该技术的真正好处:有效的控制,可管理性和监视大型应用程序过程的能力。

Source: https://habr.com/ru/post/zh-CN476358/


All Articles