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
* Update _index.md
Fixing some grammar and typos.
* Update introduction.md
Fixed some formatting and grammar.
* Update install.md
Cleaning up formatting and grammar.
* Update deploy.md
Fixed grammar and formatting.
* Update routing.md
Grammar and typo fixes.
* Update visualize.md
fixed some grammar and typos
* Update cleanup.md
Cleaning up grammar and typos
* Update routing.md
Fixed error language message to better illustrate what to expect.
* Update _index.md
Removing callout
Copy file name to clipboardExpand all lines: content/servicemesh/_index.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
1
---
2
-
title: "Servicemesh with Istio"
2
+
title: "Service Mesh with Istio"
3
3
date: 2018-11-13T16:32:30+09:00
4
4
weight: 68
5
5
draft: false
6
6
---
7
7
8
8
### Service Mesh
9
9
10
-
> A service mesh is a dedicated infrastructure layer for handling **service-to-service communication**. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application
10
+
A service mesh is a dedicated infrastructure layer for handling **service-to-service communication**. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application.
11
11
12
-
Sservice mesh solution have two distinct components that behave somewhat differently: a data plane and a control plane. Below is an presents the basic architecture.
12
+
Service mesh solutions have two distinct components that behave somewhat differently: 1) a data plane, and 2) a control plane. The following diagram illustrates the basic architecture.
Copy file name to clipboardExpand all lines: content/servicemesh/deploy.md
+23-7Lines changed: 23 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ weight: 40
5
5
draft: false
6
6
---
7
7
8
-
> Now that we have all the resources installed for Istio, we will use sample application called BookInfo to review key capabilities of Service Mesh such as intelligent routing and review telemetry data using Prometheus & Grafana.
8
+
Now that we have all the resources installed for Istio, we will use sample application called BookInfo to review key capabilities of the service mesh such as intelligent routing, and review telemetry data using Prometheus & Grafana.
9
9
10
10
### Sample Apps
11
11
@@ -47,7 +47,13 @@ Deploy sample apps by manually injecting istio proxy and confirm pods, services
Copy file name to clipboardExpand all lines: content/servicemesh/install.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,14 +6,13 @@ draft: false
6
6
---
7
7
8
8
### Install Istio's CRD
9
-
The CRD(Custom Resource Definition) API resource allows you to define custom resources. To find more about CRD click [here](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions).
10
-
9
+
The [Custom Resource Definition, also known as a CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions), is an API resource which allows you to define custom resources.
Make sure you have Helm to install Istio into your EKS Cluster.
15
+
Helm is required for the following examples. If you have not installed Helm yet, [please first reference the Helm chapter](/helm_root) before proceeding.
> Let's review in detail what each of these components are,
13
-
>
14
-
> It is a completely open source service mesh that layers transparently onto existing distributed applications. It is also a platform, including APIs that let it integrate into any logging platform, or telemetry or policy system.
12
+
Istio is a completely open source service mesh that layers transparently onto existing distributed applications. It's also a platform, including APIs, that let it integrate into any logging platform, or telemetry or policy system.
13
+
14
+
Let's review in more detail what each of the components that make up this service mesh are.
15
15
16
16
* <spanstyle="color:orange">**Envoy**</span>
17
-
*Process the inbound/outbound traffic from inter-service and service-to-external-service transparently.
17
+
*Processes the inbound/outbound traffic from inter-service and service-to-external-service transparently.
18
18
19
19
* <spanstyle="color:orange">**Pilot**</span>
20
20
* Pilot provides service discovery for the Envoy sidecars, traffic management capabilities for intelligent routing (e.g., A/B tests, canary deployments, etc.), and resiliency (timeouts, retries, circuit breakers, etc.)
Copy file name to clipboardExpand all lines: content/servicemesh/routing.md
+13-12Lines changed: 13 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,9 +7,9 @@ draft: false
7
7
8
8
### Intelligent Routing
9
9
10
-
> Deploying a microservice-based application in an Istio service mesh allows one to externally control service monitoring and tracing, request (version) routing, resiliency testing, security and policy enforcement, etc., In a consistent way across the services, for the application as a whole.
10
+
Deploying a microservice-based application in an Istio service mesh allows one to externally control service monitoring and tracing, request (version) routing, resiliency testing, security and policy enforcement, and more in a consistent manner across the services, and the application.
11
11
12
-
Before you can use Istio to control the Bookinfo version routing, you need to define the available versions, called <spanstyle="color:orange">**subsets**</span>, in destination rules.
12
+
Before you can use Istio to control the Bookinfo version routing, you'll need to define the available versions, called <spanstyle="color:orange">**subsets**</span>, in destination rules.
13
13
14
14
{{% notice info %}}
15
15
Service versions (a.k.a. subsets) - In a continuous deployment scenario, for a given service, there can be distinct subsets of instances running different variants of the application binary. These variants are not necessarily different API versions. They could be iterative changes to the same service, deployed in different environments (prod, staging, dev, etc.). Common scenarios where this occurs include A/B testing, canary rollouts, etc. The choice of a particular version can be decided based on various criterion (headers, url, etc.) and/or by weights assigned to each version. Each service has a default version consisting of all its instances.
@@ -42,9 +42,9 @@ spec:
42
42
subset: v1
43
43
```
44
44
45
-
> Iterate reloading the page and check out review section calls only version of reviews v1 all the time
45
+
Try now to reload the page multiple times, and note how only version 1 of reviews is displayed each time.
46
46
47
-
Change the route configuration so that all traffic from a specific user is routed to a specific service version. In this case, all traffic from a user named <spanstyle="color:orange">*Jason*</span> will be routed to the service <spanstyle="color:orange">**reviews:v2**</span>.
47
+
Next, we'll change the route configuration so that all traffic from a specific user is routed to a specific service version. In this case, all traffic from a user named <spanstyle="color:orange">*Jason*</span> will be routed to the service <spanstyle="color:orange">**reviews:v2**</span>.
> Click Sign in on top right corner and login using 'jason' as user name with blank password. You will only see reviews:v2 all the time. Others will see reviews:v1
76
+
To test, click **Sign in** from the top right corner of the page, and login using **jason** as user name with a blank password. You will only see reviews:v2 all the time. Others will see reviews:v1.
77
77
78
78
To test for resiliency, inject a 7s delay between the reviews:v2 and ratings microservices for user jason. This test will uncover a bug that was intentionally introduced into the Bookinfo app.
79
79
@@ -108,9 +108,9 @@ spec:
108
108
subset: v1
109
109
```
110
110
111
-
> Click Sign in on top right corner and login using 'jason' as user name with blank password. You will see the delays and it ends up display error for reviews. Others will see reviews without error.
112
-
>
113
-
> The timeout between the productpage and the reviews service is 6 seconds - coded as 3s + 1 retry for 6s total.
111
+
Logout, then click **Sign in** from the top right corner of the page, using **jason** as the user name with a blank password. You will see the delays and it ends up display error for reviews. Others will see reviews without error.
112
+
113
+
The timeout between the productpage and the reviews service is 6 seconds - coded as 3s + 1 retry for 6s total.
114
114
115
115
To test for another resiliency, introduce an HTTP abort to the ratings microservices for the test user jason. The page will immediately display the “<spanstyle="color:orange">*Ratings service is currently unavailable*</span>”
The subset is set to v1 in default and return 500 HTTP error for all the request if the logged user is match with 'jason' for ratings.
123
+
The subset is set to v1 and by default returns an error message of "Ratings service is currently unavailable" below the reviewer name if the logged username matches 'jason'.
124
124
125
125
```
126
126
spec:
@@ -144,9 +144,10 @@ spec:
144
144
host: ratings
145
145
subset: v1
146
146
```
147
-
> Click Sign in on top right corner and login using 'jason' as user name with blank password. You will see error for ratings. Others will see rating without error.
148
147
149
-
This demo shows you how to gradually migrate traffic from one version of a microservice to another. Send <spanstyle="color:orange">50% of traffic to reviews:v1</span> and <spanstyle="color:blue">50% to reviews:v3</span>.
148
+
To test, click **Sign in** from the top right corner of the page and login using **jason** for the user name with a blank password. As **jason** you will see the error message. Others (not logged in as **jason**) will see no error message.
149
+
150
+
Next, we'll demonstrate how to gradually migrate traffic from one version of a microservice to another. In our example, we'll send <spanstyle="color:orange">50% of traffic to reviews:v1</span> and <spanstyle="color:blue">50% to reviews:v3</span>.
We encourage you to review other Istio dashboards that are available by clicking Istio Mesh Dashboard Menu on top left and selecting different dashboard
55
+
We encourage you to explore other Istio dashboards that are available by clicking the **Istio Mesh Dashboard** menu on top left of the page, and selecting a different dashboard.
0 commit comments