Using NATS to Implement Service Mesh Functionality, Part 1: Service Discovery

A Very Quick Introduction to Service Mesh

  • Service Discovery (eventual consistency, distributed caching)
  • Load Balancing (least request, consistent hashing, zone/latency aware)
  • Communication Resiliency (retries, timeouts, circuit-breaking, rate limiting)
  • Security (end-to-end encryption, authorization policies, service-to-service ACLs)
  • Observability (Layer 7 metrics, tracing, alerting, Honeycomb.io)
  • Routing Control (traffic shifting and mirroring)
  • API (programmable interface, Kubernetes Custom Resource Definitions (CRD))
  • Automated Canary rollouts (control percentage of canary rollout or blue/green)
  • Fault Injection (adding a timeout or error to test resiliency)

Service Discovery, or “where the heck are you?”

Istio architecture used for Service Mesh with sidecar proxies
Image from https://istio.io/docs/concepts/what-is-istio/ explaining concepts

NATS and Service Discovery

NATS used as mechanism to transfer data and talk between systems

Security in your Service Mesh with NATS

To Sum It All Up

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dale Bingham

Dale Bingham

CEO of Soteria Software. Developer on OpenRMF. Software Geek by trade. Father of three daughters. Husband. Love new tech where it fits. Follow at @soteriasoft