You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/modules/ROOT/pages/01-pattern.adoc
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
3
3
**Canary Deployment with Traffic Splitting**
4
4
5
+
image::canary-01.png[width=75%]
6
+
5
7
**Objective**: Safely roll out a new version of a microservice while monitoring its performance.
6
8
7
9
A retail company has an application running on OpenShift that handles online orders. The development team wants to deploy a new version (`v2`) of their `hello-service` RestAPI without disrupting users of the current version (`v1`).
@@ -11,7 +13,7 @@ A retail company has an application running on OpenShift that handles online ord
11
13
12
14
Using OpenShift Service Mesh 3 with the Kubernetes Gateway API, they configure a traffic-splitting policy to direct 90% of traffic to `v1` and 10% to `v2`.
13
15
14
-
With integrated observability tools like **Jaeger** and **Kiali**, the team monitors traffic flow, latency, and error rates in real-time for v2.
16
+
With integrated observability tools like **Jaeger** and **Kiali**, the team monitors traffic flow, latency, and error rates in real-time for `v2`.
15
17
16
18
Once performance metrics confirm stability, they incrementally increase traffic to `v2` until it handles 100% of requests, ensuring a smooth transition.
Copy file name to clipboardExpand all lines: documentation/modules/ROOT/pages/02-architecture.adoc
+10-9Lines changed: 10 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,25 +26,25 @@ Now imagine having to custom-build and manage this operational overhead for ever
26
26
image::ossm-use-cases.png[width=100%]
27
27
28
28
29
-
OpenShift Service Mesh addresses these challenges by providing a platform-native, unified solution that abstracts away the operational complexities of microservices architectures. It allows developers to focus solely on the business logic of their services while enabling platform teams to:
29
+
**OpenShift Service Mesh** addresses these challenges by providing a platform-native, unified solution that abstracts away the operational complexities of microservices architectures. It allows developers to focus solely on the business logic of their services while enabling platform teams to:
30
30
31
31
- **Enforce Consistent Security Policies**: Mutual TLS (mTLS) encryption and fine-grained access controls are implemented out of the box, ensuring all services adhere to a uniform security baseline.
32
-
- **Enable Seamless Observability**: Built-in tools like Jaeger, Kiali, and Prometheus provide centralized tracing, visualization, and monitoring, giving teams actionable insights across the service mesh.
32
+
- **Enable Seamless Observability**: Built-in platform tools like **Distributed Tracing**, **Kiali**, and **Prometheus** provide centralized tracing, visualization, and monitoring, giving teams actionable insights across the service mesh.
33
33
- **Streamline Traffic Management**: Intelligent traffic routing, load balancing, and support for advanced deployment strategies (e.g., canary releases) simplify managing and optimizing service-to-service communication.
34
34
- **Enhance Reliability and Resilience**: Features like automatic retries, circuit breakers, and failover mechanisms ensure high availability even under challenging network conditions.
35
35
- **Support Kubernetes-Native Standards**: OpenShift Service Mesh 3's support for the Kubernetes Gateway API allows for modern, scalable management of ingress and egress traffic across clusters.
36
36
37
37
With few or no service code changes.
38
38
39
-
OpenShift Service Mesh uses a proxy container (Envoy) to manage all network traffic for your applications. This proxy allows you to enable powerful features, like traffic control, security, and monitoring, based on the settings you define.
39
+
OpenShift Service Mesh uses a proxy container (Envoy) that is injected into a pod to intercept and manage all network traffic for your applications. This proxy allows you to enable powerful features, like traffic control, security, and monitoring, based on the settings you define in the Service Mesh control plane in a way that is decoupled from the application code.
40
40
41
41
image::ossm-01.png[width=50%]
42
42
43
-
The control plane takes your desired configuration, and its view of the services, and dynamically programs the proxy, updating them as the rules or the environment changes.
43
+
The control plane takes your desired configuration, and its view of the services, and dynamically manages the proxy mesh, updating them as the rules or the environment changes.
44
44
45
45
image::ossm-02.png[width=75%]
46
46
47
-
The data plane is the communication between services.
47
+
The data plane is the communication between services within the mesh itself.
== An in-depth look at the solution's architecture
80
80
81
-
OpenShift Service Mesh 3, leveraging the Kubernetes Gateway API, provides a Kubernetes-native and efficient approach to canary deployments. Here’s how it addresses the challenges:
81
+
OpenShift Service Mesh 3, leveraging the Kubernetes Gateway API, provides a Kubernetes-native and efficient approach to managing cluster ingress and canary deployments. Here’s how it addresses the challenges:
82
82
83
83
image::flow-diagram-01.png[width=100%]
84
84
@@ -124,10 +124,11 @@ OpenShift Service Mesh 3 is built on a modular, Kubernetes-native architecture d
124
124
*** Policy enforcement and telemetry collection.
125
125
** Can express capabilities like HTTP header manipulation, traffic weighting & mirroring, TCP/UDP routing
126
126
** May be attached to one or more Route references which serve to direct traffic for a subset of traffic to a specific service
127
+
** Uses Istio for ingress traffic management.
127
128
128
129
* **HTTPRoute** (Gateway API)
129
-
** Enables advanced routing capabilities for Ingress.
130
-
** Specifies routing behavior of HTTP requests from a Gateway listener to an API object, i.e. Service.
130
+
** Enables advanced routing capabilities for service ingress.
131
+
** Specifies routing behavior of HTTP requests from a Gateway listener to an kubernetes `Service` resource associated with a pod.
131
132
** Each Route includes a way to reference the parent resources it wants to attach to.
132
133
133
134
* **Distributed Tracing (via Tempo)**
@@ -150,7 +151,7 @@ OpenShift Service Mesh 3 is built on a modular, Kubernetes-native architecture d
150
151
** Purpose: Metrics collection and visualization.
151
152
** Key Features:
152
153
*** Collect and store time-series data for service mesh metrics.
153
-
*** Provide dashboards for performance and health monitoring.
154
+
*** Provide dashboards in the OpenShift Web console for performance and health monitoring.
154
155
*** Utilizes `SystemMonitor` and `PodMonitor` CRDs to gather Service Mesh controle plane and namespace-level metrics
Copy file name to clipboardExpand all lines: documentation/modules/ROOT/pages/03-demo.adoc
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Before walking through the solution, ensure all necessary prerequisites are in p
9
9
[#before_getting_started]
10
10
== Prerequisites
11
11
12
-
To provision the demo, you will perform the following steps—each explained in detail in the next sections:
12
+
To provision the demo, you will perform the following steps, each explained in detail in the next sections:
13
13
14
14
* You will need an OpenShift cluster with cluster-admin privileges. This solution pattern has been tested on OpenShift 4.17.
15
15
* Ensure you have the OpenShift CLI tool `oc` installed and the ability to run shell scripts in your local environment, such as your laptop.
@@ -192,8 +192,6 @@ metadata:
192
192
193
193
The label `istio-injection: enabled` on a Namespace is critical because it enables automatic sidecar injection for all pods deployed within that namespace. This label is a core part of Istio's architecture and is essential for integrating services into the service mesh.
194
194
195
-
The label istio-injection: enabled on a Namespace is critical because it enables automatic sidecar injection for all pods deployed within that namespace. This label is a core part of Istio's architecture and is essential for integrating services into the service mesh.
196
-
197
195
**Why is `istio-injection: enabled` Important?**
198
196
199
197
* Automatic Sidecar Injection
@@ -213,6 +211,7 @@ The label istio-injection: enabled on a Namespace is critical because it enables
213
211
214
212
The output of `oc get pods -n bookinfo` shows that the Bookinfo application is running in the `bookinfo` namespace with multiple services and versions. The key observation here is that each pod has 2/2 containers running, indicating that Istio sidecar injection is enabled in this namespace.
Copy file name to clipboardExpand all lines: documentation/modules/ROOT/pages/index.adoc
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,13 +4,17 @@
4
4
:sectlinks:
5
5
:doctype: book
6
6
7
+
image::mesh-cover-page.png[width=75%]
7
8
Red Hat OpenShift Service Mesh adds a transparent layer on existing distributed applications without requiring any changes to the application code. The mesh introduces an easy way to create a network of deployed services that provides discovery, load balancing, service-to-service authentication, failure recovery, metrics, and monitoring. A service mesh also provides more complex operational functionality, including A/B testing, canary releases, access control, and end-to-end authentication.
8
9
9
-
Microservice architectures split the work of enterprise applications into modular services, which can make scaling and maintenance easier. However, as an enterprise application built on a microservice architecture grows in size and complexity, it becomes difficult to understand and manage. Service Mesh can address those architecture problems by capturing or intercepting traffic between services and can modify, redirect, or create new requests to other services.
10
+
Microservice architectures split the work of enterprise applications into modular services (deployed as pods in Kuberntetes), which can make scaling and maintenance easier. However, as an enterprise application built on a microservice architecture grows in size and complexity, it can potentially become difficult to understand and manage. Service Mesh can address those architecture problems by capturing or intercepting traffic between services and can modify, redirect, or create new requests to other services in a way that is independant from business logic.
10
11
12
+
image::mesh-diagram-01.png[width=100%]
11
13
12
14
**Included with OpenShift Container Platform Subscription**
13
15
16
+
image::mesh-diagram-02.png[width=75%]
17
+
14
18
A key benefit of OpenShift Service Mesh is that it, along with most of its critical dependencies (e.g., Istio, Jaeger, Kiali, Prometheus), is included and fully supported with the OpenShift Container Platform subscription. This integration ensures:
15
19
16
20
- **Enterprise Support**: Comprehensive support from Red Hat for both OpenShift Service Mesh and its dependencies.
@@ -26,7 +30,7 @@ This solution brief demonstrates how OpenShift Service Mesh 3 empowers platform
26
30
++++
27
31
[IMPORTANT]
28
32
====
29
-
**OpenShift Service Mesh 3.0** and **Gateway API** in OpenShift are Technology Preview features only.
33
+
**OpenShift Service Mesh 3.0** and **Gateway API** in OpenShift are Technology Preview features only at this time.
30
34
31
35
Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
32
36
@@ -35,7 +39,7 @@ link:https://access.redhat.com/support/offerings/techpreview[More details about
35
39
This Solution Pattern will update as supported releases become generally available (GA).
0 commit comments