In
software architecture
Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
...
, a service mesh is a dedicated infrastructure layer for facilitating service-to-service communications between
services or
microservices
A microservice architecture – a variant of the service-oriented architecture structural style – is an architectural pattern that arranges an application as a collection of loosely-coupled, fine-grained services, communicating through ligh ...
, using a
proxy
Proxy may refer to:
* Proxy or agent (law), a substitute authorized to act for another entity or a document which authorizes the agent so to act
* Proxy (climate), a measured variable used to infer the value of a variable of interest in climate re ...
.
A dedicated communication layer can provide a number of benefits, such as providing
observability
Observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs.
In control theory, the observability and controllability of a linear system are mathematical duals.
The concept of observ ...
into communications, providing
secure connections, or automating retries and
backoff
Backoff is a kind of malware that targets point of sale (POS) systems. It is used to steal credit card data from point of sale machines at retail stores. Cybercriminals use Backoff to gather data from credit cards. It is installed via remote d ...
for failed requests.
A service mesh consists of network proxies paired with each service in an application and a set of task management processes. The proxies are called the data plane and the management processes are called the control plane. The data plane intercepts calls between different services and “processes” them; the control plane is the brain of the mesh that coordinates the behavior of proxies and provides
APIs
Apis or APIS may refer to:
* Apis (deity), an ancient Egyptian god
* Apis (Greek mythology), several different figures in Greek mythology
* Apis (city), an ancient seaport town on the northern coast of Africa
**Kom el-Hisn, a different Egyptian ci ...
for operations and maintenance personnel to manipulate and observe the entire network.
The service mesh architecture is implemented by software products like
Istio,
Linkerd,
Consul
Consul (abbrev. ''cos.''; Latin plural ''consules'') was the title of one of the two chief magistrates of the Roman Republic, and subsequently also an important title under the Roman Empire. The title was used in other European city-states th ...
, AWS App Mesh, Kuma, Traefik Mesh, and
Open Service Mesh. Many service meshes use the
Envoy
Envoy or Envoys may refer to:
Diplomacy
* Diplomacy, in general
* Envoy (title)
* Special envoy, a type of diplomatic rank
Brands
*Airspeed Envoy, a 1930s British light transport aircraft
*Envoy (automobile), an automobile brand used to sell Bri ...
proxy on the data plane.
See also
*
Service-oriented architecture
In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provided ...
*
Microservices
A microservice architecture – a variant of the service-oriented architecture structural style – is an architectural pattern that arranges an application as a collection of loosely-coupled, fine-grained services, communicating through ligh ...
*
Consul (software)
*
Open Service Mesh
*
Proxy server
In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource.
Instead of connecting directly to a server that can fulfill a requ ...
*
Linkerd
*
Kubernetes
Kubernetes (, commonly stylized as K8s) is an open-source container orchestration system for automating software deployment, scaling, and management. Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintai ...
References
Software architecture
{{software-eng-stub