DEV Community

Cover image for Messing with Service Meshes using Meshery
Shivay Lamba
Shivay Lamba

Posted on • Edited on

Messing with Service Meshes using Meshery

Alt Text

What is Meshery?

Meshery is the Service Mesh Management Tool
Meshery enables operators, developers, and service owners to realize the full potential of a service mesh...

But wait! What is a service mesh exactly?

Service meshes in the Cloud Native Space are tools for adding observability, reliability, security, and features to applications by inserting them at the platform layer rather than the application layer.

In a control plane service meshes provide the following:
Provides policy, configuration, and platform integration.
Takes a set of isolated stateless sidecar proxies and turns them into a service mesh.
Does not touch any packets/requests in the data path.

While in the data plane, service meshes provide the following as well :
Provides policy, configuration, and platform integration.
Takes a set of isolated stateless sidecar proxies and turns them into a service mesh.
Does not touch any packets/requests in the data path.

How does Meshery come into the picture?

Meshery provides federation, backend system integration, expanded policy and governance, continuous delivery integration, workflow, chaos engineering, and application performance tuning.

Benefits of using Meshery for service meshes :

  • Configuration Best Practices Assess your service mesh configuration against deployment and operational best practices with Meshery's configuration analyzer.

image

  • Service Mesh Interface (SMI) Conformance Operate and upgrade with confirmation of SMI compatibility. Defines compliant behavior. Produces compatibility matrix. Ensures provenance of results. Runs a set of conformance tests. Built into participating service mesh’s release pipeline.

image

  • The service mesh management plane Supports the following : 1.Lifecycle 2.Workload 3.Performance 4.Configuration

image

  • Performance Management Most importantly, you can do performance comparison between different service meshes by doing load tests.

image

type PerformanceProfile struct {
    ID *uuid.UUID `json:"id,omitempty"`

    Name              string         `json:"name,omitempty"`
    LastRun           string         `json:"last_run,omitempty"`
    Schedule          *uuid.UUID     `json:"schedule,omitempty"`
    LoadGenerators    pq.StringArray `json:"load_generators,omitempty" gorm:"type:text[]"`
    Endpoints         pq.StringArray `json:"endpoints,omitempty" gorm:"type:text[]"`
    ServiceMesh       string         `json:"service_mesh,omitempty"`
    ConcurrentRequest int            `json:"concurrent_request,omitempty"`
    QPS               int            `json:"qps,omitempty"`
    Duration          string         `json:"duration,omitempty"`
    TotalResults      int            `json:"total_results,omitempty"`

    RequestHeaders string `json:"request_headers,omitempty"`
    RequestCookies string `json:"request_cookies,omitempty"`
    RequestBody    string `json:"request_body,omitempty"`
    ContentType    string `json:"content_type,omitempty"`

    UpdatedAt *time.Time `json:"updated_at,omitempty"`
    CreatedAt *time.Time `json:"created_at,omitempty"`
}

Enter fullscreen mode Exit fullscreen mode

The above code shows the performance criteria for different service meshes.

The Meshery Architecture!

image

  • For Providers :
    image

  • For Clients :
    image

Top comments (0)