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: content/learning-paths/servers-and-cloud-computing/envoy-gcp/background.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
@@ -11,10 +11,10 @@ Google Axion C4A is a family of Arm-based virtual machines powered by Google’s
11
11
12
12
The C4A series can provide a cost-efficient alternative to x86 VMs while leveraging the scalability and performance characteristics of the Arm64 (AArch64) architecture on Google Cloud.
13
13
14
-
To learn more about Google Axion, see the blog [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu) blog.
14
+
To learn more about Google Axion, see the blog [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu).
15
15
16
16
## Envoy Proxy for service proxying and traffic management on Arm
17
17
18
-
Envoy Proxy is an open-source, high-performance edge and service proxy designed for cloud-native applications. It handles service-to-service communication, traffic routing, load balancing, and observability, improving the reliability and security of microservices.
18
+
Envoy Proxy is an open-source, high-performance edge and service proxy designed for cloud-native applications. It handles service-to-service communication, traffic routing, load balancing, and observability - improving the reliability and security of microservices.
19
19
20
-
Envoy is widely used in service meshes, API gateways, and modern cloud environments. Learn more on the [Envoy website](https://www.envoyproxy.io/) and in the [documentation](https://www.envoyproxy.io/docs/envoy/latest/).
20
+
Envoy is widely used in service meshes, API gateways, and modern cloud environments. Learn more on the [Envoy website](https://www.envoyproxy.io/) and in the [Envoy documentation](https://www.envoyproxy.io/docs/envoy/latest/).
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/envoy-gcp/baseline-testing.md
+33-22Lines changed: 33 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,35 @@
1
1
---
2
-
title: Envoy baseline testing on Google Axion C4A Arm Virtual machine
2
+
title: Run baseline Envoy testing on a Google Axion C4A Arm VM
3
3
weight: 5
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
+
## Validate Envoy installation with a baseline test
9
10
10
-
With Envoy installed successfully on your GCP C4A Arm virtual machine, you will proceed to validate that the Envoy is running as expected.
11
+
With Envoy installed successfully on your GCP C4A Arm virtual machine, you can now validate that Envoy is running as expected.
11
12
12
-
## Validate Envoy installation with a baseline test
13
+
In this section, you will do the following:
14
+
15
+
- Create a minimal Envoy config
16
+
- Start Envoy with it with config
17
+
- Verify functionality using `curl`
18
+
19
+
The test confirms the following:
13
20
14
-
In this section, you will learn how to create a minimal Envoy config, start Envoy with it, and verify functionality using `curl`.
15
-
The test will confirm that Envoy listens on port **10000**, forwards requests to `httpbin.org`, and returns a successful **200 OK** response.
21
+
- Envoy listens on port **10000**
22
+
- Forwards requests to `httpbin.org`
23
+
- Returns a **200 OK** response
16
24
17
-
###Create a Minimal Configuration File
25
+
## Create a minimal configuration file
18
26
19
-
Using a file editor of your choice, create a file named `envoy_config.yaml`, and add the below content to it. This file configures Envoy to listen on port **10000** and forward all traffic to `http://httpbin.org`. The `host_rewrite_literal` is essential to prevent 404 Not Found errors from the upstream server.
27
+
Using a text editor, create a file named `envoy_config.yaml` and add the following content as shown below.
20
28
21
-
```YAML
29
+
This configures Envoy to listen on port **10000** and forward all traffic to `http://httpbin.org`. The `host_rewrite_literal` is required to prevent `404 Not Found` from the upstream server.
30
+
31
+
32
+
```yaml
22
33
static_resources:
23
34
listeners:
24
35
- name: listener_0
@@ -64,18 +75,18 @@ static_resources:
64
75
address: httpbin.org
65
76
port_value: 80
66
77
```
67
-
- **Listeners:** Envoy is configured to accept incoming HTTP requests on port **10000** of your VM.
68
-
- **HTTP Connection Manager:** A filter processes the incoming requests, directing them to the appropriate backend.
78
+
- **Listeners:** Envoy accepts incoming HTTP requests on port **10000** of your VM.
79
+
- **HTTP Connection Manager:** Processes incoming requests, and applies routing.
69
80
- **Routing:** All traffic is routed to the `service_httpbin` cluster, with the `Host` header rewritten to `httpbin.org`.
70
-
- **Clusters:** The `service_httpbin` cluster defines the upstream service as `httpbin.org` on port **80**, which is where requests are ultimately forwarded.
81
+
- **Clusters:** The `service_httpbin` cluster defines the upstream as `httpbin.org:80`.
71
82
72
-
### Run and Test Envoy
83
+
## Run and test Envoy
73
84
74
85
This is the final phase of functional validation, confirming that the proxy is operational.
75
-
Start the Envoy proxy using your configuration file as shown on your current terminal:
86
+
Start the Envoy proxy using your configuration file:
76
87
77
88
```console
78
-
envoy -c envoy_config.yaml --base-id 1
89
+
envoy -c envoy_config.yaml --base-id 1
79
90
```
80
91
The output should look similar to:
81
92
@@ -90,14 +101,14 @@ The output should look similar to:
90
101
[2025-08-21 11:53:51.599][67137][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
91
102
```
92
103
93
-
Now, open a new terminal and send a test request to the Envoy listener using `curl`.
104
+
Leave this terminal running. In a new terminal, send a test request to the Envoy listener using `curl`:
94
105
95
106
```console
96
107
curl -v http://localhost:10000/get
97
108
```
98
109
The `-v` flag provides verbose output, showing the full request and response headers. A successful test will show a **HTTP/1.1 200 OK** response with a JSON body from `httpbin.org`.
99
110
100
-
The output should look similar to:
111
+
A successful test shows HTTP/1.1 200 OK with a JSON body from httpbin.org, for example:
101
112
102
113
```output
103
114
* Trying 127.0.0.1:10000...
@@ -131,11 +142,11 @@ The output should look similar to:
131
142
}
132
143
* Connection #0 to host 127.0.0.1 left intact
133
144
```
134
-
####Summary of the curl Output
145
+
## Summary of the curl output
135
146
136
-
-**Successful Connection:** The `curl` command successfully connected to the Envoy proxy on `localhost:10000`.
137
-
-**Correct Status Code:** Envoy successfully forwarded the request and received a successful `200 OK` response from the upstream server.
138
-
-**Host Header Rewrite:**The Host header was correctly modified from `localhost:10000` to `httpbin.org` as defined in the configuration.
139
-
-**End-to-End Success:** The proxy is fully operational, proving that requests are correctly received, processed, and forwarded to the intended backend.
147
+
-**Successful connection:** The `curl` command successfully connected to the Envoy proxy on `localhost:10000`.
148
+
-**Correct status code:** Envoy forwards the request and receives a successful `200 OK` response from the upstream.
149
+
-**Host header rewrite:**Envoy rewrites `Host` to `httpbin.org` as configured.
150
+
-**End-to-end Success:** The proxy is operational; requests are received, processed, and forwarded to the ackend.
140
151
141
-
This confirms the end-to-end flow with Envoy server is working correctly.
152
+
To stop Envoy in the first terminal, press **Ctrl+C**. This confirms the end-to-end flow with Envoy server is working correctly.
This runs the Envoy proxy with your configuration file (envoy_config.yaml) so it can start listening for requests.
58
61
59
-
2. On another terminal, verify that envoy is running as expected with curl:
62
+
2. On another terminal, verify that Envoy is running as expected with curl:
63
+
60
64
61
65
```
62
66
curl -v http://127.0.0.1:10000/get
63
67
```
64
68
Running from another terminal returns a **200 OK** status, confirming that Envoy is running and successfully processing requests.
65
69
66
-
3. Run a Time-based Load Test
70
+
## Run a time-based load test
71
+
72
+
There are different ways you can set up your benchmark tests. Here, you will run a benchmark for a fixed time instead of using a request count:
67
73
68
-
There are different ways you can setup your benchmark tests. Here you will run a Benchmark for a fixed time instead of using request count:
69
74
70
75
```console
71
76
siege -c30 -t10S http://127.0.0.1:10000/get
@@ -101,7 +106,7 @@ Longest transaction: 2.89
101
106
Shortest transaction: 0.02
102
107
```
103
108
104
-
###Understanding Envoy benchmark metrics and results with Siege
109
+
## Understanding Envoy benchmark metrics and results with Siege
105
110
106
111
-**Transactions**: Total number of completed requests during the benchmark.
107
112
-**Availability**: Percentage of requests that returned a successful response.
@@ -116,8 +121,9 @@ Shortest transaction: 0.02
116
121
-**Longest Transaction**: Maximum response time observed for a single request.
117
122
-**Shortest Transaction**: Minimum response time observed for a single request.
118
123
119
-
### Benchmark summary on x86_64:
120
-
To compare the benchmark results, the following results were collected by running the same benchmark on a `c3-standard-4` (4 vCPU, 2 core, 16 GB Memory) x86_64 virtual machine in GCP, running RHEL 9.
124
+
## Benchmark summary on x86_64
125
+
To compare the benchmark results, the following were collected by running the same benchmark on a `c3-standard-4` (4 vCPU, 16 GB memory) x86_64 VM in GCP, running RHEL 9:
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/envoy-gcp/instance.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,15 @@ weight: 3
6
6
layout: learningpathall
7
7
---
8
8
9
-
## How to create a Google Axion C4A Arm VM on Google Cloud
9
+
## Overview
10
10
11
-
In this section, you will learn how to provision a Google Axion C4A Arm virtual machine on Google Cloud Platform (GCP) using the **c4a-standard-4 (4 vCPUs, 16 GB memory)** machine type in the Google Cloud Console.
11
+
In this section, you will learn how to provision a Google Axion C4A Arm virtual machine on Google Cloud Platform (GCP) using the `c4a-standard-4` (4 vCPUs, 16 GB memory) machine type in the Google Cloud Console.
12
12
13
-
For details on GCP setup, refer to the [Getting started with Google Cloud Platform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/google/) Learning Path.
13
+
{{% notice Note %}}
14
+
For support on GCP setup, see the Learning Path [Getting started with Google Cloud Platform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/google/).
15
+
{{% /notice %}}
14
16
15
-
### Create a Google Axion C4A Arm VM in Google Cloud Console
17
+
##Provision a Google Axion C4A Arm VM in Google Cloud Console
16
18
17
19
To create a virtual machine based on the C4A instance type:
18
20
1. Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
0 commit comments