What is Meshery

A multi-service mesh management plane adopting, operating and developing on different service meshes. Meshery faciliates learning about functionality and performance of service meshes and incorporates collection and display of metrics from applications running on or across service meshes. Meshery provides this high-level functionality:

  1. Performance Benchmarking
  2. Service Mesh Lifecycle Management
  3. Service Mesh Interoperability and Federation

Delivered at Service Mesh Day 2019

What challenges does Meshery solve?

Service mesh management - one or multiple service meshes.

Anytime performance questions are to be answered, they are subjective to the specific workload and infrastructure used for measurement. Given this challenge, the Envoy project, for example, refuses to publish performance data because such tests can be 1) involved and 2) misinterpreted.

Beyond the need for performance and overhead data under a permutation of different workloads (applications) and types and sizes of infrastructure resources, the need for cross-project, apple-to-apple comparisons are also desired in order to facilitate a comparison of behavioral differences between service meshes and selection of their use. Individual projects shy from publishing test results of other, competing service meshes. An independent, unbiased, credible analysis is needed.

Meshery is intended to be a vendor and project-neutral utility for uniformly benchmarking the performance of service meshes. Between service mesh and proxy projects (and surprisingly, within a single project), a number of different tools and results exist. Meshery allows you to pick an efficient set of tools for your ecosystem by providing performance evaluation and metrics.

  1. By leveraging Meshery you could achieve apples-to-apples performance comparision of service meshes
  2. Track your service mesh performance from release to release.
  3. Understand behavioral differences between service meshes.
  4. Track your application performance from version to version.

Meshery is for Adopters and Operators

Whether making a Day 0 adoption choice or maintaining a Day 2 deployment, Meshery has useful capabilities in either circumstance. Targeted audience for Meshery project would be any technology operators that leverage service mesh in their ecosystem; this includes developers, devops engineers, decision makers, architects, and organizations that rely on microservices platform.

Meshery is for performance benchmarking

  • Identify permutations of workloads, infrastructure types, and measurements to use for:
    1. Data plane testing
    2. Control plane testing.
      • Against a fixed set of:
      1. Workload(s)
      2. Infrastructure(s)

Supported Service Meshes

See the full list of adapters.

Available service mesh adapters - Service mesh adapters that Meshery currently supports:

  1. Istio
  2. Linkerd
  3. Consul Connect
  4. Octarine
  5. Network Service Mesh

In-progress service mesh adapters - Service mesh adapters for which community-contributed support has been committed and are currently under development:

  1. CPX
  2. Maesh

Help-wanted service mesh adapters - Service mesh adapters adapters for which we are seeking community-contributed support:

  1. App Mesh
  2. Kuma
  3. SOFAmesh

Contributing

Community

This project is community-built and welcomes collaboration! Fork here on Github

FAQ

Why use Meshery?

  • because its an open source, vendor neutral projects that facilitates testing across meshes.
  • because fortio is not packaged into a mesh testing utility, but is only a load-generator unto its own.
  • because regpatrol is closed sourcej, binary is not released, scripted for one mesh, and is produced by a vendor of that mesh.

Why create Meshery and not use another benchmark tool?

Meshery is purpose built for factilitating benchmarking of service meshes and their workloads. Other benchmark tools are not. There are some other tools used for service mesh benchmarking, like regpatrol. Regpatrol is used by IBM is not open source or available in binary form to use and has the following differences from Meshery:

  • Telemetry - regpatrol sources telemetry from Mixer Prometheus adapter and uses IBM’s proprietary node agent.
  • Meshery sources from Mixer Prometheus adapter and uses Prometheus node-exporter.
  • Traffic type - regpatrol uses jmeter, which can parse responses and perform functional tests.
  • Meshery is using fortio, which is for load-gen and perf-testing only.

Resources

Meshery Presentations

Other Resources