Linkerd 2.0: service mesh minimale in Rust

Linkerd 2.0 (settembre 2018) di Buoyant (William Morgan, Oliver Gould): riscrittura completa del primo service mesh. Data plane Rust ultra-leggero, control plane Go, mTLS di default, zero-config. CNCF graduated 2021.

Open Source LinkerdBuoyantService MeshRustCNCFKubernetesOpen Source

Il primo service mesh

Linkerd 1.x (2016, Buoyant) è il primo progetto che usa il termine service mesh. Scritto in Scala/JVM, basato su Finagle (Twitter), è potente ma pesante (300+ MB RAM per proxy). Con l’adozione Kubernetes e il bisogno di overhead basso, serve un rewrite.

Il rilascio 2.0

Linkerd 2.0 è rilasciato il 18 settembre 2018 da Buoyant. Fondatori: William Morgan (ex-Twitter, ex-Yammer) e Oliver Gould (ex-Twitter). Licenza Apache 2.0. Rewrite totale:

  • Data plane scritto in Rust (proxy chiamato linkerd2-proxy)
  • Control plane in Go
  • Progettato da zero per Kubernetes only

Donato alla CNCF nel 2017, graduated nel luglio 2021.

Caratteristiche

  • mTLS automatico — tra tutti i pod del mesh, rotazione chiavi
  • Automatic retries e timeouts
  • Traffic splitting — per canary, blue/green
  • Metrics Prometheus — RED (Rate/Error/Duration) di default
  • Tap — visualizzazione real-time del traffico
  • Zero-config — installazione con linkerd install | kubectl apply
  • Footprint minimo — proxy ~20 MB RAM (vs Envoy ~150 MB)
  • No CRD explosion — semplicità operativa

Linkerd vs Istio

Linkerd 2Istio
Data planelinkerd2-proxy (Rust)Envoy (C++)
FootprintLeggero (~20MB)Pesante (~150MB)
Feature setFocalizzatoEsteso (policy, security, observability completa)
ConfigMinimaRicca CRD
AdozioneTeam che vogliono semplicitàTeam grandi con requisiti complessi

Versioni

  • 2.0 (settembre 2018) — rewrite
  • 2.5 (2019) — stabilizzazione
  • 2.10 (2021) — multi-cluster
  • 2.11 (2021) — server/route policy
  • 2.14 (2023) — HTTPRoute Gateway API
  • 2.16+ (2024) — edge release, distribuzione stable commercial (Buoyant)

Dal 2024 Buoyant Enterprise è la distribuzione commerciale; le release stable vanilla devono attendere 6 mesi.

Concorrenti

  • Istio — più diffuso, più feature, più complesso
  • Cilium Service Mesh — eBPF, no sidecar
  • Consul Connect — HashiCorp
  • AWS App Mesh, Google Traffic Director, Azure Service Mesh — managed cloud
  • Kuma (Kong, OSS) — multi-zone, multi-cluster

Nel contesto italiano

Linkerd è scelto da team italiani che:

  • Vogliono mTLS automatico senza configurazione complessa
  • Hanno cluster K8s di medie dimensioni
  • Evitano la complessità di Istio
  • Cercano observability micro-servizi base (RED metrics + tap)

Usato in PMI tech italiane, banche per pilot di service mesh, hosting provider che offrono K8s managed.


Riferimenti: Linkerd 2.0 (18 settembre 2018). Buoyant (William Morgan, Oliver Gould). Licenza Apache 2.0. Data plane Rust (linkerd2-proxy), control plane Go. CNCF graduated (luglio 2021). Versione corrente 2.16+ (2024).

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi