Just curious to understand about SMI and Conformance

Hello People,

I was just wondering to know What is SMI and SMP. Why is it really important for and organization?

I have not able to figure out what exactly SMI focuses on and how does Meshery help its user to achieve that. It would be great if someone can explain in plain English :wink:

I will try.

Both Service Mesh Interface (SMI) and Service Mesh Performance (SMP) are specifications.

SMI is a spec that covers the common denominator capabilities of a service mesh. Currently these capabilities are traffic policy, traffic telemetry and traffic management.

End users can use the SMI spec to define applications that uses a service mesh without having to consider for any specific service mesh implementation. So, it is a standard way in which a user can interact with a service mesh (any service mesh). This prevents the user from vendor lock-in.

The SMI spec itself is defined as Kubernetes CRDs and Extension API Servers which can be installed on to a Kubernetes cluster.

The spec can evolve to support more service mesh features. Now it supports the common feature set of a service mesh.

Meshery has a feature called “SMI Conformance” which lets users find out which SMI features a particular service mesh at a particular version supports. Meshery defines what “conformance” means and provides a set of tests that checks this conformance.

SMP is a spec that defines how to capture the performance of workloads on service meshes.

This includes capturing details of the environment and infrastructure, configuration of the service mesh, workload details and other statistical analysis.

SMP is also vendor neutral which makes it the solution for comparing service meshes, capturing reproducible performance test results and benchmarking performance.

Meshery implements SMP to run performance tests. Meshery uses load generators internally to generate traffic against a workload deployed on a service mesh (can test off the mesh as well) and captures the results in the “SMP format”.

This SMP format is defined in the spec as a set of protos.

To sum it up, both of these specifications makes it easy for the end user to work with service meshes.

The Layer5 community is active in stewarding both the specifications. And as more and more service meshes pop up in the ecosystem, the need for these specifications as standards for interacting with them is growing.

1 Like