Service Mesh (Istio/Linkerd) implementation for microservices

When scaling a microservice architecture in Kubernetes, implementing a Service Mesh like Istio or Linkerd offloads retries, timeouts, mTLS, and tracing to sidecar proxies. This reduces code duplication and simplifies monitoring.

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1288
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    988
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1038
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1112
  • image_website-_0.webp
    Website development for Red Pear
    556

When scaling a microservice architecture in Kubernetes, implementing a Service Mesh like Istio or Linkerd offloads retries, timeouts, mTLS, and tracing to sidecar proxies. This reduces code duplication and simplifies monitoring.

One of our clients — a delivery service — faced avalanche retries during a database failure. After deploying Linkerd, latency dropped from 500 ms to 50 ms thanks to circuit breaker and automatic timeouts. According to the CNCF Annual Survey 2023, Service Mesh adoption reduces incident time by 40% and cuts release errors by 3x. Additionally, this reduced infrastructure costs by $15,000 per year. The pilot project costs $5,000 and includes a full audit and basic setup; full implementation starts at $15,000.

With 5+ years of Kubernetes expertise and 20+ successful microservice implementations, our certified engineers guarantee reliable Service Mesh deployments.

How Service Mesh solves code duplication

Service Mesh is an infrastructure layer for managing inter-service traffic in Kubernetes. Instead of each microservice implementing retry, timeout, mTLS, and tracing independently, these features are pushed to sidecar proxies. This reduces code duplication, speeds up new releases, and simplifies monitoring.

Key Service Mesh capabilities

  • Traffic Management: Microservices traffic management includes canary deployment, A/B testing, circuit breaker, retry, and timeout configured at infrastructure level without code changes.
  • Observability: Microservices observability is enhanced with automatic tracing, latency/error rate/throughput metrics for every service pair, and a dependency graph.
  • Security: mTLS between all services with automatic certificate rotation, authorization policies.

Choosing Between Istio and Linkerd

The choice depends on needs. Istio provides full traffic control (canary, A/B, circuit breaker) with higher resource consumption (300–500 MB per sidecar). Linkerd is lighter (10–30 MB), faster to install, and suitable for teams needing basic observability and mTLS without learning hundreds of CRDs.

Memory consumption: Linkerd vs Istio

Criterion Istio Linkerd
Proxy Envoy (C++, rich feature set) Linkerd2-proxy (Rust, minimalistic)
RAM consumption 300–500 MB per sidecar 10–30 MB per sidecar
Installation complexity High: many CRDs Moderate: single CLI
Capabilities Full traffic control, policies Basic mTLS, observability, traffic
Learning curve Steep Gentle

Linkerd is 10 times more memory-efficient than Istio and deploys 2–3 times faster due to fewer CRDs. Istio suits complex canary, A/B, circuit breaker scenarios.

How we implement Service Mesh

Work process:

Stage Description Duration
Infrastructure audit Assess current Kubernetes cluster, services, network policies 1–2 days
Mesh design Choose between Istio/Linkerd, design sidecar injection architecture 2–3 days
Control plane installation Install Istio or Linkerd, configure mTLS in PERMISSIVE mode 3–5 days
Observability integration Integrate Prometheus, Grafana, Jaeger, Kiali 2–3 days
Traffic configuration Canary rollout, circuit breaker, timeout/retry 3–5 days
Security policies mTLS STRICT, Authorization Policies 2–3 days
Documentation and training Operations guide, workshop for the team 1–2 days
Post-launch support Monitoring, incident resolution, fine-tuning 2 weeks

Step-by-step Linkerd installation:

  1. Install CLI: curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh
  2. Check cluster: linkerd check --pre
  3. Install control plane: linkerd install --crds | kubectl apply -f - then linkerd install | kubectl apply -f -
  4. Verify installation: linkerd check
  5. Enable sidecar injection for namespace: add annotation linkerd.io/inject: enabled
Namespace annotation example
apiVersion: v1 kind: Namespace metadata: name: production annotations: linkerd.io/inject: enabled 

Istio Traffic Management

Canary Deployment in Kubernetes is simplified with Istio:

apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: order-service spec: hosts: - order-service http: - match: - headers: x-canary: exact: "true" route: - destination: host: order-service subset: v2 - route: - destination: host: order-service subset: v1 weight: 95 - destination: host: order-service subset: v2 weight: 5 

Circuit breaker in Istio is configured via DestinationRule:

apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: order-service spec: host: order-service subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 trafficPolicy: connectionPool: http: http2MaxRequests: 1000 outlierDetection: consecutiveErrors: 5 interval: 10s baseEjectionTime: 30s maxEjectionPercent: 100 

mTLS and Authorization Policies

In Istio, mTLS is enabled per-namespace or globally. mTLS Istio can be configured per namespace. Example global configuration and access policy:

# PeerAuthentication apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication metadata: name: default namespace: production spec: mtls: mode: STRICT --- # AuthorizationPolicy apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: order-service-policy namespace: production spec: selector: matchLabels: app: order-service rules: - from: - source: principals: ["cluster.local/ns/production/sa/api-gateway"] to: - operation: methods: ["GET", "POST"] 

Observability via Kiali

Kiali service graph visualization helps operators understand traffic flows. For installation, use the official add-ons. After installation, run istioctl dashboard kiali. This visualizes traffic flows and helps find problems faster.

Typical implementation mistakes

  1. Incorrect mTLS configuration. Enabling STRICT mode immediately blocks all traffic. Always start with PERMISSIVE.
  2. Missing resource limits for sidecar. Proxies consume CPU and RAM; without limits they can overload nodes.
  3. Injecting into all pods without exceptions. Some legacy services may be incompatible. Use annotations on namespace or pod.

What’s included in the work

  • Designing mesh architecture for your landscape
  • Installing and configuring the control plane
  • Injecting sidecar proxies into all pods
  • Configuring mTLS, authorization, canary deployments
  • Integration with Prometheus, Grafana, Jaeger
  • Access to monitoring dashboards (Grafana, Kiali)
  • Operations documentation
  • Team training (2-hour workshop)
  • 2 weeks of post-launch support

These deliverables ensure a smooth transition and operational readiness.

Implementation timelines

  • Linkerd setup + basic observability: 3–5 days
  • Istio setup + canary routing + mTLS: 1–2 weeks
  • Authorization policies and full observability: additional 1 week

Our team of certified Kubernetes engineers has 5+ years of experience and has completed over 20 microservice projects. Request a pilot project — we will assess your infrastructure and propose the optimal solution. Get a consultation on Service Mesh implementation today. We guarantee a smooth migration with zero downtime.