什么是Linkerd

Linkerd是一款开源网络代理,旨在作为服务网格进行部署:专用层,用于在应用程序内管理,控制和监视服务到服务的通信。

它解决了什么问题?

Linkerd的建立是为了解决我们在Twitter,雅虎,谷歌和微软等公司运营大型生产系统时遇到的问题。根据我们的经验,最复杂,最令人惊讶和紧急行为的来源通常不是服务本身,而是服务之间沟通Linkerd解决了这些问题,不仅仅是通过控制这种通信的机制,而是通过在其上提供一个抽象层。

什么是Linkerd

LINKERD为现有应用增加了可靠性和仪器。

通过为服务提供统一,统一的仪器和控制层,Linkerd免费服务所有者选择最适合其服务的语言。通过将通信机制与应用程序代码分离,Linkerd允许您在不改变应用程序本身的情况下查看和控制这些机制。

今天,世界各地的公司都在使用Linkerd来生产软件基础架构。Linkerd负责处理跨服务通信中的困难,容易出错的部分 - 包括延迟感知负载平衡,连接池,TLS,检测和请求级别路由 - 以使应用程序代码具有可扩展性,性能和弹性。

我如何使用它?

Linkerd作为独立的独立代理运行。因此,它不依赖于特定的语言或库。应用程序通常通过在已知位置运行实例并通过这些实例代理调用来使用Linkerd,即不直接连接到目标,而是将服务连接到相应的Linkerd实例,并将这些实例视为目标服务。

在引擎盖下,Linkerd应用路由规则,与现有的服务发现机制进行通信,并在目标实例上进行负载平衡 - 所有这些工作都在测量通信和报告指标。通过推迟调用Linkerd的机制,应用程序代码与以下内容分离:

  1. 生产拓扑知识;
  2. 有关服务发现机制的知识; 
  3. 负载平衡和连接管理逻辑。

应用也受益于一致的全球流量控制机制。这对于多语言应用程序来说尤其重要,对于这种应用程序来说,通过库很难获得这种一致性。

Linkerd实例可以部署为sidecars(即每个应用程序服务实例一个实例)或每个主机。由于Linkerd实例是无状态和独立的,因此它们可以轻松地放入现有的部署拓扑中。它们可以与各种配置的应用程序代码一起部署,并且协调性最低。