Skip to content

VOL 07 / CH 06 / LESSON 02

6.2 Production Baselines for Microservice Platforms ​

The goal of a microservice platform is to turn repetitive, error-prone distributed capabilities into standardized, default workflows, so business teams don’t have to reinvent service discovery, identity, observability, or deployment on their own. This does not require one central service to make every traffic and business decision.

Four Planes ​

These four responsibility groups help identify failures and ownership. They do not require four products, and a component may serve several roles.

Data plane ​

Carries business requests and messages: proxies, load balancing, connections, timeouts, TLS, and traffic policies. It sits on the critical path and must have clearly defined latency and fault budgets.

Control plane ​

Distributes routing, certificates, configurations, and policies. During a short control-plane outage, existing data-plane instances should generally continue with the last known valid configuration. That independence has a limit: certificates expire, endpoints change, and new proxies may have no usable configuration. Measure both how long existing instances keep serving and whether new ones can join. Define behavior after policy revocation and credential expiry; last-known-good does not extend identity credentials indefinitely.

Management plane ​

Manages deployment, scaling, directories, costs, permissions, and operational workflows. It determines who is authorized to change the system.

Observability plane ​

Collects metrics, logs, traces, and events and correlates them to services, versions, regions, and business outcomes. Ordinary telemetry needs bounded queues, asynchronous export, and an explicit drop policy so collector failure does not block business threads. Business audit records that must be retained need reliable storage and separate backpressure handling; do not mix them with disposable debug logs.

Platform Baseline Capabilities ​

CapabilityMinimum Requirements
Service IdentityWorkload identity, short-lived certificates, least privilege
Discovery and RoutingStable names, readiness checks, instance draining, zone awareness
RPC PoliciesDeadlines, limited retries, idempotency protection, message size limits
Overload ProtectionConcurrent limits, queue caps, load shedding, compartmentalization
Configuration and SecretsValidation, auditing, rotation, last-known-good state
ObservabilityUnified resource attributes, trace propagation, SLO metrics
DeploymentImmutable artifacts, gradual traffic, stop conditions, rollback capability
RecoveryBackups, drills, runbooks, incident command structure

Middleware names may vary, but these runtime semantics must not be omitted.

The Boundary of a Service Mesh ​

A service mesh can unify mTLS, connection pooling, basic routing, and telemetry, but it has no awareness of whether business operations are idempotent, whether fallbacks are honest, or how to query results when they are unknown.

mTLS authenticates workloads and protects transport. It does not automatically decide whether an end user may access an order belonging to a particular tenant; object-level authorization still needs business context. Coordinate proxy retries with application SDK retries: if both layers allow three attempts, one logical call can cause up to nine downstream attempts during failure. Sidecar or node proxies also consume resources and introduce challenges around configuration propagation and version compatibility.

Configuration Deployment Is Also Production Deployment ​

Accidentally changing a timeout from 200 ms to 200 s can alter queueing and resource use without changing the image at all. Changes to timeout, retry, routing, rate limiting, and certificate policies can affect the entire site without requiring any changes to the application image. The control plane configuration must include:

  • Schema and value-range validation;
  • Dry-run and conflict detection;
  • Gradual, small-scale rollouts;
  • Versioning, auditing, and one-click rollback capabilities;
  • Visibility into configuration rollout status and data-plane convergence.

A control plane reporting "sent" does not mean every proxy has applied the change. With xDS, check versions, ACK/NACK responses, and resource readiness. Accepted configuration does not prove backend reachability. A rollback also needs evidence that it took effect; restoring Git alone does not establish that.

SLOs Include Dependency Behavior ​

A service's SLO cannot be evaluated in isolation. Teams owning an API must understand critical dependencies and their error budgets, then define how to respond to degraded dependencies: fast failure, explicit fallback, caching, asynchronous work, or capacity isolation.

The platform can provide dependency maps and unified metrics, but it's still the business team's responsibility to define user-visible success. A 200 HTTP status code does not equate to a correctly completed order.

Pre-Production Drills ​

  • Is the connection drained when an instance is rolled out?
  • Is capacity sufficient after a single zone failure?
  • Does the data plane continue operating when the control plane becomes unavailable?
  • How do we recover if identity certificate rotation fails?
  • Does a downstream slowdown trigger a retry storm?
  • Does every message backlog and dead-letter queue (DLQ) have a designated owner?
  • Can configuration errors be detected and halted during low-traffic phases?
  • Can backups be restored within the target RTO?

Platform Success Metrics ​

  • Time to reach production baseline for new services;
  • Proportion of services using default paths;
  • Release failure rate and recovery time;
  • Number of policy exceptions and their owners;
  • Percentage of cross-service incidents attributable to platform defects;
  • Base cost and resource consumption per service;
  • Coverage of SLOs, identity, backup, and operational runbooks.

The platform should reduce cognitive load, not increase it through more YAML or hidden control planes that create new distributed systems.

References ​

Built with VitePress | Software Systems Atlas