Skip to content

Commit 72f49dd

Browse files
Merge branch 'buildkite' of https://github.com/madeline-underwood/arm-learning-paths into buildkite
2 parents a9565a5 + 44dd1f0 commit 72f49dd

File tree

5 files changed

+127
-67
lines changed

5 files changed

+127
-67
lines changed

content/learning-paths/servers-and-cloud-computing/cassandra-on-gcp/benchmnarking.md

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -335,30 +335,8 @@ END
335335
- **GC metrics (Garbage Collection):** Shows whether JVM garbage collection paused Cassandra during the test.
336336
- **Total operation time:** The total wall-clock time taken to run the benchmark.
337337

338-
### Benchmark summary on x86_64
339-
To compare the benchmark results, the following results were collected by running the same benchmark on a `x86 - c4-standard-4` (4 vCPUs, 15 GB Memory) x86_64 VM in GCP, running SUSE:
340-
341-
| Metric | Write Test | Read Test |
342-
|----------------------------|----------------------|----------------------|
343-
| Operation Rate (op/s) | 4,922 | 4,349 |
344-
| Partition Rate (pk/s) | 4,922 | 4,349 |
345-
| Row Rate (row/s) | 4,922 | 4,349 |
346-
| Latency Mean | 8.4 ms | 8.0 ms |
347-
| Latency Median | 5.9 ms | 6.6 ms |
348-
| Latency 95th Percentile | 22.9 ms | 18.7 ms |
349-
| Latency 99th Percentile | 40.4 ms | 28.9 ms |
350-
| Latency 99.9th Percentile | 75.0 ms | 48.9 ms |
351-
| Latency Max | 175.2 ms | 84.0 ms |
352-
| Total Partitions | 10,000 | 10,000 |
353-
| Total Errors | 0 | 0 |
354-
| Total GC Count | 0 | 0 |
355-
| Total GC Memory | 0 B | 0 B |
356-
| Total GC Time | 0.0 s | 0.0 s |
357-
| Total Operation Time | 0:00:02 | 0:00:02 |
358-
359-
360338
### Benchmark summary on Arm64
361-
Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm64 VM in GCP (SUSE):
339+
Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm64 VM in GCP (SuSE shown, Ubuntu results were very similar):
362340

363341
| Metric | Write Test | Read Test |
364342
|----------------------------|----------------------|----------------------|
@@ -378,11 +356,12 @@ Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm6
378356
| Total GC Time | 0.0 s | 0.0 s |
379357
| Total Operation Time | 0:00:00 | 0:00:02 |
380358

381-
### Cassendra performance benchmarking comparison on Arm64 and x86_64
382-
When you compare the benchmarking results, you will notice that on the Google Axion C4A Arm-based instances:
359+
### Cassendra performance benchmarking notes
360+
When examining the benchmark results, you will notice that on the Google Axion C4A Arm-based instances:
383361

384362
- The write operations achieved a high throughput of **10,690 op/s**, while read operations reached **4,962 op/s** on the `c4a-standard-4` Arm64 VM.
385-
- Latency for writes was lower (mean: **3.7 ms**) compared to reads (mean: **6.3 ms**), indicating faster write processing on this setup.
386-
- The 95th and 99th percentile latencies show consistent performance, with writes significantly faster than reads (write 95th: **9.5 ms** vs read 95th: **17.4 ms**).
363+
- Latency for writes was very low (mean: **3.7 ms**) compared to reads (mean: **6.3 ms**), indicating fast write processing on this Arm64 VM.
364+
- The 95th and 99th percentile latencies show consistent performance, with writes significantly faster than reads.
387365
- There were no errors or GC overhead, confirming stable and reliable benchmarking results.
388-
- Overall, the Arm64 VM provides efficient and predictable performance, making it suitable for high-throughput Cassandra workloads.
366+
367+
Overall, the Arm64 VM provides efficient and predictable performance, making it suitable for high-throughput Cassandra workloads.

content/learning-paths/servers-and-cloud-computing/cassandra-on-gcp/installation.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,33 @@ weight: 4
66
layout: learningpathall
77
---
88

9-
## Apache Cassandra Installation on SUSE VM
10-
This guide will help you install **Apache Cassandra** on a SUSE Linux virtual machine. Cassandra is a highly scalable NoSQL database designed for high availability and fault tolerance.
9+
## Apache Cassandra Installation on Ubuntu or SuSE VM
10+
This guide will help you install **Apache Cassandra** on a Ubuntu or SuSE Linux virtual machine. Cassandra is a highly scalable NoSQL database designed for high availability and fault tolerance.
1111

1212
### Update System Packages
1313
Updating system packages ensures that your system has the latest security patches and dependencies required for Cassandra.
1414

15-
```console
15+
{{< tabpane code=true >}}
16+
{{< tab header="Ubuntu" language="bash">}}
17+
sudo apt update
18+
{{< /tab >}}
19+
{{< tab header="SUSE Linux" language="bash">}}
1620
sudo zypper refresh
1721
sudo zypper update -y
18-
```
22+
{{< /tab >}}
23+
{{< /tabpane >}}
1924

2025
### Install Java
2126
Cassandra requires a Java runtime environment. You can use either Java 11 or Java 17. This example uses Java 17 for optimal performance and compatibility with Cassandra 5.0.5.
2227

23-
```console
28+
{{< tabpane code=true >}}
29+
{{< tab header="Ubuntu" language="bash">}}
30+
sudo apt install -y openjdk-17-jdk
31+
{{< /tab >}}
32+
{{< tab header="SUSE Linux" language="bash">}}
2433
sudo zypper install -y java-17-openjdk java-17-openjdk-devel
25-
```
34+
{{< /tab >}}
35+
{{< /tabpane >}}
2636

2737
### Download Cassandra
2838
Download the latest stable release of Apache Cassandra 5.0.5 from the official Apache repository.

content/learning-paths/servers-and-cloud-computing/cassandra-on-gcp/instance.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ To create a virtual machine based on the C4A instance type:
2727
![Create a Google Axion C4A Arm virtual machine in the Google Cloud Console with c4a-standard-4 selected alt-text#center](images/gcp-vm.png "Creating a Google Axion C4A Arm virtual machine in Google Cloud Console")
2828

2929

30-
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server**. Select "Pay As You Go" for the license type. Click **Select**.
30+
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server** or **Ubuntu**.
31+
- If using use **SUSE Linux Enterprise Server**. Select "Pay As You Go" for the license type.
32+
- If using **Ubuntu**, under the **Version** tab, please scroll down and select the aarch64 version of **Ubuntu 22.04 LTS**.
33+
- Once appropriately selected, please Click **Select**.
3134
- Under **Networking**, enable **Allow HTTP traffic**.
3235
- Click **Create** to launch the instance.
3336
- Once created, you should see a "SSH" option to the right in your list of VM instances. Click on this to launch a SSH shell into your VM instance:
@@ -49,6 +52,43 @@ uname -m
4952
```
5053
will identify the host machine as `aarch64`.
5154

55+
### Run hello world
56+
57+
Install the `gcc` compiler:
58+
59+
{{< tabpane code=true >}}
60+
{{< tab header="Ubuntu" language="bash">}}
61+
sudo apt update
62+
sudo apt install -y build-essential
63+
{{< /tab >}}
64+
{{< tab header="SUSE Linux" language="bash">}}
65+
sudo zypper refresh
66+
sudo zypper install -y gcc
67+
{{< /tab >}}
68+
{{< /tabpane >}}
69+
70+
Using a text editor of your choice, create a file named `hello.c` with the contents below:
71+
72+
```C
73+
#include <stdio.h>
74+
int main(){
75+
printf("hello world\n");
76+
return 0;
77+
}
78+
```
79+
Build and run the application:
80+
81+
```console
82+
gcc hello.c -o hello
83+
./hello
84+
```
85+
86+
The output is shown below:
87+
88+
```output
89+
hello world
90+
```
91+
5292
## Automating Arm Based Infrastructure Deployment
5393

5494
Cloud infrastructure deployment is typically done via Infrastructure as code (IaC) automation tools. There are Cloud Service Provider specific tools like [Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/docs/).

content/learning-paths/servers-and-cloud-computing/csp/google.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ To create a virtual machine based on the C4A instance type:
2727
![Create a Google Axion C4A Arm virtual machine in the Google Cloud Console with c4a-standard-4 selected alt-text#center](images/gcp-vm.png "Creating a Google Axion C4A Arm virtual machine in Google Cloud Console")
2828

2929

30-
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server** or **Ubuntu**. Click **Select**.
30+
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server** or **Ubuntu**.
31+
- If using use **SUSE Linux Enterprise Server**. Select "Pay As You Go" for the license type.
32+
- If using **Ubuntu**, under the **Version** tab, please scroll down and select the aarch64 version of **Ubuntu 22.04 LTS**.
33+
- Once appropriately selected, please Click **Select**.
3134
- Under **Networking**, enable **Allow HTTP traffic**.
3235
- Click **Create** to launch the instance.
3336
- Once created, you should see a "SSH" option to the right in your list of VM instances. Click on this to launch a SSH shell into your VM instance:
@@ -56,7 +59,7 @@ Install the `gcc` compiler:
5659
{{< tabpane code=true >}}
5760
{{< tab header="Ubuntu" language="bash">}}
5861
sudo apt update
59-
sudo apt install gcc -y
62+
sudo apt install -y build-essential
6063
{{< /tab >}}
6164
{{< tab header="SUSE Linux" language="bash">}}
6265
sudo zypper refresh
@@ -90,4 +93,4 @@ hello world
9093

9194
Cloud infrastructure deployment is typically done via Infrastructure as code (IaC) automation tools. There are Cloud Service Provider specific tools like [Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/docs/).
9295

93-
There are also Cloud Service Provider agnostic tools like [Terraform](https://www.terraform.io/).There is a [deploying Arm VMs on (GCP) using Terraform learning path](/learning-paths/servers-and-cloud-computing/gcp) that should be reviewed next.
96+
There are also Cloud Service Provider agnostic tools like [Terraform](https://www.terraform.io/).There is a [deploying Arm VMs on (GCP) using Terraform learning path](/learning-paths/servers-and-cloud-computing/gcp) that should be reviewed next.

content/learning-paths/servers-and-cloud-computing/node-js-gcp/instance.md

Lines changed: 57 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,54 +16,82 @@ For support on GCP setup, see the Learning Path [Getting started with Google Clo
1616

1717
## Provision a Google Axion C4A Arm VM in Google Cloud Console
1818

19-
To create a virtual machine using the C4A instance type in Google Cloud Platform:
20-
21-
- Open [Google Cloud Console](https://console.cloud.google.com/).
22-
- In the left menu, select **Compute Engine**, then select **VM Instances**.
23-
- Select **Create Instance**.
24-
- In the **Machine configuration** section:
25-
- Enter a unique **Instance name**.
26-
- Choose your preferred **Region** and **Zone**.
19+
To create a virtual machine based on the C4A instance type:
20+
- Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
21+
- Go to **Compute Engine > VM Instances** and select **Create Instance**.
22+
- Under **Machine configuration**:
23+
- Populate fields such as **Instance name**, **Region**, and **Zone**.
2724
- Set **Series** to `C4A`.
28-
- Select `c4a-standard-4` for the machine type.
25+
- Select `c4a-standard-4` for machine type.
2926

3027
![Create a Google Axion C4A Arm virtual machine in the Google Cloud Console with c4a-standard-4 selected alt-text#center](images/gcp-vm.png "Creating a Google Axion C4A Arm virtual machine in Google Cloud Console")
3128

32-
This configuration gives you four Arm vCPUs and 16 GB memory, optimized for Arm workloads.
3329

34-
## Select OS and finalize VM settings
30+
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server** or **Ubuntu**.
31+
- If using use **SUSE Linux Enterprise Server**. Select "Pay As You Go" for the license type.
32+
- If using **Ubuntu**, under the **Version** tab, please scroll down and select the aarch64 version of **Ubuntu 22.04 LTS**.
33+
- Once appropriately selected, please Click **Select**.
34+
- Under **Networking**, enable **Allow HTTP traffic**.
35+
- Click **Create** to launch the instance.
36+
- Once created, you should see a "SSH" option to the right in your list of VM instances. Click on this to launch a SSH shell into your VM instance:
3537

36-
After configuring the machine type, you'll need to select the operating system and finalize your VM settings. Follow the steps below to select an Arm64-based OS image, configure networking, and launch your instance. This ensures your VM is ready for Arm-native development and accessible for further setup.
38+
![Invoke a SSH session via your browser alt-text#center](images/gcp-ssh.png "Invoke a SSH session into your running VM instance")
3739

40+
- A window from your browser should come up and you should now see a shell into your VM instance:
3841

39-
- In the **OS and Storage** section, select **Change**:
40-
- Choose an Arm64-based OS image. For this Learning Path, select **SUSE Linux Enterprise Server**.
41-
- For **License type**, select **Pay as you go**.
42-
- Select **Select** to confirm your choices.
42+
![Terminal Shell in your VM instance alt-text#center](images/gcp-shell.png "Terminal shell in your VM instance")
4343

44-
- In the **Networking** section, enable **Allow HTTP traffic**.
44+
## Explore your instance
4545

46-
- Select **Review and create** to review your configuration.
46+
### Run uname
4747

48-
- Select **Create** to launch your VM instance.
48+
Use the [uname](https://en.wikipedia.org/wiki/Uname) utility to verify that you are using an Arm-based server. For example:
4949

50-
- After the VM is created, locate your instance in the **VM Instances** list.
51-
- Select the **SSH** button next to your instance to open a browser-based SSH shell.
50+
```console
51+
uname -m
52+
```
53+
will identify the host machine as `aarch64`.
5254

53-
{{% notice Note %}}
54-
If you don't see the **SSH** option, refresh the page or check that your VM is running. The SSH shell opens in a new browser window, giving you direct access to your Arm-based VM.
55-
{{% /notice %}}
55+
### Run hello world
5656

57+
Install the `gcc` compiler:
5758

58-
![Invoke a SSH session via your browser alt-text#center](images/gcp-ssh.png "Invoke a SSH session into your running VM instance")
59+
{{< tabpane code=true >}}
60+
{{< tab header="Ubuntu" language="bash">}}
61+
sudo apt update
62+
sudo apt install -y build-essential
63+
{{< /tab >}}
64+
{{< tab header="SUSE Linux" language="bash">}}
65+
sudo zypper refresh
66+
sudo zypper install -y gcc
67+
{{< /tab >}}
68+
{{< /tabpane >}}
5969

60-
A window from your browser should come up and you should now see a shell into your VM instance:
70+
Using a text editor of your choice, create a file named `hello.c` with the contents below:
6171

62-
![Terminal Shell in your VM instance alt-text#center](images/gcp-shell.png "Terminal shell in your VM instance")
72+
```C
73+
#include <stdio.h>
74+
int main(){
75+
printf("hello world\n");
76+
return 0;
77+
}
78+
```
79+
Build and run the application:
80+
81+
```console
82+
gcc hello.c -o hello
83+
./hello
84+
```
85+
86+
The output is shown below:
6387

88+
```output
89+
hello world
90+
```
6491

65-
## What you've accomplished
92+
## Automating Arm Based Infrastructure Deployment
6693

67-
You've successfully provisioned a Google Axion C4A Arm virtual machine running SUSE Linux Enterprise Server. You're now ready to install Node.js and deploy your workloads on Arm.
94+
Cloud infrastructure deployment is typically done via Infrastructure as code (IaC) automation tools. There are Cloud Service Provider specific tools like [Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/docs/).
6895

96+
There are also Cloud Service Provider agnostic tools like [Terraform](https://www.terraform.io/).There is a [deploying Arm VMs on (GCP) using Terraform learning path](/learning-paths/servers-and-cloud-computing/gcp) that should be reviewed next.
6997

0 commit comments

Comments
 (0)